1.firewalld簡介
firewalld是centos7的一大特性,最大的好處有兩個:支援動態更新,不用重啟服務;第二個就是加入了防火牆的“zone”概念。
firewalld有圖形介面和命令列介面。firewalld命令列管理命令是firewall-cmd。
firewalld預設設定檔有兩個:/usr/lib/firewalld/ (系統配置,盡量不要修改)和 /etc/firewalld/ (使用者配置地址)。
zone概念:硬體防火牆預設一般有三個區,firewalld引入這一概念系統預設存在以下地區:
drop:預設丟棄所有包;
block:拒絕所有外部串連,允許內部發起的串連;
public:指定外部串連可以進入;
external:允許指定的外部串連;
dmz:和硬體防火牆一樣,受限制的公用串連可以進入;
work:工作區,概念和workgoup一樣,也是指定的外部串連允許;
home:家庭組;
internal:信任所有串連。
2.firewalld安裝
# yum install firewalld firewall-config
3.firewalld進程管理命令
查看狀態:# systemctl status firewalld 或者 firewall-cmd --state
啟動:# systemctl start firewalld
停止:# systemctl stop firewalld
使能:# systemctl enable firewalld
禁用:# systemctl disable firewalld
4.配置firewalld防火牆規則
查看版本:# firewall-cmd --version
查看協助:# firewall-cmd --help
查看地區資訊:# firewall-cmd --get-active-zones
查看指定介面所屬地區:# firewall-cmd --get-zone-of-interface=eth0
拒絕所有包:# firewall-cmd --panic-on
取消拒絕狀態:# firewall-cmd --panic-off
查看是否拒絕:$ firewall-cmd --query-panic
設定預設介面地區
# firewall-cmd --set-default-zone=public
該設定會立即生效無需重啟
將介面添加到地區,預設介面都在public
# firewall-cmd --zone=public --add-interface=eth0 --permanent
--permanent 參數指定配置永久生效,如果不加--permanent僅本次生效。
查看所有開啟的連接埠:
# firewall-cmd --zone=public --list-ports
加入一個連接埠到地區:
# firewall-cmd --zone=public --add-port=80/tcp
若要永久生效方法同上
開啟一個服務,類似於將連接埠可視化,服務需要在設定檔中添加,/etc/firewalld 目錄下有services檔案夾
# firewall-cmd --zone=public --add-service=smtp
移除服務
# firewall-cmd --zone=public --remove-service=smtp
firewalld開放vrrp
firewall-cmd --permanent --add-rich-rule "rule family=ipv4 source address=192.168.1.0/24 port name="22" reject"
firewall-cmd --zone=public --permanent --add-rich-rule "rule family=ipv4 source address=192.168.1.237/32 accept"
firewall-cmd --zone=public --permanent --add-rich-rule "rule family=ipv4 source address=192.168.1.238/32 accept"
firewall-cmd --reload
firewall-cmd --zone=public --list-rich-rules
5.生效防火牆規則:
注意:所有的防火牆配置修改以後,都要執行下面的reload命令,使配置立即生效
# firewall-cmd --reload
或
# firewall-cmd --complete-reload
兩者的區別就是第一個無需中斷連線,就是firewalld特性之一動態添加規則,第二個需要中斷連線,類似重啟服務。