Firewalld防火牆(CentOS 7)

Firewalld簡介

1.支持網絡區域所定義的網絡連接以及接口安全的動態防火牆管理工具。
2.支持IPv4、IPv6防火牆設置以及以太網橋接
3.支持服務或應運程序直接添加防火牆規則口
4.擁有兩種配置模式
運行時配置
永久配置



Firewalld與iptables的關係

Firewalld防火牆(CentOS 7)


netfilter

1.位於linux內核中的包過濾功能體系
2.稱爲Linux防火牆的“內核態”


Firewalld/iptables

1.Centos7默認的管理防火牆規則的工具(Firewalld)
2.稱爲linux防火牆的“用戶態”
3.Firewalld是iptables的升級
4.iptables(command)爲用戶態
5.kernel(netfilter)爲內核態


Firewalld與iptables的區別

Firewalld iptables
配置文件 /usr/lib/firewalld/ /etc/firewalld/ /etc/sysconfig/iptables
對規則的修改 不需要全部刷新策略,不丟失現行連接 需要全部刷新策略,丟失連接
防火牆類型 動態防火牆 靜態防火牆


Firewalld網絡區域

區域介紹

1.區域如同進入主機的安全門,每個區域都具有不同限制程度的規則
2.可以使用一個人或多個區域,但是任何一個活躍區域至少需要關聯源地址或接口
3.默認情況下,public區域是默認區域,包含所有接口(網卡)


區域 描述
drop(丟棄) 任何接收的網絡數據包都被丟棄,沒有任何回覆。僅能有發送出去的網絡連接
block(限制) 任何接收的網絡連接都被IPv4的icmp-hot-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒絕
public(公共) 在公共區域內使用,不能相信網絡內的其他計算機不會對您的計算機造成危害,只能接收經過選取的連接
external(外部) 特別是爲路由器啓用了僞裝功能的外部網。您不能信任來自網絡的其他計算,不能相信他們不會對您的計算機造成危害,只能接收經過選擇的連接
dmz(非軍事區) 用於您的非軍事區內的電腦,此區域內可公開訪問,可以有限的進入您的內部網絡,僅僅接收經過選擇的連接
work(工作) 用於工作區域。您可以基本相信網絡內的其他電腦不會危害您的電腦。僅僅接收經過選擇的連接
home(家庭) 用於家庭網絡。您可以基本相信網絡內的其他計算機不會危害您的計算機。僅僅接收經過選擇的連接
internal(內部) 用於內部網絡。您可以基本上信任網絡內的其他計算機不會威脅您的計算機。僅僅接受經過選擇的連接
trusted(信任) 可接受所有的網絡連接

Firewalld數據處理流程

檢查數據來源的源地址
1.若源地址關聯到特定的區域,則執行該區域所指定的規則
2.若源地址未關聯到特定的區域,則使用傳入網絡接口的區域並執行該區域所指定的規則
3.若網絡接口未關聯到特定的區域,則使用默認區域並執行該區域所指定的規則



Firewalld防火牆的配置方法

運行時配置

1.實時生效,並持續至Firewalld重新啓動或重新加載配置
2.不中斷現有連接
3.不能修改服務配置

永久配置

1.不立即生效,除非Firewalld重新啓動或重新加載配置
2.終端現有連接
3.可以修改服務配置

/etc/firewalld/中的配置文件

1.Firewalld會優先使用/etc/firewalld/中的配置,如果不存在配置文件時可通過從/usr/lib/firewalld/中拷貝

2./usrlib/firwalld/:默認配置文件,不建議修改,若恢復至默認配置,可直接刪除/etc/firewalld/中的配置


Firewalld-config圖形工具

[root@localhost ~]# firewall-config          //打開圖形工具

Firewalld防火牆(CentOS 7)



運行時配置/永久配置

重新加載防火牆
更該永久配置
關聯網卡到指定區域
修改默認區域
連接狀態


區域選項卡內容
1.“服務” 子選項卡
2.“端口”子選項卡
3.“協議”子選項卡
4.“源端口”子選項卡
5.“僞裝”子選項卡
6.“端口轉發”子選項卡
7.“ICMP過濾器”子選項卡


服務選項卡
1.“模塊”子選項卡
2.“目標地址”子選項卡



Firewalld命令行工具

Firewalld-cmd命令

1.啓動、停止、查看 firewalld 服務

systemctl start firewalld         //啓動 firewalld
systemctl enable firewalld         //設置 firewalld 爲開機自啓動
systemctl status firewalld        //查看firewalld狀態
firewall-cmd --state             //查看firewalld狀態
systemctl stop firewalld           //停止 firewalld服務
systemctl disable firewalld           //設置 firewalld 開機不自啓動

2.獲取預定義信息

firewall-cmd 預定義信息主要包括三種:可用的區域、可用的服務以及可用的 ICMP 阻塞
firewall-cmd --get-zones           //顯示預定義的區域 
firewall-cmd --get-service         //顯示預定義的服務
firewall-cmd --get-icmptypes         //顯示預定義的 ICMP 類型

各種阻塞類型的含義

