===============================================html
2019/4/15_第1次修改 ccb_warlockcentos
===============================================ssh
因爲一直使用centos7的環境,因此接觸的防火牆比較多的是firewalld而不是iptable,以前一直沒有好好總結過firewalld的用法,此次作個整理。tcp
我將firewall-cmd命令的操做分紅了2部分:經常使用和其餘。其中經常使用是我在最近幾年使用centos7時用的次數較多的操做。centos7
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --zone=public --list-ports
以開放80端口爲例spa
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
PS. --permanent爲永久生效,沒有此參數centos重啓後該配置將失效.net
以撤銷80端口的開放爲例code
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload
PS. --permanent爲永久生效,沒有此參數centos重啓後該配置將失效htm
firewall-cmd --zone=public --list-rich-rules
以「只容許192.168.1.1的主機鏈接3306端口」爲例blog
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="3306" accept" --permanent firewall-cmd --reload
PS. --permanent爲永久生效,沒有此參數centos重啓後該配置將失效
以「移除只容許192.168.1.1的主機鏈接3306端口」爲例
firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="3306" accept" --permanent firewall-cmd --reload
PS. --permanent爲永久生效,沒有此參數centos重啓後該配置將失效
firewall-cmd --remove-service=ssh --permanent
firewall-cmd --reload
PS. --permanent爲永久生效,沒有此參數centos重啓後該配置將失效
以檢查80端口爲例(yes:開放;no:未開放)
firewall-cmd --zone=public --query-port=80/tcp
# 容許防火牆假裝IP
firewall-cmd --add-masquerade
# 將本地80端口的流量轉發到192.168.1.1的80端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.1:toport=80 --permanent
PS. --permanent爲永久生效,沒有此參數centos重啓後該配置將失效
查看版本:firewall-cmd --version
查看幫助: firewall-cmd --help
查看狀態: firewall-cmd --state
查看區域信息: firewall-cmd --get-active-zones
查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=eth0
拒絕全部包:firewall-cmd --panic-on
取消拒絕狀態: firewall-cmd --panic-off
查看是否拒絕: firewall-cmd --query-panic