1. 程式人生 > 其它 >Linux防火牆firewall只允許特定ip訪問

Linux防火牆firewall只允許特定ip訪問

1、目的
服務A使用埠9001,只有允許的應用才可以訪問,其它未經允許服務無法正常訪問(即預設應用無法正常訪問)。

2、處理思路
1)啟用防火牆。2)關閉埠訪問,預設應用無法直接訪問。3)設定特定ip可以訪問特定埠。

二、啟用防火牆
1、首先檢視防火牆是否開啟

檢視防火牆狀態

systemctl status firewalld

2、綠色active代表服務已啟動。如果未啟動,開啟防火牆並設定開機啟動。

開啟防火牆

systemctl start firewalld

開機啟動

systemctl enable firewalld

三、關閉埠訪問
1、確保埠關閉。如果已開放則關閉埠。此處埠如果開放,是所有ip都可以進行訪問。

查詢開啟的埠

firewall-cmd --zone=public --list-ports

2、關閉埠,如果埠未開啟則無需關閉。

關閉埠9001

firewall-cmd --zone=public --remove-port=9001/tcp --permanent

重新載入一下防火牆設定,使設定生效

firewall-cmd --reload

查詢開啟的埠

firewall-cmd --zone=public --list-ports

四、開放ip訪問

允許ip192.168.0.1訪問9001埠

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.1" port protocol="tcp" port="9001" accept"

重新載入一下防火牆設定,使設定生效

firewall-cmd --reload

檢視已設定規則

firewall-cmd --zone=public --list-rich-rules

五、其他常用命令
1、檢視防火牆清單

firewall-cmd --list-all
fw6.png
2、開放或限制埠(埠開放,所有ip都可以訪問)

開放9001埠

firewall-cmd --zone=public --add-port=9001/tcp --permanent

重新載入一下防火牆設定,使設定生效

firewall-cmd --reload

通過如下命令檢視9001是否生效

firewall-cmd --zone=public --query-port=9001/tcp

系統開啟的所有埠

firewall-cmd --zone=public --list-ports

關掉剛剛開啟的9001埠

firewall-cmd --zone=public --remove-port=9001/tcp --permanent
firewall-cmd --reload
3、批量開放或限制埠

批量開放埠,如從9002到9005這之間的埠我們全部要開啟

firewall-cmd --zone=public --add-port=9002-9005/tcp --permanent
firewall-cmd --reload

同理,批量限制埠為

firewall-cmd --zone=public --remove-port=9002-9005/tcp --permanent
firewall-cmd --reload
4、開放或限制ip(設定規則)

開放IP為192.168.0.0的地址允許訪問9001埠

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0" port protocol="tcp" port="9001" accept"
firewall-cmd --reload

檢視已經設定的規則

firewall-cmd --zone=public --list-rich-rules

限制IP為192.168.0.0的地址禁止訪問9001埠即禁止訪問機器

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0" port protocol="tcp" port="9001" reject"
firewall-cmd --reload

刪除已設定規則

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address=" 192.168.0.0" port protocol="tcp" port="9001" accept"
firewall-cmd --reload
5、如設定未生效,可嘗試直接編輯規則檔案,刪掉原來的設定規則,重新載入一下防火牆即可

vi /etc/firewalld/zones/public.xml

作者:duanyan
連結:https://www.jianshu.com/p/4801d9dbaa84
來源:簡書