以下所有操作都是在Red-hat 7.0上
Firewalld概述
動態防火牆後臺程序 firewalld 提供了一個 動態管理的防火牆,用以支持網絡 “zones” ,以分配對一個網絡及其相關鏈接和界面一定程度的信任。它具備對 IP v4 和 IP v6 防火牆設置的支持。它支持以太網橋,並有分離運行時間和永久性配置選擇。它還具備一個通向服務或者應用程序以直接增加防火牆規則的接口。
系統提供了圖像化的配置工具firewall-config、system-config-firewall, 提供命令行客戶端firewall-cmd, 用於配置 firewalld永久性或非永久性運行時間的改變:它依次用 iptables工具與執行數據包篩選的內核中的 Netfilter通信。
Firewalld和iptables service 之間最本質的不同是:
• iptables service 在 /etc/sysconfig/iptables 中儲存配置,而 firewalld將配置儲存在/usr/lib/firewalld/ 和 /etc/firewalld/ 中的各種XML文件裏.
• 使用 iptables service每一個單獨更改意味着清除所有舊有的規則和從/etc/sysconfig/iptables裏讀取所有新的規則,然而使用 firewalld卻不會再創建任何新的規則;僅僅運行規則中的不同之處。因此,firewalld可以在運行時間內,改變設置而不丟失現行連接。
• iptables通過控制端口來控制服務,而firewalld則是通過控制協議來控制端口
使用命令行接口配置防火牆(firewall-cmd)
firewall-cmd –state ##查看當前活動的區域,並附帶一個目前分配給它們的接口列表
firewall-cmd –get-active-zones ##查看默認區域:
firewall-cmd –get-default-zone ##查看所有可用區域:
firewall-cmd –zone=public –list-all ##列出所有預設服務
firewall-cmd –get-services ##列出全部服務
firewall-cmd –list-all-zones ##列出所有區域的設置
firewall-cmd –permanent –zone=internal –add-source=172.25.0.0/24 ##(–permanent參數表示永久生效設置,如果沒有指定–zone參數,那麼會加入默認區域)
添加、改變、刪除網絡接口:
firewall-cmd –permanent –zone=internal –add-interface=eth0
firewall-cmd –permanent –zone=internal –change-interface=eth0
firewall-cmd –permanent –zone=internal –remove-interface=eth0
添加、刪除服務:
firewall-cmd –permanent –zone=public –add-service=smtp
firewall-cmd –permanent –zone=public –remove-service=smtp
列出、添加、刪除端口:
firewall-cmd –zone=public –list-ports
firewall-cmd –permanent –zone=public –add-port=8080/tcp
firewall-cmd –permanent –zone=public –remove-port=8080/tcp
重載防火牆:
firewall-cmd –reload
(注意:這並不會中斷已經建立的連接,如果打算中斷,可以使用 –complete-reload選項)
Direct Rules
通過 firewall-cmd 工具,可以使用 –direct 選項在運行時間裏增加或者移除鏈。如果不熟悉 iptables ,使用直接接口非常危險,因爲您可能無意間導致防火牆被入侵。
直接端口模式適用於服務或者程序,以便在運行時間內增加特定的防火牆規則。
直接端口模式添加的規則優先應用。
firewall-cmd –direct –get-all-rules ##列出規則
firewall-cmd –direct –add-rule ipv4 filter INPUT 0 ! -s 172.25.254.19 -p tcp –dport 80 -j ACCEPT ##添加規則
firewall-cmd –direct –remove-rule ipv4 filter INPUT 0 ! -s 172.25.254.19 -p tcp –dport 80 -j ACCEPT ##刪除規則
端口轉發和地址僞裝
firewall-cmd –permanent –zone=< ZONE > –add-masquerade ##在做僞裝的時候,一定要先打開僞裝選項(masquerade )
firewall-cmd –permanent –zone=< ZONE > –add-rich-rule=’rule family=ipv4 source addres=172.25.0.0/24 masquerade’ ##在
firewall-cmd –permanent –zone=< ZONE > –add-forward-port=port=80:proto=tcp:toport=8080:toaddr=172.25.0.10 ##端口轉發
測試: