Linux利用firewalld和iptables實現IP端口限制與開放
前言
在服務器管理中,防火墻是保護系統(tǒng)安全的重要工具。通常,我們可能會關閉firewalld,但在某些情況下,我們需要利用firewalld或iptables來限制IP請求。本文將詳細介紹如何使用firewalld和iptables來實現IP端口限制與開放。
一、FirewalldIP端口限制
1.1 確認啟動狀態(tài)
首先,我們需要確認firewalld的啟動狀態(tài)
sudo systemctl status firewalld
1.2 啟動Firewalld
如果firewalld未啟動,執(zhí)行以下命令啟動:
sudo systemctl start firewalld
1.3 查看當前連接到Nacos的IP
以Nacos為例,查看當前連接到Nacos的IP:
netstat -antp | grep ':8848' | awk '{print $5}' | cut -d':' -f1 | sort | uniq
此處查詢的ip僅供參考,可作為梳理后的補充
1.4 添加訪問規(guī)則
添加訪問規(guī)則,允許特定IP訪問Nacos服務:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.1.1.3" port port=8848 protocol=tcp accept'
其中,address是需要連接到Nacos的服務器的IP(內網/彈性都要加),port指定Nacos端口。多個IP可多次執(zhí)行上面代碼。
1.5 重新加載配置
添加規(guī)則后,重新加載配置:
sudo firewall-cmd --reload
1.6 查看當前活動的規(guī)則列表
查看當前活動的規(guī)則列表:
sudo firewall-cmd --list-all
輸出示例:
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: cockpit dhcpv6-client mdns ssh
ports: 8848/tcp 6379/tcp 8012/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family=“ipv4” source address=“172.1.1.1” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.2” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.3” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.4” port port=“8848” protocol=“tcp” accept
1.7 移除某個規(guī)則
- 查看當前的rich rules
sudo firewall-cmd --list-rich-rules
- 移除 rich rule
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.1.1.4" port port="8848" protocol="tcp" accept'
- 重新加載防火墻
sudo firewall-cmd --reload
- 驗證規(guī)則是否已移除
sudo firewall-cmd --list-rich-rules
二、Firewalld 開放端口
上一節(jié)是針對ip開放端口,那么如何直接開放端口,所有ip都可訪問?
2.1 開放 6379端口
sudo firewall-cmd --permanent --add-port=6379/tcp
2.2 重新加載防火墻
添加完規(guī)則后,需要重新加載防火墻以使更改生效:
sudo firewall-cmd --reload
2.3 驗證規(guī)則
您可以通過以下命令來驗證當前的防火墻規(guī)則,確保 Redis 的端口已經被成功開放:
sudo firewall-cmd --list-all
三、Iptables限制ip端口(未驗證)
3.1 添加規(guī)則允許特定IP訪問Nacos服務:
sudo iptables -A INPUT -p tcp -s 172.16.17.33 --dport 8848 -j ACCEPT sudo iptables -A INPUT -p tcp -m tcp --dport 8848 -s 172.16.61.83 -j ACCEPT
3.2 保存 iptables 規(guī)則
Ubuntu/Debian:
sudo iptables-save > /etc/iptables.up.rules
CentOS/RHEL:
sudo service iptables save
3.3 解決瀏覽器無法訪問Nacos頁面的問題
添加完規(guī)則之后,可能瀏覽器依然無法訪問Nacos頁面,并且對應服務器可能ping通,但curl無法訪問??赡苁且驗橛幸粭l規(guī)則導致的,去掉后可以正常訪問。
5 REJECT all – 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
總結
在服務器管理中,梳理清楚當前服務器有哪些需要對外訪問的服務非常重要。類似1.3中查看連接IP并不全面,因此需要結合實際情況進行規(guī)則配置。通過firewalld和iptables,我們可以靈活地控制IP端口的訪問權限,從而提升服務器的安全性。
以上就是使用firewalld和iptables實現IP端口限制與開放的詳細內容,更多關于firewalld iptables IP端口限制與開放的資料請關注腳本之家其它相關文章!
相關文章
騰訊云(ubuntu)下安裝 nodejs + 實現 Nginx 反向代理服務器
本文將介紹如何給騰訊云上的 Ubuntu Server 12.04 LTS 64位主機安裝 node 及 nginx,并簡單配置反向代理。2016-11-11使用Apache HttpClient執(zhí)行GET、POST、PUT和DELETE請求的操作方法
Apache HttpClient 是一個功能強大且靈活的庫,用于在Java中處理HTTP請求,本教程將演示如何使用Apache HttpClient來執(zhí)行GET、POST、PUT和DELETE請求,感興趣的朋友跟隨小編一起看看吧2024-12-12Windows 10 下安裝 Apache 2.4.41的教程
這篇文章主要介紹了Windows 10 下安裝 Apache 2.4.41的教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01