destination-unreachable:目的地址不可達 
echo-reply:應答迴應(pong) 
parameter-problem:參數問題 
redirect:重新定向
router-advertisement:路由器通告 
router-solicitation:路由器徵尋 
source-quench:源端抑制 
time-exceeded:超時 
timestamp-reply:時間戳應答迴應 
timestamp-request:時間戳請求 

3.區域管理

使用 firewall-cmd 命令可以實現獲取和管理區域,爲指定區域綁定網絡接口等功能

區域管理選項

- -get-default-zone       //顯示網絡連接或接口的默認區域 
- -set-default-zone=<zone>       //設置網絡連接或接口的默認區域 
- -get-active-zones       //顯示已激活的所有區域 
- -get-zone-of-interface=<interface>       //顯示指定接口綁定的區域 
- -zone=<zone> - -add-interface=<interface>       //爲指定接口綁定區域 
- -zone=<zone> - -change-interface=<interface>        //爲指定的區域更改綁定的網絡接口 
- -zone=<zone> - -remove-interface=<interface>       //爲指定的區域刪除綁定的網絡接口 
- -list-all-zones       //顯示所有區域及其規則 
[- -zone=<zone>] - -list-all       //顯示所有指定區域的所有規則,省略- -zone=<zone>時表示表示對默認區域操作 

4.服務管理

firewalld 預 先 定 義 了 很 多 服 務 , 存 放 在 /usr/lib/firewalld/services/ 目錄中,服務通過單個的 XML 配置文件來指定。這些配置文件則按以下格式命名:service-name.xml,每個文件對應一項具體的網絡服務,ssh 務等。與之對應的配置文件中記錄了各項服務所使用的 tcp/udp 端口。在最新版本的 firewalld 中默認已經定義了 ,對於每個網絡區域許訪問的服務。當默認提供的服務不適用或者需要自定義某項服務的端口時,我們需要將 service 配置文件放置在 /etc/firewalld/services/ 目錄中。ervice 配置具有以下優點: 通過服務名字來管理規則更加人性化; 通過服務來組織端口分組的模式更加高效,如果一個服務使用了若干個網絡端口,則服務的配置文件就相當於提供了到這些端口的規則管理的批量操作快捷方式。

服務管理選項

[- -zone=<zone>] - -list-services         //顯示指定區域內允許訪問的所有服務 
[- -zone=<zone>] - -add-service=<service>         //爲指定區域設置允許訪問的某項服務 
[- -zone=<zone>] - -remove-service=<service>         //刪除指定區域已設置的允許訪問的某項服務 
[- -zone=<zone>] - -list-ports         //顯示指定區域內允許訪問的所有端口號 
[- -zone=<zone>] - -add-port=<portid>[-<portid>]/<protocol>         //爲指定區域設置允許訪問的某個/某段端口號 (包括協議名) 
[- -zone=<zone>] - -remove-port=<portid>[-<portid>]/<protocol>         //刪除指定區域已設置的允許訪問的端口號(包括協議名) 
[- -zone=<zone>] - -list-icmp-blocks         //顯示指定區域內拒絕訪問的所有ICMP類型 
[- -zone=<zone>] - -add-icmp-block=<icmptype>         //爲指定區域設置拒絕訪問的某項ICMP類型 
[- -zone=<zone>] - -remove-icmp-block=<icmptype>         //刪除指定區域已設置的拒絕訪問的某項ICMP類型,省略- -zone=<zone>時表示對默認區域操作 
[- -zone=<zone>] - -remove-icmp-block=<icmptype>         //查詢指定區域的ICMP阻塞功能

5.端口管理

在進行服務配置時,預定義的網絡服務可以使用服務名配置,服務所涉及的端口就會自動打開。但是對於非預定義的服務只能手動爲指定的區域添加端口

端口管理命令

firewall-cmd - -zone=internal - -add-ports      //顯示internal區域內允許訪問的使用端口號
firewall-cmd - -zone=internal - -remove-port=22/tcp - -timeout=5m       //啓用internal 區域22端口的TCP協議訪問,- -timeout=5m表示5分鐘後刪除除該端口(多用於測試)
firewall-cmd - -zone=internal - -remove-port=443/tcp       //禁止internal 區域443端口的TCP協議訪問
firewall-cmd - -zone=internal - -query-port=22/tcp      //查詢internal 區域中是否啓用22端口和TCP協議

6.兩種配置模式

運行時模式:
表示當前內存中運行的防火牆配置,在系統或 firewalld 服務重啓、停止時配置將失效
永久模式:
表示重啓防火牆或重新加載防火牆時的規則配置,是永久存儲在配置文件中的

配置模式選項

 - -reload:重新加載防火牆規則並保持狀態信息,即將永久配置應用爲運行時配置。 
 - -permanent:帶有此選項的命令用於設置永久性規則,這些規則只有在重新啓動 
firewalld 或重新加載防火牆規則時纔會生效;若不帶有此選項,表示用於設置運行時 
規則。 
- -runtime-to-permanent:將當前的運行時配置寫入規則配置文件中,使之成爲永久性的配置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章