乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      CentOS 7/8 預(yù)裝的新型防火墻firewalld配置詳解,你會用嗎

       copy_left 2019-07-15

      1. 前言

      本文將會詳細(xì)介紹CentOS 7 firewalld的來由、功能、常用命令、常用的案例及使用方法。希望能幫助讀者全面了解firewalld,并能正確配置和使用它。

      CentOS 7/8 預(yù)裝的新型防火墻firewalld配置詳解,你會用嗎

      centos7 firewalld

      2. firewalld與iptables的關(guān)系

      在RHEL7里有幾種防火墻共存:firewalld、iptables、ebtables,默認(rèn)是使用firewalld來管理netfilter子系統(tǒng),不過底層調(diào)用的命令仍然是iptables等。firewalld跟iptables比起來,不好的地方是每個(gè)服務(wù)都需要去設(shè)置才能放行,因?yàn)槟J(rèn)是拒絕。而iptables里默認(rèn)是每個(gè)服務(wù)是允許,需要拒絕的才去限制。

      CentOS 7/8 預(yù)裝的新型防火墻firewalld配置詳解,你會用嗎

      firewalld與iptables的關(guān)系

      firewalld跟iptables比起來至少有兩大好處:

      1、firewalld可以動態(tài)修改單條規(guī)則,而不需要像iptables那樣,在修改了規(guī)則后必須得全部刷新才可以生效;

      2、firewalld在使用上要比iptables人性化很多,即使不明白“五張表五條鏈”而且對TCP/IP協(xié)議也不理解也可以實(shí)現(xiàn)大部分功能。

      firewalld自身并不具備防火墻的功能,而是和iptables一樣需要通過內(nèi)核的netfilter來實(shí)現(xiàn),也就是說firewalld和 iptables一樣,他們的作用都是用于維護(hù)規(guī)則,而真正使用規(guī)則干活的是內(nèi)核的netfilter,只不過firewalld和iptables的結(jié)構(gòu)以及使用方法不一樣罷了。

      一個(gè)重要的概念:區(qū)域管理

      firewalld將網(wǎng)卡對應(yīng)到不同的區(qū)域(zone),zone 默認(rèn)共有9個(gè),block dmz drop external home internal public trusted work.

      不同的區(qū)域之間的差異是其對待數(shù)據(jù)包的默認(rèn)行為不同,根據(jù)區(qū)域名字我們可以很直觀的知道該區(qū)域的特征,在CentOS7系統(tǒng)中,默認(rèn)區(qū)域被設(shè)置為public.

      在最新版本的fedora(fedora21)當(dāng)中隨著 server 版和 workstation 版的分化則添加了兩個(gè)不同的自定義 zone FedoraServer 和 FedoraWorkstation 分別對應(yīng)兩個(gè)版本。

      通過將網(wǎng)絡(luò)劃分成不同的區(qū)域,制定出不同區(qū)域之間的訪問控制策略來控制不同程序區(qū)域間傳送的數(shù)據(jù)流。例如,互聯(lián)網(wǎng)是不可信任的區(qū)域,而內(nèi)部網(wǎng)絡(luò)是高度信任的區(qū)域。網(wǎng)絡(luò)安全模型可以在安裝,初次啟動和首次建立網(wǎng)絡(luò)連接時(shí)選擇初始化。該模型描述了主機(jī)所連接的整個(gè)網(wǎng)絡(luò)環(huán)境的可信級別,并定義了新連接的處理方式。有如下幾種不同的初始化區(qū)域:

      • 阻塞區(qū)域(block):任何傳入的網(wǎng)絡(luò)數(shù)據(jù)包都將被阻止。
      • 工作區(qū)域(work):相信網(wǎng)絡(luò)上的其他計(jì)算機(jī),不會損害你的計(jì)算機(jī)。
      • 家庭區(qū)域(home):相信網(wǎng)絡(luò)上的其他計(jì)算機(jī),不會損害你的計(jì)算機(jī)。
      • 公共區(qū)域(public):不相信網(wǎng)絡(luò)上的任何計(jì)算機(jī),只有選擇接受傳入的網(wǎng)絡(luò)連接。
      • 隔離區(qū)域(DMZ):隔離區(qū)域也稱為非軍事區(qū)域,內(nèi)外網(wǎng)絡(luò)之間增加的一層網(wǎng)絡(luò),起到緩沖作用。對于隔離區(qū)域,只有選擇接受傳入的網(wǎng)絡(luò)連接。
      • 信任區(qū)域(trusted):所有的網(wǎng)絡(luò)連接都可以接受。
      • 丟棄區(qū)域(drop):任何傳入的網(wǎng)絡(luò)連接都被拒絕。
      • 內(nèi)部區(qū)域(internal):信任網(wǎng)絡(luò)上的其他計(jì)算機(jī),不會損害你的計(jì)算機(jī)。只有選擇接受傳入的網(wǎng)絡(luò)連接。
      • 外部區(qū)域(external):不相信網(wǎng)絡(luò)上的其他計(jì)算機(jī),不會損害你的計(jì)算機(jī)。只有選擇接受傳入的網(wǎng)絡(luò)連接。
      • 注:FirewallD的默認(rèn)區(qū)域是public。

      firewalld默認(rèn)提供了九個(gè)zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,他們都保存在“/usr/lib/firewalld/zones/”目錄下。

      默認(rèn)情況下,在/etc/firewalld/zones下面只有一個(gè)public.xml。如果給另外一個(gè)zone做一些改動,并永久保存,那么會自動生成對應(yīng)的配置文件,比如,給work zone增加一個(gè)端口:

      firewall-cmd --permanent --zone=work --add-port=1000/tcp

      此時(shí)就會生成一個(gè)work.xml的配置文件

      查看XX區(qū)域的永久配置文件:

      [root@zcwyou ~]# cat /etc/firewalld/zones/XX.xml

      注意:防火墻配置文件也可以手動修改,修改后記得reload防火墻

      配置方法

      firewalld的配置方法主要有三種:firewall-config、firewall-cmd和直接編輯xml文件,其中 firewall-config是圖形化工具,firewall-cmd是命令行工具,而對于linux來說大家應(yīng)該更習(xí)慣使用命令行方式的操作,所以 firewall-config我們就不給大家介紹了。

      firewalld默認(rèn)配置文件有兩個(gè):

      /usr/lib/firewalld/ (系統(tǒng)配置,盡量不要修改)

      /etc/firewalld/ (用戶配置地址)

      3. 什么是服務(wù)?

      在 /usr/lib/firewalld/services/ 目錄中,還保存了另外一類配置文件,每個(gè)文件對應(yīng)一項(xiàng)具體的網(wǎng)絡(luò)服務(wù),如 ssh 服務(wù)等.

      與之對應(yīng)的配置文件中記錄了各項(xiàng)服務(wù)所使用的 tcp/udp 端口,在最新版本的 firewalld 中默認(rèn)已經(jīng)定義了 70+ 種服務(wù)供我們使用.

      當(dāng)默認(rèn)提供的服務(wù)不夠用或者需要自定義某項(xiàng)服務(wù)的端口時(shí),我們需要將 service 配置文件放置在 /etc/firewalld/services/ 目錄中.

      service 配置的好處顯而易見:

      第一,通過服務(wù)名字來管理規(guī)則更加人性化,

      第二,通過服務(wù)來組織端口分組的模式更加高效,如果一個(gè)服務(wù)使用了若干個(gè)網(wǎng)絡(luò)端口,則服務(wù)的配置文件就相當(dāng)于提供了到這些端口的規(guī)則管理的批量操作快捷方式。

      假如你服務(wù)器的ftp不使用默認(rèn)端口,默認(rèn)ftp的端口21改為1121,但想通過服務(wù)的方式操作防火墻,代碼如下:

      復(fù)制模版到/etc,以便修改和調(diào)用

      [root@zcwyou ~]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/

      修改模版配置

      [root@zcwyou ~]# vim /etc/firewalld/services/ftp.xml

      把21改為1121

      [root@zcwyou ~]# vim /etc/firewalld/zones/public.xml

      public為默認(rèn)zone,所以要編輯這個(gè),增加一行,以下內(nèi)容

      <service name='ftp'/>

      重新加載防火墻配置

      [root@zcwyou ~]# firewall-cmd --reload

      4. 安裝、啟用、關(guān)閉firewalld

      4.1 安裝firewalld

      [root@zcwyou ~]# yum install firewalld firewall-config

      4.2 啟動服務(wù)

      [root@zcwyou ~]# systemctl start firewalld

      4.3 開機(jī)自動啟動服務(wù)

      [root@zcwyou ~]# systemctl enable firewalld

      4.4 查看狀態(tài)

      [root@zcwyou ~]# systemctl status firewalld[root@zcwyou ~]# firewall-cmd --state

      4.5 關(guān)閉服務(wù)

      [root@zcwyou ~]# systemctl stop firewalld

      4.6 取消開機(jī)啟動

      [root@zcwyou ~]# systemctl disable firewalld

      4.7 棄用FirewallD防火墻,改用iptables

      你也可以關(guān)閉目前還不熟悉的FirewallD防火墻,而使用iptables,但不建議:

      [root@zcwyou ~]# yum install iptables-services[root@zcwyou ~]# systemctl start iptables[root@zcwyou ~]# systemctl enable iptables

      4.8 查看版本

      [root@zcwyou ~]# firewall-cmd --version

      4.9 查看幫助

      [root@zcwyou ~]# firewall-cmd --help

      4.10 顯示狀態(tài)

      [root@zcwyou ~]# firewall-cmd --state

      4.11 查看活動區(qū)域信息

      [root@zcwyou ~]# firewall-cmd --get-active-zones

      4.12 查看XX接口所屬區(qū)域

      [root@zcwyou ~]# firewall-cmd --get-zone-of-interface=XX

      4.13 拒絕所有包

      [root@zcwyou ~]# firewall-cmd --panic-on

      4.14 取消拒絕狀態(tài)

      [root@zcwyou ~]# firewall-cmd --panic-off

      4.15 查看是否拒絕

      [root@zcwyou ~]# firewall-cmd --query-panic

      4.16 查看firewalld是否開啟

      [root@zcwyou ~]# systemctl is-enabled firewalld

      4.17 重啟加載防火墻

      以 root 身份輸入以下命令,重新加載防火墻,并不中斷用戶連接,即不丟失狀態(tài)信息:

      [root@zcwyou ~]# firewall-cmd --reload

      4.18 完全重啟防火墻

      以 root 身份輸入以下命令,重新加載防火墻并中斷用戶連接,即丟棄狀態(tài)信息:

      [root@zcwyou ~]# firewall-cmd --complete-reload

      注意:通常在防火墻出現(xiàn)嚴(yán)重問題時(shí),這個(gè)命令才會被使用。比如,防火墻規(guī)則是正確的,但卻出現(xiàn)狀態(tài)信息問題和無法建立連接。

      firewall-cmd --reload與firewall-cmd --complete-reload兩者的區(qū)別就是第一個(gè)無需斷開連接,就是firewalld特性之一動態(tài)添加規(guī)則,第二個(gè)需要斷開連接,類似重啟服務(wù)

      4.19 顯示默認(rèn)區(qū)域

      [root@zcwyou ~]# firewall-cmd --get-default-zone

      4.20 添加接口到區(qū)域

      將接口添加到XX區(qū)域,如果不指定區(qū)域,則添加到默認(rèn)區(qū)域

      [root@zcwyou ~]# firewall-cmd --zone=XX --add-interface=eth0

      永久生效再加上--permanent 然后reload防火墻

      4.21 設(shè)置默認(rèn)區(qū)域,立即生效無需重啟

      [root@zcwyou ~]# firewall-cmd --set-default-zone=XX

      4.22 查看XX區(qū)域打開的端口

      [root@zcwyou ~]# firewall-cmd --zone=XX --list-ports

      4.23 查看XX區(qū)域加載的服務(wù)

      [root@zcwyou ~]# firewall-cmd --zone=XX --list-services

      4.24 臨時(shí)加一個(gè)端口到XX區(qū)域

      [root@zcwyou ~]# firewall-cmd --zone=XX --add-port=8080/tcp

      若要永久生效方法加參數(shù)--permanent

      4.25 打開一個(gè)服務(wù),類似于將端口可視化,服務(wù)需要在配置文件中添加,/etc/firewalld 目錄下有services文件夾,查看其它的xml文件以及參考前面說方法

      [root@zcwyou ~]# firewall-cmd --zone=work --add-service=smtp

      4.26 移除服務(wù)

      [root@zcwyou ~]# firewall-cmd --zone=work --remove-service=smtp

      4.27 顯示支持的區(qū)域列表

      [root@zcwyou ~]# firewall-cmd --get-zones

      4.28 列出全部區(qū)域啟用的特性

      [root@zcwyou ~]# firewall-cmd --list-all-zones

      4.29 顯示XX區(qū)域詳情

      [root@zcwyou ~]# firewall-cmd --zone=XX --list-all

      4.30 查看當(dāng)前活躍區(qū)域

      [root@zcwyou ~]# firewall-cmd --get-active-zones

      4.31 設(shè)置XX接口所屬區(qū)域

      [root@zcwyou ~]# firewall-cmd --get-zone-of-interface=XX

      4.32 查詢YY區(qū)域中是否包含XX接口

      [root@zcwyou ~]# firewall-cmd --zone=YY --query-interface=XX

      4.33 刪除指定XX網(wǎng)卡所在的zone(以YY為例)

      [root@zcwyou ~]# firewall-cmd --zone=YY --remove-interface=XX

      4.34 臨時(shí)修改XX接口為YY區(qū)域

      [root@zcwyou ~]# firewall-cmd --zone=YY --change-interface=XX

      永久修改加參數(shù)--permanent

      4.35 控制端口 / 服務(wù)

      可以通過兩種方式控制端口的開放,一種是指定端口號另一種是指定服務(wù)名。雖然開放 http 服務(wù)就是開放了 80 端口,但是還是不能通過端口號來關(guān)閉,也就是說通過指定服務(wù)名開放的就要通過指定服務(wù)名關(guān)閉;通過指定端口號開放的就要通過指定端口號關(guān)閉。還有一個(gè)要注意的就是指定端口的時(shí)候一定要指定是什么協(xié)議,tcp 還是 udp。

      富規(guī)則

      [root@zcwyou ~]# firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source address='192.168.142.166' port protocol='tcp' port='5432' accept'[root@zcwyou ~]# systemctl restart firewalld.service

      5. firewalld服務(wù)管理

      CentOS 7/8 預(yù)裝的新型防火墻firewalld配置詳解,你會用嗎

      firewalld服務(wù)管理

      5.1 顯示支持的服務(wù)

      [root@zcwyou ~]# firewall-cmd --get-services

      5.2 臨時(shí)允許Samba服務(wù)通過600秒

      [root@zcwyou ~]# firewall-cmd --add-service=samba --timeout=600

      5.3 顯示默認(rèn)區(qū)域開啟的服務(wù),如果要查某區(qū)域,加參數(shù)--zone=XX

      [root@zcwyou ~]# firewall-cmd --list-services

      5.4 添加HTTP服務(wù)到內(nèi)部區(qū)域(internal),并保存到配置文件

      [root@zcwyou ~]# firewall-cmd --permanent --zone=internal --add-service=http

      在不改變狀態(tài)的條件下重新加載防火墻

      [root@zcwyou ~]# firewall-cmd --reload

      5.5 開放mysql服務(wù)

      [root@zcwyou ~]# firewall-cmd --add-service=mysql

      5.6 阻止mysql服務(wù)

      [root@zcwyou ~]# firewall-cmd --remove-service=mysql

      5.7 端口管理

      臨時(shí)打開443/TCP端口,立即生效

      [root@zcwyou ~]# firewall-cmd --add-port=443/tcp

      5.8 永久打開3690/TCP端口

      [root@zcwyou ~]# firewall-cmd --permanent --add-port=3690/tcp

      5.9 永久打開端口需要reload一下,如果用了reload臨時(shí)打開的端口就失效了

      [root@zcwyou ~]# firewall-cmd --reload

      5.10 查看防火墻所有區(qū)域的設(shè)置,包括添加的端口和服務(wù)

      [root@zcwyou ~]# firewall-cmd --list-all

      5.11 開放通過tcp訪問3306

      [root@zcwyou ~]# firewall-cmd --add-port=3306/tcp

      5.12 阻止tcp80

      [root@zcwyou ~]# firewall-cmd --remove-port=80/tcp

      5.13 開放通過udp訪問233

      [root@zcwyou ~]# firewall-cmd --add-port=233/udp

      5.14 查看開放的端口

      [root@zcwyou ~]# firewall-cmd --list-ports

      假設(shè)自定義的ssh端口號為12222,使用下面的命令來添加新端口的防火墻規(guī)則

      [root@zcwyou ~]# firewall-cmd --add-port=12222/tcp --permanent

      使用--permanent參數(shù)可以將更改保存到配置文件。

      5.15 重啟防火墻

      永久打開端口需要reload一下,如果用了reload臨時(shí)打開的端口就失效了

      [root@zcwyou ~]# firewall-cmd --reload

      5.16 添加端口范圍

      還可以添加一個(gè)端口范圍

      [root@zcwyou ~]# firewall-cmd --add-port=2000-4000/tcp

      5.17 針對指定zone XX添加端口

      [root@zcwyou ~]# firewall-cmd --permanent --zone=XX --add-port=443/tcp

      6. 管理區(qū)域中的對象

      CentOS 7/8 預(yù)裝的新型防火墻firewalld配置詳解,你會用嗎

      管理區(qū)域中的對象

      6.1 獲取永久支持的區(qū)域

      [root@zcwyou ~]# firewall-cmd --permanent --get-zones

      6.2 啟用區(qū)域中的服務(wù)

      firewall-cmd --permanent [--zone=] --add-service=

      此舉將永久啟用區(qū)域中的服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。

      臨時(shí)開放mysql服務(wù),立即生效

      [root@zcwyou ~]# firewall-cmd --add-service=mysql

      public區(qū)域,添加httpd服務(wù),并保存,但不會立即生效,需要reload防火墻

      [root@zcwyou ~]# firewall-cmd --permanent --zone=public --add-service=httpd

      public區(qū)域,禁用httpd服務(wù),并保存,但不會立即生效,需要reload防火墻

      [root@zcwyou ~]# firewall-cmd --permanent --zone=public --remove-service=httpd

      7. 端口轉(zhuǎn)發(fā)

      端口轉(zhuǎn)發(fā)可以將指定地址訪問指定的端口時(shí),將流量轉(zhuǎn)發(fā)至指定地址的指定端口。轉(zhuǎn)發(fā)的目的如果不指定ip的話就默認(rèn)為本機(jī),如果指定了ip卻沒指定端口,則默認(rèn)使用來源端口。

      典型的做法:

      1. NAT內(nèi)網(wǎng)端口映射
      2. SSH隧道轉(zhuǎn)發(fā)數(shù)據(jù)

      如果配置好端口轉(zhuǎn)發(fā)之后不能用,可以檢查下面兩個(gè)問題:

      比如我將 80 端口轉(zhuǎn)發(fā)至 8080 端口,首先檢查本地的 80 端口和目標(biāo)的 8080 端口是否開放監(jiān)聽了

      其次檢查是否允許偽裝 IP,沒允許的話要開啟偽裝 IP

      將80端口的流量轉(zhuǎn)發(fā)至8080

      [root@zcwyou ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080

      將80端口的流量轉(zhuǎn)發(fā)至192.168.0.1

      [root@zcwyou ~]# firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1

      將80端口的流量轉(zhuǎn)發(fā)至192.168.0.1的8080端口

      [root@zcwyou ~]# firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080

      當(dāng)我們想把某個(gè)端口隱藏起來的時(shí)候,就可以在防火墻上阻止那個(gè)端口訪問,然后再開一個(gè)不規(guī)則的端口,之后配置防火墻的端口轉(zhuǎn)發(fā),將流量轉(zhuǎn)發(fā)過去。

      端口轉(zhuǎn)發(fā)還可以做流量分發(fā),一個(gè)防火墻拖著好多臺運(yùn)行著不同服務(wù)的機(jī)器,然后用防火墻將不同端口的流量轉(zhuǎn)發(fā)至不同機(jī)器。

      禁止區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射

      firewall-cmd [--zone=] --remove-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=

      | :toport=[-]:toaddr=

      }查詢區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射

      firewall-cmd [--zone=] --query-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=

      | :toport=[-]:toaddr=

      }在區(qū)域中永久啟用端口轉(zhuǎn)發(fā)或映射

      firewall-cmd --permanent [--zone=] --add-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=

      | :toport=[-]:toaddr=

      }端口可以映射到另一臺主機(jī)的同一端口,也可以是同一主機(jī)或另一主機(jī)的不同端口。端口號可以是一個(gè)單獨(dú)的端口 或者是端口范圍 - 。協(xié)議可以為 tcp 或udp 。目標(biāo)端口可以是端口號 或者是端口范圍 -。目標(biāo)地址可以是 IPv4 地址。受內(nèi)核限制,端口轉(zhuǎn)發(fā)功能僅可用于IPv4。

      永久禁止區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射

      firewall-cmd --permanent [--zone=] --remove-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=

      | :toport=[-]:toaddr=

      }查詢區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射狀態(tài)

      firewall-cmd --permanent [--zone=] --query-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=

      | :toport=[-]:toaddr=

      }如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

      例: 將 home 區(qū)域的 ssh 服務(wù)轉(zhuǎn)發(fā)到 127.0.0.2

      [root@zcwyou ~]# firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

      8. 偽裝 IP

      檢查是否允許偽裝IP

      [root@zcwyou ~]# firewall-cmd --query-masquerade

      允許防火墻偽裝IP

      [root@zcwyou ~]# firewall-cmd --add-masquerade

      禁止防火墻偽裝IP

      [root@zcwyou ~]# firewall-cmd --remove-masquerade

      永久啟用區(qū)域中的偽裝

      firewall-cmd --permanent [--zone=] --add-masquerade

      此舉啟用區(qū)域的偽裝功能。私有網(wǎng)絡(luò)的地址將被隱藏并映射到一個(gè)公有IP。這是地址轉(zhuǎn)換的一種形式,常用于路由。由于內(nèi)核的限制,偽裝功能僅可用于IPv4。

      臨時(shí)禁用區(qū)域中的 IP 偽裝

      firewall-cmd [--zone=] --remove-masquerade

      永久禁用區(qū)域中的偽裝

      firewall-cmd --permanent [--zone=] --remove-masquerade

      查詢區(qū)域中的偽裝的永久狀態(tài)

      firewall-cmd --permanent [--zone=] --query-masquerade

      如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

      查詢區(qū)域的偽裝狀態(tài)

      firewall-cmd [--zone=] --query-masquerade

      如果啟用,此命令將有返回值。沒有輸出信息。

      9. ICMP控制

      獲取永久選項(xiàng)所支持的ICMP類型列表

      [root@zcwyou ~]# firewall-cmd --permanent --get-icmptypes

      獲取所有支持的ICMP類型

      [root@zcwyou ~]# firewall-cmd --get-icmptypes

      永久啟用區(qū)域中的ICMP阻塞,需要reload防火墻,

      firewall-cmd --permanent [--zone=] --add-icmp-block=

      此舉將啟用選中的 Internet 控制報(bào)文協(xié)議 (ICMP) 報(bào)文進(jìn)行阻塞。 ICMP 報(bào)文可以是請求信息或者創(chuàng)建的應(yīng)答報(bào)文或錯(cuò)誤應(yīng)答報(bào)文。

      永久禁用區(qū)域中的ICMP阻塞,需要reload防火墻,

      firewall-cmd --permanent [--zone=] --remove-icmp-block=

      查詢區(qū)域中的ICMP永久狀態(tài)

      firewall-cmd --permanent [--zone=] --query-icmp-block=

      如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。

      例: 阻塞公共區(qū)域中的響應(yīng)應(yīng)答報(bào)文:

      [root@zcwyou ~]# firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply

      立即啟用區(qū)域的 ICMP 阻塞功能

      firewall-cmd [--zone=] --add-icmp-block=

      此舉將啟用選中的 Internet 控制報(bào)文協(xié)議 (ICMP) 報(bào)文進(jìn)行阻塞。 ICMP 報(bào)文可以是請求信息或者創(chuàng)建的應(yīng)答報(bào)文,以及錯(cuò)誤應(yīng)答。

      立即禁止區(qū)域的 ICMP 阻塞功能

      firewall-cmd [--zone=] --remove-icmp-block=

      查詢區(qū)域的 ICMP 阻塞功能

      firewall-cmd [--zone=] --query-icmp-block=

      如果啟用,此命令將有返回值。沒有輸出信息。

      例: 阻塞區(qū)域的響應(yīng)應(yīng)答報(bào)文:

      [root@zcwyou ~]# firewall-cmd --zone=public --add-icmp-block=echo-reply

      10. 通過配置文件來使用Firewalld的方法

      系統(tǒng)本身已經(jīng)內(nèi)置了一些常用服務(wù)的防火墻規(guī)則,存放在/usr/lib/firewalld/services/

      注意!!!!!請勿編輯/usr/lib/firewalld/services/ ,只有 /etc/firewalld/services 的文件可以被編輯。

      以下例子均以系統(tǒng)自帶的public zone 為例子.

      當(dāng)然firewalld也可以使用圖形界面管理:

      CentOS 7/8 預(yù)裝的新型防火墻firewalld配置詳解,你會用嗎

      firewalld使用圖形界面管理

      10.1 案例1: 如果想開放80端口供外網(wǎng)訪問http服務(wù),操作如下

      Step1:將 http.xml復(fù)制到/etc/firewalld/services/下面,以服務(wù)形式管理防火墻,

      這個(gè)cp命令其實(shí)是可以省略的,系統(tǒng)會優(yōu)先去讀取 /etc/firewalld 里面的文件,讀取完畢后,會去/usr/lib/firewalld/services/ 再次讀取,為了方便修改和管理,強(qiáng)烈建議復(fù)制到/etc/firewalld

      [root@zcwyou ~]# cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/

      修改/etc/firewalld/zones/public.xml,加入http服務(wù)

      vi /etc/firewalld/zones/public.xml

      Public For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. # 加入這行,要匹配 /etc/firewalld/services/文件夾下的文件名

      以 root 身份輸入以下命令,重新加載防火墻,并不中斷用戶連接,即不丟失狀態(tài)信息:

      [root@zcwyou ~]# firewall-cmd --reload

      或者以 root 身份輸入以下信息,重新加載防火墻并中斷用戶連接,即丟棄狀態(tài)信息:

      [root@zcwyou ~]# firewall-cmd --complete-reload

      注意:通常在防火墻出現(xiàn)嚴(yán)重問題時(shí),這個(gè)命令才會被使用。比如,防火墻規(guī)則是正確的,但卻出現(xiàn)狀態(tài)信息問題和無法建立連接。

      10.2 案例2: SSH為非默認(rèn)端口,要求能正常訪問

      [root@zcwyou ~]# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/[root@zcwyou ~]# vi /etc/firewalld/services/ssh.xml

      把默認(rèn)22修改為目前的SSH端口號

      [root@zcwyou ~]# firewall-cmd --reload

      10.3 案例3:修改區(qū)域配置文件只允許特定主機(jī)192.168.23.1連接SSH

      [root@zcwyou ~]# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/[root@zcwyou ~]# vi /etc/firewalld/zones/public.xml

      確保配置文件有以下內(nèi)容

      配置結(jié)束

      重啟防火墻后生效

      [root@zcwyou ~]# firewall-cmd --reload

      11. firewalld直接模式

      對于最高級的使用,或?qū)τ?iptables 專家,F(xiàn)irewallD 提供了一個(gè)Direct接口,允許你給它傳遞原始 iptables 命令。 直接接口規(guī)則不是持久的,除非使用 --permanent。

      直接選項(xiàng)主要用于使服務(wù)和應(yīng)用程序能夠增加規(guī)則。 規(guī)則不會被保存,在重新加載或者重啟之后必須再次提交。傳遞的參數(shù) 與 iptables, ip6tables 以及 ebtables 一致。

      選項(xiàng) –direct 需要是直接選項(xiàng)的第一個(gè)參數(shù)。

      將命令傳遞給防火墻。參數(shù) 可以是 iptables, ip6tables 以及 ebtables 命令行參數(shù)。

      firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb }

      為表

      增加一個(gè)新鏈 。

      firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb }從表

      中刪除鏈 。

      firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb }查詢 鏈?zhǔn)欠翊嬖谂c表

      . 如果是,返回0,否則返回1.

      firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb }

      如果啟用,此命令將有返回值。此命令沒有輸出信息。獲取用空格分隔的表

      中鏈的列表。

      firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb }為表

      增加一條參數(shù)為 的鏈 ,優(yōu)先級設(shè)定為 。

      firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb }從表

      中刪除帶參數(shù) 的鏈 。

      firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb }查詢 帶參數(shù) 的鏈 是否存在表

      中. 如果是,返回0,否則返回1.

      firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb }

      如果啟用,此命令將有返回值。此命令沒有輸出信息。獲取表

      中所有增加到鏈 的規(guī)則,并用換行分隔。

      firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb }以iptables的命令允許端口號,重啟生效

      [root@zcwyou ~]# firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT[root@zcwyou ~]# firewall-cmd --reload

      添加富規(guī)則:

      [root@zcwyou ~]# firewall-cmd --add-rich-rule='rule family='ipv4' source address='192.168.122.0' accept'

      允許192.168.122.0/24主機(jī)所有連接。

      [root@zcwyou ~]# firewall-cmd --add-rich-rule='rule service name=ftp limit value=2/m accept'

      每分鐘允許2個(gè)新連接訪問ftp服務(wù)。

      [root@zcwyou ~]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value='1/m' audit accept'

      同意新的 IP v4 和 IP v6 連接 FT P ,并使用審核每分鐘登錄一次。

      [root@zcwyou ~]# firewall-cmd --add-rich-rule='rule family='ipv4' source address='192.168.122.0/24'service name=ssh log prefix='ssh' level='notice' limit value='3/m' accept'

      允許來自192.168.122.0/24地址的新 IPv4連接連接TFTP服務(wù),并且每分鐘記錄一次。

      [root@zcwyou ~]# firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'

      丟棄所有icmp包

      [root@zcwyou ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.122.0/24 reject' --timeout=10

      當(dāng)使用source和destination指定地址時(shí),必須有family參數(shù)指定ipv4或ipv6。如果指定超時(shí),

      規(guī)則將在指定的秒數(shù)內(nèi)被激活,并在之后被自動移除。

      [root@zcwyou ~]# firewall-cmd --add-rich-rule='rule family=ipv6 source address='2001:db8::/64' servicename='dns' audit limit value='1/h' reject' --timeout=300

      拒絕所有來自2001:db8::/64子網(wǎng)的主機(jī)訪問dns服務(wù),并且每小時(shí)只審核記錄1次日志。

      [root@zcwyou ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 sourceaddress=192.168.122.0/24 service name=ftp accept'

      允許192.168.122.0/24網(wǎng)段中的主機(jī)訪問ftp服務(wù)

      [root@zcwyou ~]# firewall-cmd --add-rich-rule='rule family='ipv6' source address='1:2:3:4:6::' forward-portto-addr='1::2:3:4:7' to-port='4012' protocol='tcp' port='4011''

      轉(zhuǎn)發(fā)來自ipv6地址1:2:3:4:6::TCP端口4011,到1:2:3:4:7的TCP端口4012

      允許來自主機(jī) 192.168.0.14 的所有 IPv4 流量。

      [root@zcwyou ~]# firewall-cmd --zone=public --add-rich-rule 'rule family='ipv4' source address=192.168.0.14 accept'

      拒絕來自主機(jī) 192.168.1.10 到 22 端口的 IPv4 的 TCP 流量。

      [root@zcwyou ~]# firewall-cmd --zone=public --add-rich-rule 'rule family='ipv4' source address='192.168.1.10' port port=22 protocol=tcp reject'

      查看富規(guī)則

      [root@zcwyou ~]# firewall-cmd --list-rich-rules

      12. 總結(jié)

      CentOS 7是第一代集成firewalld的CentOS系統(tǒng),firewalld是一個(gè)功能豐富、先進(jìn)的防火墻配置工具。熟悉掌握使用它將能大大提升系統(tǒng)和服務(wù)器的安全。

      本文已同步至博客站,尊重原創(chuàng),轉(zhuǎn)載時(shí)請?jiān)谡闹懈綆б韵骆溄樱?/p>

      https://www./rmxx/644.html

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多