Firewalld防火牆基礎

1、firewalld 概述
  • firewalld防火牆是Centos7系統默認的防火牆管理工具,取代了以前的iptables防火牆,也是工做在網絡層,屬於包過濾防火牆安全

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

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

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

 

2、firewalld與iptables 的區別

一、ssh

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

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

二、工具

  • iptables在/etc/sysconfig/iptables 中儲存配置雲計算

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

三、命令行

  • 使用iptables每一-個單獨更改意味着清除全部舊有的規則和從/etc/sysconfig/iptables裏讀取全部新的規則

  • 使用firewalld卻不會再建立任何新的規則,僅僅運行規則中的不一樣之處。所以firewalld能夠在運行時間內,改變設置而不丟失現行鏈接

四、

iptables防火牆類型爲靜態防火牆

firewalld防火牆類型爲動態防火牆

3、firewalld 區域概念

firewalld防火牆爲了簡化管理,將全部網絡流量分爲多個區域(zone)。而後根據數據包的源IP地址或傳入的網絡接口等條件將流量傳入相應區域。每一個區域都定義了本身打開或者關閉的端口和服務列表

firewalld防火牆預約義了9個區域:

1. trusted (信任區域) : 容許全部的傳入流量

2. public(公共區域): 容許與ssh或dhcpv6-client預約義服務匹配的傳入流量,其他均拒絕。是新添加網絡接口的默認區域

3. external (外部區域) : 容許與ssh預約義服務匹配的傳入流量,其他均拒絕。默認將經過此區域轉發的IPv4傳出流量將進行地址假裝,可用於爲路由器啓用了假裝功能的外部網絡

4. home (家庭區域) : 容許與ssh、ipp-client、 mdns、samba-client 或dhcpv6-client預約義服務匹配的傳入流量,其他均拒絕

5. internal (內部區域) :默認值時與home區域相同

6. work (工做區域) :容許與ssh、 ipp-client、dhcpv6-client 預約義服務匹配的傳入流量,其他均拒絕

7. dmz(隔離區域也稱爲非軍事區域):容許與ssh預約義服務匹配的傳入流量,其他均拒絕

8. block (限制區域) :拒絕全部傳入流量

9. drop (丟棄區域) :丟棄全部傳入流量,而且不產生包含ICMP的錯誤響應

區域介紹

• 區域如同進入主機的安全門,每一個區域都具備不一樣限制程度的規則

• 可使用一個或多個區域,可是任何一個活躍區域至少須要而關聯源地址或接口

• 默認狀況下,public區域是默認區域,包含全部接口(網卡)
4、Firewalld數據處理流程

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

5、Firewalld檢查數據包的源地址的規則
1.若源地址關聯到特定的區域(即源地址或接口綁定的區域有衝突),則執行該區域所制定的規則

2.若源地址未關聯到特定的區域(即源地址或接口綁定的區域沒有衝突),則使用傳入網絡接口的區域並執行該區域所制定的規則

3.若網絡接口也未關聯到特定的區域(即源地址或接口都沒有綁定特定的某個區域),則使用默認區域並執行該區域所制定的規則
6、Firewalld 防火牆的配置方法
1.使用firewalld-cmd 命令行工具

2.使用firewalld-config 圖形工具

3.編寫/etc/firewalld/中的配置文件

systemctl start firewalld.service

運行時配置

• 實時生效,並持續至Firewalld重 新啓動或從新加載配置

• 不中斷現有鏈接

• 不能修改服務配置

永久配置

• 不當即生效,除非Firewalld重 新啓動或從新加載配置

• 中斷現有鏈接

• 能夠修改服務配置

一、經常使用的firewalld-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> :爲指定的區域刪除綁定的網絡接口

--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>] --remcve-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 類型

 

image

image

image

image

image

image

image

image

image

image

image

image

二、區域管理

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

(2)顯示默認區域的全部規則
firewall-cmd --list-all

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

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

 

三、服務管理

(1)查看默認區域內容許訪問的全部服務
firewall-cmd --list-service

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

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

(4)刪除public區域的httpd服務
firewall-cmd --remove-service=http --zone=public

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

 

  • 添加使用 --permanent選項表示設置成永久生效,須要從新啓動firewalld服務或執行firewall-cmd --reload命令

  • 從新加載防火牆規則時纔會生效。若不帶有此選項,表示用於設置運行時規則,可是這些規則在系統或firewalld服務重啓、中止時配置將失效

firewall-cmd --runtime-to-permanent:將當前的運行時配置寫入規則配置文件中,使之成爲永久性配置

 

四、端口管理

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

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

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

 

image

相關文章
相關標籤/搜索