Firewalld防火牆基礎
theme: condensed-night-purple
firewalld防火牆
firewalld防火牆是centos7系統預設的防火牆管理工具,取代了之前的iptables防火牆,也是工作在網路層,屬於包過濾防火牆。
- 支援IPv4、IPv6防火牆設定以及乙太網橋
- 支援服務或應用程式直接新增防火牆規則介面
- 擁有兩種配置模式:臨時模式、永久模式
Firewalld和iptables的關係
netfilter
- 位於Linux核心中的包過濾功能體系
- 稱為Linux防火牆的“核心態”
Firewalld/iptables
- CentOS7預設的管理防火牆規則的工具(Firewalld)
- 稱為Linux防火牆的“使用者態”
Firewalld和iptables的區別
1、對規則的設定不同:
- ptables主要是基於介面(網絡卡),來設定規則,從而判斷網路的安全性。
- firewalld是基於區域,根據不同的區域來設定不同的規則,從而保證網路的安全。與硬體防火牆的設定相類似。
2、配置檔案不同:
-
iptables在
/etc/sysconfig/iptables
中儲存配置; -
firewalld 將配置儲存在
/etc/firewalld/
(優先載入)和/usr/lib/firewalld/
(預設的配置檔案)中的各種XML檔案裡。- 當
/etc/firewalld/
中沒有相關區域的配置檔案時,才會載入/usr/lib/firewalld/
中的配置檔案。
- 當
3、對規則的修改:
- 使用iptables每一個單獨更改,意味著清除所有舊的規則和從/etc/sysconfig/iptables裡讀取所有新的規則。
- 使用firewalld卻不會再建立任何新的規則,僅僅執行規則中的不同之處。因此firewalld可以在執行時間內,改變設定而不丟失現行連線。
4、防火牆型別不同:
- iptables防火牆型別為靜態防火牆
- firewalld防火牆型別為動態防火牆
firewalld區域的概念
firewalld防火牆為了簡化管理,將所有網路流量分為多個區域(zone)。然後根據資料包的源IP地址或傳入的網路介面等條件將流量傳入相應區域。每個區域都定義了自己開啟或者關閉的埠和服務列表。
這些區域配置檔案存在於/usr/lib/firewalld/zones目錄中,還有一個目錄/etc/firewalld/zones。firewalld使用規則時,會首先到/etc/firewalld/目錄中查詢,如果可以找到就直接使用,找不到會繼續到/usr/lib/firewalld/目錄中查詢。
firewalld防火牆定義了9個區域
| 區域 | 作用 | | --- | --- | |trusted(信任區域) | 允許所有的傳入流量。 | |public(公共區域) |允許與ssh或dhcpv6-client預定義服務匹配的傳入流量,其餘均拒絕。是新新增網路介面的預設區域。 | |external(外部區域) | 允許與ssh預定義服務匹配的傳入流量其餘均拒絕。| |home(家庭區域) | 允許與ssh、mdns、samba-client或dhcpv6-client預定義服務匹配的傳入流量,其他均拒絕。| |internal(內部區域) | 預設值與home區域相同。| |work(工作區域) |允許與ssh、dhcpv6-client預定義服務匹配的傳入流量,其他均拒絕 | |dmz(隔離區域也稱非軍事區域) |允許與ssh預定義服務匹配的傳入流量,其他均拒絕。 | |block(限制區域) | 拒絕所有傳入流量。| |drop(丟棄區域) | 丟棄所有傳入流量,並且不產生包含icmp的錯誤響應。|
firewalld防火牆的配置方法
1、firewall-config 圖形化工具(生產環境一般只有字元介面,不使用這種方法)
2、firewall-cmd 命令列工具(生產環境中沒有圖形化介面,所以只能在命令列進行配置)
3、編寫 /etc/firewalld 中的配置檔案。
- Firewalld 會優先使用/etc/firewalld/中的配置,如果不存在配置檔案,則使用/usr/lib/firewalld/中的配置。
- /etc/firewalld/:使用者自定義配置檔案,需要時可通過從/usr/lib/firewalld/ 中拷貝
- /usr/lib/firewalld/ :預設配置檔案,不建議修改,若恢復至預設配置,可直接刪除/etc/firewalld/ 中的配置
firewall-config 圖形化工具
firewall-cmd 命令列工具
常用的 firewall-cmd 命令選項:
```js
#預設區域
--get-default-zone :顯示當前預設區域
--set-default-zone=
```
Firewalld兩種配置模式
執行時配置:
- 實時生效,並持續至Firewalld重新啟動或重新載入配置檔案
- 不中斷現有連線
- 不能修改伺服器配置
永久配置:
- 不立即生效,除非Firewaddl重新啟動或重新載入配置
- 中斷現有連線
- 可以修改服務配置
執行時配置
檢視指定區域的所有規則
firewall-cmd --list-all-zones:顯示所有區域及其規則
firewall-cmd --list-all : 不指定區域時,檢視的是預設區域
firewall-cmd --list-all --zone=work:顯示work區域的所有規則
服務管理
顯示、新增、刪除指定區域的某個服務
埠管理
新增、刪除某個協議的埠
永久配置
永久配置不立即生效,需要重啟服務或重新載入後才生效。重啟服務或重新載入時會中斷現有連線。下次重啟後不會丟失,永久存在。
直接進行永久配置