Centos7默認的firewalld防火牆說實話真很差用,不如使用iptables。但一物的存在是有它的道理,好比在高級功能方面iptables就要次於firewalld防火牆。html
基本操做linux
# 啓動 systemctl start firewalld # 狀態 systemctl status firewalld # 禁用 systemctl disable firewalld # 中止 systemctl stop firewalld
systemctl在centos7中必不可缺乏的管理工具,它具有service和chkconfig的全部功能;centos
# 啓動某個服務 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;bash
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;tcp
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,具體的使用方法能夠 ide
# 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/