當前位置:網站首頁>firewalld防火牆

firewalld防火牆

2022-01-27 01:08:52 ShiXiao0121

一、firewalld防火牆簡介

firewalld防火牆是Centos7系統默認的防火牆管理工具,取代了之前的iptables防火牆,也是工作在網絡層,屬於包過濾防火牆

firewalld和iptables都是用來管理防火牆的工具(屬於用戶態)來定義防火牆的各種規則功能,內部結構都指向netfilter網絡過濾子系統(屬於內核態)來實現包過濾防火牆功能。

firewalld提供了支持網絡區域所定義的網絡連接以及接口安全等級的動態防火牆管理工具。

它支持IPv4、 IPv6防火牆設置以及以太網橋(在某些高級服務可能會用到,比如雲計算),並且擁有兩種配置模式:運行時配置與永久配置。

二、firewalld與iptables的區別

1、iptables主要是基於接口,來設置規則,從而判斷網絡的安全性。

  • firewalld是基於區域,根據不同的區域來設置不同的規則,從而保證網絡的安全。與硬件防火牆的設置相類似。

2、iptables在/etc/ sysconfig/iptables中儲存配置,

  • firewalld將配置儲存在/etc/firewalld/ ( 優先加載)和/usr/lib/ firewalld/ ( 默認的配置文件)中的各種XML文件裏。

3、使用iptables每一個單獨更改意味著清除所有舊有的規則和從/etc/sysconfig/iptables裏讀取所有新的規則。

  • 使用firewalld卻不會再創建任何新的規則,僅僅運行規則中的不同之處。因此firewalld可以在運行時間內,改變設置而不丟失現行連接。

4、iptables防火牆類型為靜態防火牆

  • firewalld防火牆類型為動態防火牆

三、firewalld區域的概念

firewalld防火牆為了簡化管理,將所有網絡流量分為多個區域(zone)。然後根據數據包的源IP地址或傳入的網絡接口等條件將流量傳入相應區域。每個區域都定義了自己打開或者關閉的端口和服務列錶。

3.1、firewalld防火牆9個區域

區域 說明
trusted(信任區域) 允許所有的傳入流量。
public(公共區域) 允許與ssh或dhcpv6-client預定義服務匹配的傳入流量,其餘均拒絕。是新添加網絡接口的默認區域。
external(外部區域) 允許與 ssh 預定義服務匹配的傳入流量,其餘均拒絕。 默認將通過此區域轉發的IPv4傳出流量將進行地址偽裝,可用於為 路由器啟用了偽裝功能的外部網絡。
home(家庭區域) 允許與ssh、ipp-client、mdns、samba-client或dhcpv6-client預定義服務匹配的傳入流量,其餘均拒絕。
internal(內部區域) 默認值時與home區域相同。
work(工作區域) 允許與 ssh、ipp-client、dhcpv6-client 預定義服務匹配的傳入流量,其餘均拒絕。
dmz(隔離區域也稱為非軍事區域) 允許與 ssh 預定義服務匹配的傳入流量,其餘均拒絕。
block(限制區域) 拒絕所有傳入流量。
drop(丟弃區域) 丟弃所有傳入流量,並且不產生包含ICMP的錯誤響應。

3.2、區域介紹

  • 最終一個區域的安全程度是取决於管理員在此區域中設置的規則。
  • 區域如同進入主機的安全門,每個區域都具有不同限制程度的規則,只會允許符合規則的流量傳入。
  • 可以根據網絡規模,使用一個或多個區域,但是任何一個 活躍區域 至少需要關聯 源地址或接口。
  • 默認情况下,public區域是默認區域,包含所有接口(網卡)

四、firewalld數據處理流程

firewalld對於進入系統的數據包,會根據數據包的源IP地址或傳入的網絡接口等條件,將數據流量轉入相應區域的防火牆規則。對於進入系統的數據包,首先檢查的就是其源地址。

五、firewalld檢查數據包的源地址規則

  1. 若源地址關聯到特定的區域(即源地址或接口綁定的區域有沖突),則執行該區域所制定的規則。
  2. 若源地址未關聯到特定的區域(即源地址或接口綁定的區域沒有沖突),則使用傳入網絡接口的區域並執行該區域所制定的規則。
  3. 若網絡接口也未關聯到特定的區域(即源地址或接口都沒有綁定特定的某個區域),則使用默認區域並執行該區域所制定的規則。

六、firewalld防火牆的配置方法

6.1、使用firewall-cmd命令行工具

 --get-default-zone :顯示當前默認區域
 --set-default-zone=<zone> :設置默認區域

 --get-active-zones :顯示當前正在使用的區域及其對應的網卡接口
 --get-zones :顯示所有可用的區域

 --get-zone-of-interface=<interface> :顯示指定接口綁定的區域
 --zone=<zone> --add-interface=<interface> :為指定接口綁定區域
 --zone=<zone> --change-interface=<interface> :為指定的區域更改綁定的網絡接口
 --zone=<zone> --remove-interface=<interface> :為指定的區域删除綁定的網絡接口

 --get-zone-of-source=<source>[/<mask>] :顯示指定源地址綁定的區域
 --zone=<zone> --add-source=<source>[/<mask>] :為指定源地址綁定區域
 --zone=<zone> --change-source=<source>[/<mask>] :為指定的區域更改綁定的源地址
 --zone=<zone> --remove-source=<source>[/<mask>] :為指定的區域删除綁定的源地址

 --list-all-zones :顯示所有區域及其規則
 [--zone=<zone>] --list-all :顯示所有指定區域的所有規則,省略--zone=<zone>時錶示僅對默認區域操作

 [--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類型
 firewall-cmd --get-icmptypes :顯示所有 ICMP 類

6.2、使用firewall-config圖形工具

在這裏插入圖片描述

七、區域管理

顯示當前系統中的默認區域
firewall-cmd --get-default-zone

顯示默認區域的所有規則
firewall-cmd --list-all

顯示當前正在使用的區域及其對應的網卡接口
firewall-cmd --get-active-zones

設置默認區域
firewall-cmd --set-default-zone=home
firewall-cmd --get-default-zone

八、服務管理

查看默認區域內允許訪問的所有服務
firewall-cmd --list-service

添加httpd 服務到public 區域
firewall-cmd --add-service=http --zone=public

查看public 區域已配置規則
firewall-cmd --list-all --zone=public

删除public 區域的httpd 服務
firewall-cmd --remove-service=http --zone=public

同時添加httpd、https 服務到默認區域,設置成永久生效
firewall-cmd --add-service=http --add-service=https --permanent
firewall-cmd --reload	
firewall-cmd --list-all	

#添加使用 --permanent選項錶示設置成永久生效,需要重新啟動firewalld服務或執行firewall-cmd --reload命令 重新加載防火牆規則時才會生效。若不帶有此選項,錶示用於設置運行時規則,但是這些規則在系統或firewalld服務重啟、停止時配置將失效。
--runtime-to-permanent:將當前的運行時配置寫入規則配置文件中,使之成為永久性配置。

九、端口管理

允許TCP的443端口到internal區域
firewall-cmd --zone=internal --add-port=443/tcp
firewall-cmd --list-all --zone=internal

從internal 區域將TCP的443端口移除
firewall-cmd --zone=internal --remove-port=443/tcp

允許UDP的2048~2050端口到默認區域
firewall-cmd --add-port=2048-2050/udp
firewall-cmd --list-all

版權聲明
本文為[ShiXiao0121]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270108523994.html

隨機推薦