1、firewalld的基本使用
啟動: systemctl start firewalld
查看狀態(tài): systemctl status firewalld
禁用,關(guān)閉開機自啟動: systemctl disable firewalld
停止:systemctl stop firewalld
查看服務(wù)是否開機啟動:systemctl is-enabled firewalld.service
查看已啟動的服務(wù)列表:systemctl list-unit-files|grep enabled
查看啟動失敗的服務(wù)列表:systemctl --failed
2.配置 firewalld-cmd
查看版本: firewall-cmd --versio
查看幫助: firewall-cmd --help
顯示狀態(tài): firewall-cmd --state
查看所有打開的端口: firewall-cmd --zone=public --list-ports
更新防火墻規(guī)則: firewall-cmd --reload
查看區(qū)域信息: firewall-cmd --get-active-zones
查看指定接口所屬區(qū)域: firewall-cmd --get-zone-of-interface=eth0
拒絕所有包:firewall-cmd --panic-on
取消拒絕狀態(tài):firewall-cmd --panic-off
查看是否拒絕: firewall-cmd --query-panic
firewall-cmd --zone=public --add-port=80/tcp --permanent
(--permanent永久生效,沒有此參數(shù)重啟后失效)
重新載入,所有更改只有重載防火墻策略或者重啟防火墻之后才生效
firewall-cmd --reload
添加指定協(xié)議(協(xié)議是有默認端口滴)
firewall-cmd --zone=dmz --add-service=http --permanent
firewall-cmd --zone=dmz --add-service=https --permanent
查看
firewall-cmd --zone=public --query-port=80/tcp
刪除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --remove-service=ssh --permanent
查看防火墻所有策略:
firewall-cmd --list-all
防火墻添加富規(guī)則(指定端口只允許指定ip訪問):
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="8.8.8.8" port protocol="tcp" port="3306" accept"
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="8.8.8.8" port protocol="tcp" port="3306" accept"
富規(guī)則允許 ip 段訪問:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept"
如此,服務(wù)器允許同內(nèi)網(wǎng)機器訪問。
所有規(guī)則變更之后只有重載防火墻才生效
3、 注意事項:
防火墻關(guān)閉狀態(tài)無法添加策略,firewall 默認開放了22 端口,允許ssh 連接,如果更改了 ssh 端口,開啟防火墻會導致ssh 連接失敗,如果只能遠程連接服務(wù)器,那么你悲劇了,只能找機房處理了。所以,先打開 ssh 默認22端口,重啟 sshd 測試沒有問題之后在開啟防火墻,然后通過22 ssh 進去,添加指定 ssh 端口重載防火墻策略,才可以再次關(guān)掉22 端口。一定注意,血的教訓。
參考鏈接:https://unix.stackexchange.com/questions/159873/whitelist-source-ip-addresses-in-centos-7