FirewallD 提供了支持網絡/防火牆區域(zone)定義網絡連接以及接口安全等級的動態防火牆管理工具。它支持 IPv4, IPv6 防火牆設置以及以太網橋接,而且擁有運行時配置和永久配置選項。它也支持容許服務或者應用程序直接添加防火牆規則的接口。 之前的 system-config-firewall/lokkit 防火牆模型是靜態的,每次修改都要求防火牆徹底重啓。這個過程包括內核 netfilter 防火牆模塊的卸載和新配置所需模塊的裝載等。而模塊的卸載將會破壞狀態防火牆和確立的鏈接。
相反,firewall daemon 動態管理防火牆,不須要重啓整個防火牆即可應用更改。於是也就沒有必要重載全部內核防火牆模塊了。不過,要使用 firewall daemon 就要求防火牆的全部變動都要經過該守護進程來實現,以確保守護進程中的狀態和內核裏的防火牆是一致的。另外,firewall daemon 沒法解析由 ip*tables 和 ebtables 命令行工具添加的防火牆規則。
守護進程經過 D-BUS 提供當前激活的防火牆設置信息,也經過 D-BUS 接受使用 PolicyKit 認證方式作的更改。
policykit機制原理:
使用 policykit 通常都有一個dbus daemon程序去管理對應一系列的操做,當有程序來請求這些操做(方法)時,這個daemon程序會根據預先設定好的配置來肯定是否要求額外的權限,須要額外的權限會去向libpolkit驗證當前操做是否得到了權限,若是當前調用已經取得權限了,則調用順利經過,不然返回無權限的提示或異常。
PolicyKit主要是經過dbus來進行的,是在dbus服務的基礎上加強了policykit的配置文件來實現的。所以理論上只要是dbus服務就可使用PolicyKit。從而讓用戶具有更多的操做權。
iptables:
system-config-firewall/lokkit,靜態防火牆
靜態防火牆規則配置文件是 /etc/sysconfig/iptables 以及 /etc/sysconfig/ip6tables
firewalld:
firewalld daemon 動態管理防火牆,不須要重啓整個防火牆就能夠應用更改,不過要使用firewalld daemon就要求防火牆的全部變動都要經過該守護進程來實現,已確保守護進程中的狀態和內核裏防火牆是一致的,另外,firewalld daemon沒法解析由iptables和ebtables命令行添加的防火牆規則
守護進程經過D-BUS提供當前激活的防火牆設置信息,也經過D-BUS接受使用PolicyKit認證方式作的更改
使用system-config-firewall和lokkit的靜態防火牆模型實際上仍然可用並繼續提供,但卻不能與「守護進程」同時使用,用戶和管理員必須選擇一種方案
firewalld iptables 都是對內核netfilter的操做,真正防火牆機制的實現是netfilter實現
4.5.4. 對網絡區的理解
基於用戶對網絡中設備和交通所給與的信任程度,防火牆能夠用來將網絡分割成不一樣的區域。 NetworkManager 通知 firewalld 一個接口歸屬某個區域。接口所分配的區域能夠由 NetworkManager 改變,也能夠經過能爲您打開相關 NetworkManager 窗口的 firewall-config 工具進行。
在/etc/firewalld/的區域設定是一系列能夠被快速執行到網絡接口的預設定。列表並簡要說明以下:
drop(丟棄)
任何接收的網絡數據包都被丟棄,沒有任何回覆。僅能有發送出去的網絡鏈接。
block(限制)
任何接收的網絡鏈接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒絕。
public(公共)
在公共區域內使用,不能相信網絡內的其餘計算機不會對您的計算機形成危害,只能接收通過選取的鏈接。
external(外部)
特別是爲路由器啓用了假裝功能的外部網。您不能信任來自網絡的其餘計算,不能相信它們不會對您的計算機形成危害,只能接收通過選擇的鏈接。
dmz(非軍事區)
用於您的非軍事區內的電腦,此區域內可公開訪問,能夠有限地進入您的內部網絡,僅僅接收通過選擇的鏈接。
work(工做)
用於工做區。您能夠基本相信網絡內的其餘電腦不會危害您的電腦。僅僅接收通過選擇的鏈接。
home(家庭)
用於家庭網絡。您能夠基本信任網絡內的其餘計算機不會危害您的計算機。僅僅接收通過選擇的鏈接。
internal(內部)
用於內部網絡。您能夠基本上信任網絡內的其餘計算機不會威脅您的計算機。僅僅接受通過選擇的鏈接。
trusted(信任)
可接受全部的網絡鏈接。
指定其中一個區域爲默認區域是可行的。當接口鏈接加入了 NetworkManager,它們就被分配爲默認區域。安裝時,firewalld 裏的默認區域被設定爲公共區域。
firewalld 使用:
1.區域
網絡區域定義了網絡鏈接的可信等級,這是一個一對多的關係,意味着一次鏈接能夠僅僅是區域的一部分,而一個區域能夠用於不少鏈接
2.預約義的服務
服務是端口和協議入口的組合
3.端口和協議
定義了tcp或udp端口,端口能夠是一個端口或者端口範圍
4.icmp阻塞
能夠選擇 Internet 控制報文協議的報文。這些報文能夠是信息請求亦但是對信息請求或錯誤條件建立的響應。
5.假裝(nat)
私有網絡地址能夠被映射到公開的IP地址。這是一次正規的地址轉換。
6.端口轉發
端口能夠映射到另外一個端口以及/或者其餘主機。
可用的區域(從不信任到信任排序)
1.丟棄
drop.xml
任何流入網絡的包都被丟棄,不做出任何響應。只容許流出的網絡鏈接。
2.阻塞
block.xml
任何進入的網絡鏈接都被拒絕,並返回 IPv4 的 icmp-host-prohibited 報文或者 IPv6 的 icmp6-adm-prohibited 報文。只容許由該系統初始化的網絡鏈接。
3.公開
public.xml
用以能夠公開的部分。你認爲網絡中其餘的計算機不可信而且可能傷害你的計算機。只容許選中的鏈接接入。
4.外部
external.xml
用在路由器等啓用假裝的外部網絡。你認爲網絡中其餘的計算機不可信而且可能傷害你的計算機。只容許選中的鏈接接入。
5.隔離區(dmz)
dmz.xml
用以容許隔離區(dmz)中的電腦有限地被外界網絡訪問。只接受被選中的鏈接。
6.工做
work.xml
用在工做網絡。你信任網絡中的大多數計算機不會影響你的計算機。只接受被選中的鏈接。
7.家庭
home.xml
用在家庭網絡。你信任網絡中的大多數計算機不會影響你的計算機。只接受被選中的鏈接。
8.內部
internal.xml
用在內部網絡。你信任網絡中的大多數計算機不會影響你的計算機。只接受被選中的鏈接。
9.受信用的
trusted.xml
容許全部網絡鏈接。
你可使用任何一種 firewalld 配置工具來配置或者增長區域,以及修改配置。工具備例如 firewall-config 這樣的圖形界面工具, firewall-cmd 這樣的命令行工具,以及D-BUS接口。或者你也能夠在配置文件目錄中建立或者拷貝區域文件。
/usr/lib/firewalld/zones被用於默認和備用配置,/etc/firewalld/zones 被用於用戶建立和自定義配置文件。
通常應用:
1.獲取狀態
2.在不改變狀態的條件下從新加載防火牆
3.獲取支持的區域列表
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="1.1.1.1" port protocol="tcp" port="10050" accept"
查詢端口是否開啓命令:
firewall-cmd --query-port=80/tcp
通常應用:
1.獲取狀態
firewall-cmd --state
2.在不改變狀態的條件下從新加載防火牆
firewall-cmd --reload
3.獲取支持的區域列表
firewall-cmd --get-zones
指定ip開發端口
firewall-cmd --permanent
--zone=public
--add-rich-rule="rule family="ipv4" source address="1.1.1.1" port protocol="tcp" port="10050" accept"
firewall-cmd --reload
開啓http 80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewalld 刪除規則, 通常--add改成--remove,有問題就man 查下或者firewall-cmd -h 查看命令
firewalld查看active-zones
firewall-cmd --get-active-zones
iptables命令:
查看iptables配置
IPtables -S
增長iptables在19行配置:
iptables -I INPUT 19 -s 10.28.100.100/32 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
刪除
iptables -D INPUT -s 10.28.100.100/32 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT