Centos7默認的firewalld防火牆說實話真不好用,不如使用iptables。但一物的存在是有它的道理,比如在高級功能方面iptables就要次於firewalld防火牆。
基本操作
# 啓動 systemctl start firewalld # 狀態 systemctl status firewalld # 禁用 systemctl disable firewalld # 停止 systemctl stop firewalld
systemctl在centos7中必不可缺少的管理工具,它具備service和chkconfig的所有功能;
# 啓動某個服務 systemctl start firewalld.service # 關閉某個服務 systemctl stop firewalld.service # 重啓某個服務 systemctl restart firewalld.service # 顯示某個服務的狀態 systemctl status firewalld.service # 開機時隨機自啓動 systemctl enable firewalld.service # 禁止開機啓動 systemctl disable firewalld.service # 查看是否開機啓動 systemctl is-enabled firewalld.service # 查看已經啓動的服列表 systemctl list-unit-files|grep enabled # 查看啓動失敗的服務列表 systemctl --failed
基本配置firewalld-cmd;
firewall-cmd --version //查看防火牆版本 firewall-cmd --help //查看命令操作幫助 firewall-cmd --state //顯示當前狀態 firewall-cmd --zone=public --list-ports //查看所有打開運行的端口 firewall-cmd --reload //不重啓立即加載 firewall-cmd --list-all-zones | more //查看區域信息情況 firewall-cmd --get-zone-of-interface=eth0 //查看指定接口所屬區域 firewall-cmd --panic-on //拒絕所有包 firewall-cmd --panic-off //取消拒絕狀態 firewall-cmd --query-panic //查看是否拒絕
舉個例子,如何打開一個端口,例如3306;
firewall-cmd --zone=public --add-port=3306/tcp --permanent //添加3306端口(--permanent)永久生效,沒有此參數重啓後失效 firewall-cmd --reload //不重啓立即加載 firewall-cmd --zone= public --query-port=3306/tcp //查看加入3306端口狀態 firewall-cmd --zone= public --remove-port=3306/tcp --permanent //刪除剛剛加入的防火牆規則3306 firewall-cmd --permanent --remove-icmp-block=echo-request //刪除禁ping firewall-cmd --permanent --add-icmp-block=echo-request //開啓禁ping firewall-cmd --get-service //查看已被允許的信息
具體的規則管理,可以使用 firewall-cmd,具體的使用方法可以
# firewall-cmd --help firewall-cmd高級功能可以到官方資料庫瞭解更多信息。 https://fedoraproject.org/wiki/FirewallD/zh-cn https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html https://www.ibm.com/developerworks/cn/linux/1507_caojh/