溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Firewalld的概念和常用命令是什么

發(fā)布時(shí)間:2021-12-27 17:04:23 來源:億速云 閱讀:193 作者:柒染 欄目:互聯(lián)網(wǎng)科技

Firewalld的概念和常用命令是什么,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

下面主要從概念及架構(gòu)、核心組成、常用命令等幾個(gè)方面詳細(xì)介紹了Firewalld,并附加介紹了iptables四表五鏈和netfilter的知識。

一  簡介

1、Firewalld提供更加智能化的防火墻管理規(guī)則,優(yōu)化策略配置方案,支持網(wǎng)絡(luò)“zones(域)”,并為網(wǎng)絡(luò)及其關(guān)聯(lián)的鏈接、接口或源分配信任級別,不同信任級別默認(rèn)開放服務(wù)不同。

2、支持IPV4,IPV6,以太網(wǎng)橋以及IPSET防火墻設(shè)置。

3、運(yùn)行時(shí)態(tài)與永久配置分離,運(yùn)行時(shí)態(tài)可手動(dòng)更改,重置后回到永久配置(文件配置)

4、優(yōu)化iptables添加規(guī)則,還支持圖形界面(本文不介紹),除了iptables,還有ip6tables和ebtables規(guī)則。

二  概念及架構(gòu)

空間架構(gòu)分為上下兩層。

1、上層:firewalld D-Bus:命令主接口,修改防火墻配置主要方式。

firewall-cmd:主要命令行操作方式。

firewall-config:離線命令行操作模式,因?yàn)橹苯幼饔糜趂irewalld永久配置中,所以在firewall運(yùn)行時(shí)不建議直接操作。

firewall-config:圖形配置模式。

firewall-applet:防火墻小程序。

2、下層(核心層):負(fù)責(zé)處理配置和后端,并含有iptables,ip6tables,ebtables,ipset模塊加載器。

Firewalld的概念和常用命令是什么


空間結(jié)構(gòu)圖示

建議使用NetworkManager,雖然firewalld不依賴它,但是NetworkManager會(huì)解決一些網(wǎng)絡(luò)設(shè)備重命名的通知等問題。

3、Firewalld支持zones,services,IPsets和ICMP類型。
三   核心組成

1、ZONE(防火墻區(qū)域定義鏈接、接口或源地址綁定的信任級別),共10(還有一種為default)種,直接為網(wǎng)域種的其他計(jì)算機(jī)建立信任關(guān)系度,不用進(jìn)行麻煩的配置操作,只需要選擇一個(gè)zone即可,如若不滿足需要,還可手動(dòng)添加信任服務(wù)。

Drop : 任何傳入的網(wǎng)絡(luò)的數(shù)據(jù)包都被丟棄

Block : 任何傳入網(wǎng)絡(luò)的數(shù)據(jù)包都被拒絕(包括ICMP),只能啟動(dòng)網(wǎng)絡(luò)鏈接

Public : 在公共區(qū)域內(nèi)使用,近接受選定的傳入鏈接(默認(rèn):僅ssh或dhcpv6-client服務(wù)鏈接)

External : 用于偽裝,出去的ipv4網(wǎng)絡(luò)鏈接通過此區(qū)域偽裝和轉(zhuǎn)發(fā)(默認(rèn):僅接受ssh服務(wù)鏈接)

Dmz : 對內(nèi)部網(wǎng)絡(luò)訪問權(quán)限限制(默認(rèn):僅接受ssh服務(wù)鏈接)

Work : 用于工作區(qū)(默認(rèn):僅接受ssh,ipp-client或dhcpv6-client服務(wù)鏈接 )

Home : 用于家庭區(qū)(默認(rèn):僅接受ssh,mdns,ipp-client,samba-client或dhcpv6-client服務(wù)鏈接)

Internal : 內(nèi)部,對網(wǎng)絡(luò)上的其他計(jì)算機(jī)信任的較高,默認(rèn)大部分服務(wù)

Trusted : 最高信任級別,接受所有網(wǎng)絡(luò)鏈接

Firewalld的概念和常用命令是什么

public 配置(/etc/firewalld/zones)

2、NetworkManager存在的意義

1)NetworkManager(接口管理者)不能處理網(wǎng)絡(luò)鏈接,它的作用是告訴firewalld將用于此鏈接的網(wǎng)絡(luò)接口分配給該鏈接的配置中定義的區(qū)域,當(dāng)然存在網(wǎng)絡(luò)配置的系統(tǒng)都支持ifcfg文件的系統(tǒng)

2)網(wǎng)絡(luò)鏈接由網(wǎng)絡(luò)腳本處理

3、配置規(guī)則(當(dāng)然,規(guī)則這種東西都是看起來繁雜冗長,常用的就幾個(gè))

