在CentOS 7 / Oracle Linux 7 / Red Hat7版本開始內建了firewalld這個防火牆管理的指令,比過往的Iptables使用上更為簡單,快來了解如何設定吧!
一、停止iptables服務
(1)、暫停iptables功能:
systemctl stop iptables
(2)、停用iptables功能:
systemctl mask iptables
二、安裝firewalld套件
(1)、安裝firewalld套件:
sudo yum install firewalld
(2)、設定開機自動執行firewalld:
systemctl enable firewalld
(3)、檢查 firewalld 服務狀態:
systemctl status firewalld
(4)、啟動 firewalld 服務:
systemctl start firewalld
(5)、停止 firewalld 服務:
systemctl stop firewalld
(6)、重新啟動 firewalld 服務:
service firewalld restart
(7)、重新載入 firewalld 設定:
firewall-cmd --reload
三、查詢設定狀態
(1)、查詢現有區域:
firewall-cmd --get-zones
(2)、查詢「public」區域的設定:
firewall-cmd --zone=public --list-all
(3)、查詢「public」的永久設定值:
firewall-cmd --zone=public --list-all --permanent
(4)、查詢目前預設的區域:
firewall-cmd --get-default-zone
(5)、更改 firewalld 的預設區域為「office」:
firewall-cmd --set-default-zone=office
(6)、查詢各個網路介面所屬的區域:
firewall-cmd --get-active-zones
(7)、更改網路卡所屬的區域:
將ens160網路卡永久設定為public區域的範例語法如下:
sudo firewall-cmd --permanent --zone=public --change-interface=ens160
(8)、查詢系統內建服務名稱:
firewall-cmd --get-services
(9)、查詢防火牆目前所有規則:
firewall-cmd --list-all
四、設定防火牆規則
(1)、查詢各個網路介面所屬的區域:
firewall-cmd --get-active-zones
(2)、在public區域中「新增」暫時開放https服務規則:
firewall-cmd --zone=public --add-service=https
(3)、在public區域中「新增」永久開放https服務規則:
firewall-cmd --zone=public --permanent --add-service=https
(3)、在public區域中「新增」永久開放TCP 8080 Port規則:
firewall-cmd --zone=public --permanent --add-port=8080/tcp
(4)、在public區域中「新增」永久開放192.168.6.111這個IP可以連線mysql(3306)服務規則:
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.6.111/32" service name="mysql" accept' --permanent
(6)、在public區域中「新增」永久阻擋192.168.6.222這個IP連線的規則:
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.6.222/32" reject' --permanent
五、移除防火牆規則
(1)、在public區域中「刪除」暫時開放https服務規則:
firewall-cmd --zone=public --remove-service=https
(2)、在public區域中「刪除」永久開放https服務規則:
firewall-cmd --zone=public --permanent --remove-service=https
(3)、在public區域中「刪除」永久開放TCP 8080 Port規則:
firewall-cmd --zone=public --permanent --remove-port=8080/tcp
(4)、在public區域中「刪除」特定永久開放規則:
firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.6.111/32" service name="mysql" accept' --permanent
六、查看系統內建服務樣板
(1)、查看系統預設防火牆服務樣板:
ls /usr/lib/firewalld/services
※如無適合的樣板,可以透過既有的樣板產生一個客製化的設定
(2)、建立客製化防火牆服務樣板:
cd /usr/lib/firewalld/services cp mysql.xml oracle.xml vim oracle.xml