===============================================
2019/4/15_第1次修改 ccb_warlock
===============================================
由於一直使用centos7的環境,所以接觸的防火牆比較多的是firewalld而不是iptable,之前一直沒有好好總結過firewalld的用法,這次做個整理。
我將firewall-cmd命令的操作分成了2部分:常用和其他。其中常用是我在最近幾年使用centos7時用的次數較多的操作。
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --zone=public --list-ports
以開放80端口為例
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
PS. --permanent為永久生效,沒有此參數centos重啟后該配置將失效
以撤銷80端口的開放為例
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload
PS. --permanent為永久生效,沒有此參數centos重啟后該配置將失效
firewall-cmd --zone=public --list-rich-rules
以“只允許192.168.1.1的主機連接3306端口”為例
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
11)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
參考資料:
1.https://www.cnblogs.com/moxiaoan/p/5683743.html
2.https://blog.csdn.net/qguanri/article/details/51673845