規(guī)則介紹:

  • version=”string”  版本提供

  • target=”ACCEPT|%%REJECT%%|DROP”  接受,拒絕或丟棄與任何規(guī)則(端口,服務(wù)等)不匹配的每個(gè)數(shù)據(jù)包

  • short  可選開始和結(jié)束的標(biāo)記,用于名稱備注

  • description  可選的開始和結(jié)束的標(biāo)記,用于描述備注

  • interface  可選的空元素標(biāo)記 ,只有一個(gè)name屬性,一般使name=”string”方式綁定服務(wù)到zone的接口上

  • source  可選的空元素標(biāo)記,可多次使用。它可用于將源地址、地址反饋、MAC地址或ipset綁定到區(qū)域。屬性如下:




    address=”address[/mask]” 源是IP地址或具有IPv4、IPv6掩碼的網(wǎng)絡(luò)IP地址;

    mac=”MAC” 源是MAC地址。它必須是xx:xx:xx:xx:xx:xx形式;

    ipset=”ipset” 源是一個(gè)ipset;

  • port  可選的空元素標(biāo)記,可以多次使用具有多個(gè)端口條目。屬性如下:

    port=”portid[-portid]”  端口可以是單個(gè)端口號portid,也可以是端口范圍portid-portid

    protocol=”tcp|udp”  協(xié)議可分為TCP/UDP

  • protocol  可選的空元素標(biāo)記,可以多次使用具有多個(gè)協(xié)議條目。屬性如下:

    value=”string”

  • icmp-block  可選的空元素標(biāo)記,可以多次使用具有多個(gè)條目,每個(gè)icmp-block標(biāo)記只有一個(gè)強(qiáng)制屬性:

    name=”string”

  • icmp-block-inversion  可選的空元素標(biāo)記,只能在區(qū)域配置中使用一次。該標(biāo)志反轉(zhuǎn)icmp塊處理。僅接受啟用的ICMP類型,并在區(qū)域中拒絕所有其他類型

  • masquerade  偽裝,可選的空元素標(biāo)記。它只能在區(qū)域配置中使用一次,不能用于IPV6。

  • forward-port  可選的空元素標(biāo)記,可以多次使用具有多個(gè)端口或數(shù)據(jù)包轉(zhuǎn)發(fā)條目。forward-port有強(qiáng)制和可選屬性:

    強(qiáng)制屬性: port=”portid[-portid]”,protocol=”tcp|udp”

    可選屬性: 用于本地轉(zhuǎn)發(fā),僅添加到端口。

              to-port=”portid[-portid]” 要轉(zhuǎn)發(fā)到的目標(biāo)端口或端口范圍。

              to-addr=”address” 目標(biāo)IPv4地址

  • source-port  可選的空元素標(biāo)記,可多次使用具有多個(gè)源端口條目。源端口所有屬性都是必需的:

    port=”portid[-portid]”

    protocol=”tcp|udp”



常用規(guī)則示例:
  • 規(guī)則示例

<?xml version="1.0" encoding="utf-8"?>
<zone>
      <short>Home</short>
      <description>For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
      <service name="ssh"/>
      <service name="mdns"/>
      <service name="samba-client"/>
      <service name="dhcpv6-client"/>
</zone>
  • 服務(wù)示例

<?xml version="1.0" encoding="utf-8"?>
<service>
         <short>FTP</short>
         <description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You need the vsftpd package installed for this option to be useful.</description>
         <port protocol="tcp" port="21"/>
         <module name="nf_conntrack_ftp"/>
</service>
  • IPSet示例

 <?xml version="1.0" encoding="utf-8"?>
<ipset type="hash:mac">
           <short>mac-list</short>
           <entry>00:11:22:33:44:55</entry>
</ipset>
  • Helper(助手示例)用于安全地使用鏈接跟蹤幫助程序

 <?xml version="1.0" encoding="utf-8"?>
<helper module="nf_conntrack_ftp">
              <port protocol="tcp" port="21"/>
</helper>
  •  ICMP類型,限制ICMP在Internet協(xié)議(IP)中的信息交換,回應(yīng)或者不回應(yīng)等等

<?xml version="1.0" encoding="utf-8"?>
<icmptype>
          <short>Echo Request (ping)</short>
          <description>This message is used to test if a host is reachable mostly with the ping utility.</description>
</icmptype>
  • 一般來說,不用進(jìn)行配置中的規(guī)則修改。如若需要修改,可使用常用命令進(jìn)行規(guī)則指定。

更多規(guī)則:
詳見https://firewalld.org/documentation/man-pages/firewalld.richlanguage
四   常用命令

1、基礎(chǔ)命令

firewall-cmd --state           #查看firewalld的狀態(tài)
firewall-cmd --get-active-zones       #查看當(dāng)前活動(dòng)的區(qū)域,并附帶一個(gè)目前分配給他們的接口列表  
firewall-cmd --get-defailt-zone       #查看默認(rèn)區(qū)域
firewall-cmd --set-default-zone=dmz    #設(shè)置默認(rèn)區(qū)域
firewall-cmd --get-zones           #查看所有可用域區(qū)
firewall-cmd --permanent --zone=internal --add-source=172.25.254.60/24          #設(shè)置源地址的所屬zone (--permanent參數(shù)表示永久生效設(shè)置,如果沒有指定--zone參數(shù),則表示加入到默認(rèn)區(qū)域)
firewall-cmd --permanent --zone=internal --remove-source=172.25.254.60/24       #刪除網(wǎng)絡(luò)地址
firewall-cmd --reload          #重載配置,并不會(huì)中斷服務(wù)
firewall-cmd --complete-reload      #完全重載,會(huì)中斷服務(wù)

2、添加服務(wù)

firewall-cmd --zone=public --add-service=http                  #在運(yùn)行時(shí)環(huán)境的公共區(qū)域打開http服務(wù)
firewall-cmd --permanent --zone=public --add-service=http      #永久設(shè)定,在公共區(qū)域打開http服務(wù)

3、使用 –direct選項(xiàng),在運(yùn)行時(shí)里添加或移除鏈(iptables四表五鏈)

firewall-cmd --direct --add-rule ipv4filter IN_public_allow 0 -p tcp --dport 80 -j ACCEP      #添加規(guī)則,指定運(yùn)行所有鏈接進(jìn)入80端口
firewall-cmd --direct --remove-ruleipv4 filter IN_public_allow 0 -p tcp --dport 80 -j ACCEPT   #刪除規(guī)則
firewall-cmd --direct--get-all-rules              #列出規(guī)則

4、使用現(xiàn)有文件創(chuàng)建新服務(wù)(在不熟悉配置命令及其規(guī)則的情況下,不建議使用這種方式)

 firewall-cmd --permanent --new-service-from-file=myservice.xml --name=mynewservice
五  附加知識點(diǎn)(iptables四表五鏈,netfilter)

1、防火墻于iptables的內(nèi)在關(guān)聯(lián)

簡而言之,iptables算是防火墻的基石,火墻在做數(shù)據(jù)包過濾決定時(shí),有一套遵循和組成的規(guī)則,這些規(guī)則存儲在專門的數(shù)據(jù)包過濾表中,這些表集成在Linux內(nèi)核中。在數(shù)據(jù)包過濾表中,規(guī)則被分組放在我們所謂的鏈(chain)中。

而netfilter/iptables進(jìn)行IP過濾規(guī)則的添加,編輯和移除規(guī)則。

netfilter組件也稱為內(nèi)核空間,是內(nèi)核的一部分,由一些信息包過濾表組成,這些表包含內(nèi)核用來控制信息包過濾處理的規(guī)則集。

Iptables組件是一種工具,也成為用戶空間,它使插入、修改和除去信息包過濾表中的規(guī)則變得容易。

Firewalld的概念和常用命令是什么


Linux內(nèi)核過濾結(jié)構(gòu)

2、iptables四表五鏈

  • Filter表 —— 三個(gè)鏈:INPUT、FORWARD、OUTPUT

    作用:過濾數(shù)據(jù)包  內(nèi)核模塊:iptables_filter.

  • Nat表 —— 三個(gè)鏈:PREROUTING、POSTROUTING、OUTPUT

    作用:用于網(wǎng)絡(luò)地址轉(zhuǎn)換(IP、端口) 內(nèi)核模塊:iptable_nat

  • Mangle表——五個(gè)鏈:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

    作用:修改數(shù)據(jù)包的服務(wù)類型、TTL、并且可以配置路由實(shí)現(xiàn)QOS內(nèi)核模塊:iptable_mangle(別看這個(gè)表這么麻煩,咱們設(shè)置策略時(shí)幾乎都不會(huì)用到它)

  • Raw表 —— 兩個(gè)鏈:OUTPUT、PREROUTING

    作用:決定數(shù)據(jù)包是否被狀態(tài)跟蹤機(jī)制處理 內(nèi)核模塊:iptable_raw

Firewalld的概念和常用命令是什么

四表五鏈對應(yīng)關(guān)系

3、鏈表處理邏輯

  • INPUT —— 進(jìn)來的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略

  • OUTPUT —— 外出的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略

  • FORWARD —— 轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)應(yīng)用此規(guī)則鏈中的策略

  • PREROUTING —— 對數(shù)據(jù)包作路由選擇前應(yīng)用此鏈中的規(guī)則

    (記住!所有的數(shù)據(jù)包進(jìn)來的時(shí)侯都先由這個(gè)鏈處理)

  • POSTROUTING —— 對數(shù)據(jù)包作路由選擇后應(yīng)用此鏈中的規(guī)則

    (所有的數(shù)據(jù)包出來的時(shí)侯都先由這個(gè)鏈處理)

Firewalld的概念和常用命令是什么

鏈表處理邏輯

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI