主頁(yè) > 知識(shí)庫(kù) > Centos7的Firewalld防火墻基礎(chǔ)命令詳解

Centos7的Firewalld防火墻基礎(chǔ)命令詳解

熱門標(biāo)簽:長(zhǎng)春電銷外呼系統(tǒng)代理商 外呼系統(tǒng)虛擬號(hào)碼 泰州智能外呼系統(tǒng)排名 400電話申請(qǐng)知乎 代理外呼系統(tǒng)創(chuàng)業(yè) 百度地圖標(biāo)注尺寸無(wú)法顯示 400電話干嘛怎么申請(qǐng)信用卡 接電話機(jī)器人罵人 大連電銷外呼系統(tǒng)運(yùn)營(yíng)商

一、Linux防火墻的基礎(chǔ)

Linux的防火墻體系主要工作在網(wǎng)絡(luò)層,針對(duì)TCP/IP數(shù)據(jù)包實(shí)時(shí)過濾和限制,屬于典型的包過濾防火墻(或稱為網(wǎng)絡(luò)層防火墻)。Linux系統(tǒng)的防火墻體系基于內(nèi)核共存:firewalld、iptables、ebtables,默認(rèn)使用firewalld來(lái)管理netfilter子系統(tǒng)。

  • netfilter:指的是Linux內(nèi)核中實(shí)現(xiàn)包過濾防火墻的內(nèi)部結(jié)構(gòu),不以程序或文件的形式存在,屬于“內(nèi)核態(tài)”的防火墻功能體系;
  • firewalld:指用來(lái)管理Linux防護(hù)墻的命令程序,屬于“用戶態(tài)”的防火墻管理體系;

1、firewalld概述

firewalld的作用是為包過濾機(jī)制提供匹配規(guī)則(或稱為策略),通過各種不同的規(guī)則,告訴netfilter對(duì)來(lái)自指定源,前往指定目的或具有某些協(xié)議特征的數(shù)據(jù)包采取何種處理方式。為了更加方便地組織和管理防火墻,firewalld提供了支持網(wǎng)絡(luò)區(qū)域所定義的網(wǎng)絡(luò)鏈接以及接口安全等級(jí)的動(dòng)態(tài)防火墻管理工具。支持IPv4、IPv6防火墻設(shè)置以及以太網(wǎng)橋,并且擁有兩種配置模式:

  • 運(yùn)行配置
  • 永久配置

還支持服務(wù)或應(yīng)用程序直接添加防火墻規(guī)則接口。

2、firewalld網(wǎng)絡(luò)區(qū)域

firewalld將所有的網(wǎng)絡(luò)數(shù)據(jù)流量劃分為多個(gè)區(qū)域,從而簡(jiǎn)化防火墻管理。根據(jù)數(shù)據(jù)包的源IP地址或傳入網(wǎng)絡(luò)接口等條件,將數(shù)據(jù)流量轉(zhuǎn)入相應(yīng)區(qū)域的防火墻規(guī)則。

對(duì)于進(jìn)入系統(tǒng)的數(shù)據(jù)包,首先檢查的就是其源地址:

  • 若源地址關(guān)聯(lián)到特定的區(qū)域,則執(zhí)行該區(qū)域所制定的規(guī)則;
  • 若源地址未關(guān)聯(lián)到特定的區(qū)域,則使用傳入網(wǎng)絡(luò)接口的區(qū)域并執(zhí)行該區(qū)域所制定的規(guī)則;
  • 若網(wǎng)絡(luò)接口未關(guān)聯(lián)到特定的區(qū)域,則使用默認(rèn)區(qū)域并執(zhí)行該區(qū)域所制定的規(guī)則;

默認(rèn)區(qū)域不是單獨(dú)的區(qū)域,而是指向系統(tǒng)上定義的某個(gè)其他區(qū)域。默認(rèn)情況下,默認(rèn)區(qū)域是public,但是也可以更改默認(rèn)區(qū)域。以上匹配規(guī)則,按照先后順序,第一個(gè)匹配的規(guī)則勝出。在每個(gè)區(qū)域中都可以配置其要打開或者關(guān)閉的一系列服務(wù)或端口,firewalld的每個(gè)預(yù)定義的區(qū)域都設(shè)置了默認(rèn)打開的服務(wù)。

3、firewalld預(yù)定義區(qū)域說明

  • trusted(信任區(qū)域):可接收所有的網(wǎng)絡(luò)連接;
  • public:(公共區(qū)域):除非與傳出流量相關(guān),或與ssh或dhcpv6-client預(yù)定義服務(wù)匹配,否則拒絕流量傳入;
  • work(工作區(qū)域):除非與傳出流量相關(guān),或與ssh、ipp-client、dhcpv6-client預(yù)定義服務(wù)匹配,否則拒絕流量傳入,用于工作區(qū);
  • home(家庭區(qū)域):除非與傳出流量相關(guān),或與ssh、ipp-client、mdns、samba-client、dhcpv6-client預(yù)定義服務(wù)匹配,否則拒絕流量傳入,用于家庭網(wǎng)絡(luò);
  • internal(內(nèi)部區(qū)域):除非與傳出流量相關(guān),或與ssh、ipp-client、mdns、samba-client、dhcpv6-client預(yù)定義服務(wù)匹配,否則拒絕流量傳入,用于內(nèi)部網(wǎng)絡(luò);
  • external(外部區(qū)域):除非與傳出流量相關(guān),或與ssh預(yù)定義服務(wù)匹配,否則拒絕流量傳入;
  • dmz(隔離區(qū)域也稱為非軍事化區(qū)域):除非和傳出的流量相關(guān) ,或與ssh預(yù)定義服務(wù)匹配,否則拒絕流量傳入;
  • blocak(限制區(qū)域):除非與傳出流量相關(guān),否則拒絕所有傳入流量;
  • drop(丟棄區(qū)域):除非與傳出流量相關(guān),否則丟棄所有傳入流量,并且不產(chǎn)生包含ICMP的錯(cuò)誤響應(yīng);

二、firewalld防火墻的配置方法

在Centos 7系統(tǒng)中,可以使用三種方式配置firewalld防火墻:

  • firewalld-config圖形化工具;
  • firewalld-cmd命令行工具;
  • /etc/firewalld/中的配置文件;

一般情況下,不建議直接編輯配置文件;

1、firewalld-cmd的基礎(chǔ)命令

[root@centos01 ~]# systemctl start firewalld  <!--啟動(dòng)firewalld-->
[root@centos01 ~]# systemctl enable firewalld<!--設(shè)置開機(jī)自動(dòng)啟動(dòng)firewalld-->
[root@centos01 ~]# systemctl status firewalld <!--查看防火墻運(yùn)行狀態(tài)-->
[root@localhost ~]# firewall-cmd --state <!--查看防火墻允許狀態(tài)-->
running
[root@centos01 ~]# systemctl stop firewalld<!--停止firewalld-->
[root@centos01 ~]# systemctl disable firewalld<!--設(shè)置開機(jī)不自動(dòng)啟動(dòng)firewalld-->
[root@centos01 ~]# firewall-cmd --get-zones <!--查看防火墻預(yù)定義的區(qū)域-->
[root@centos01 ~]# firewall-cmd --get-service <!--查看防火墻支持的預(yù)定義服務(wù)類型-->
[root@centos01 ~]# firewall-cmd --get-default-zone <!--查看系統(tǒng)的默認(rèn)區(qū)域 -->
[root@localhost /]# firewall-cmd --reload   <!--重載防火墻-->
[root@centos01 ~]# firewall-cmd --get-active-zones <!--查看激活的區(qū)域-->

[root@centos01 ~]# firewall-cmd --get-icmptypes <!--顯示預(yù)定義的ICMP類型-->
address-unreachable bad-header communication-prohibited destination-unreachable 
echo-reply echo-request fragmentation-needed host-precedence-violation host-prohibited
host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement
neighbour-solicitation network-prohibited network-redirect network-unknown 
network-unreachable no-route packet-too-big parameter-problem port-unreachable
precedence-cutoff protocol-unreachable redirect required-option-missing
router-advertisement router-solicitation source-quench source-route-failed time-exceeded
timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable 
tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly 
ttl-zero-during-transit unknown-header-type unknown-option

firewall-cmd --get-icmptypes命令執(zhí)行結(jié)果中部分阻塞類型的含義如下:

  • destination-unreachable:目的地址不可達(dá);
  • echo-reply:應(yīng)答回應(yīng);
  • parameter-problem:參數(shù)問題;
  • redirect:重新定向;
  • router-advertisement:路由器通告;
  • router-solicitation:路由器征尋;
  • source-quench:源端抑制;
  • time-exceeded:超時(shí);
  • timestamp-reply:時(shí)間戳應(yīng)答回應(yīng);
  • timestamp-request:時(shí)間戳請(qǐng)求;

2、firewalld區(qū)域管理選項(xiàng)

  • --get-default-zone:顯示網(wǎng)絡(luò)連接或接口的默認(rèn)區(qū)域;
  • --set-default-zone=<zone>:設(shè)置網(wǎng)絡(luò)連接或接口的默認(rèn)區(qū)域;
  • --get-active-zones:顯示已激活的所有區(qū)域;
  • --get-zone-of-interface=<interface>:顯示指定接口綁定的區(qū)域;
  • --zone=<zone> --add-interface=<interface>:為指定接口綁定的區(qū)域;
  • --zone=<zone> --change-interface=<interface>:為指定的區(qū)域更改綁定的網(wǎng)絡(luò)接口;
  • --zone=<zone> --remove-interface=<interface>:為指定的區(qū)域刪除綁定的網(wǎng)絡(luò)接口;
  • --list-all=zones:顯示所有區(qū)域及其規(guī)則;
  • [--zone=<zone>] --list-all:顯示所有指定區(qū)域的所有規(guī)則,省略--zone=<zone>時(shí)表示僅對(duì)默認(rèn)區(qū)域操作;

區(qū)域管理示例如下:

[root@centos01 ~]# firewall-cmd --get-default-zone <!--顯示當(dāng)前系統(tǒng)中的默認(rèn)區(qū)域-->
[root@centos01 ~]# firewall-cmd --list-all<!--顯示默認(rèn)區(qū)域的所有規(guī)則-->
[root@centos01 ~]# firewall-cmd --get-zone-of-interface=ens32 <!--查看ens32接口所在的區(qū)域-->
internal
[root@centos01 ~]# firewall-cmd --zone=internal --change-interface=ens32 <!--修改ens32接口對(duì)應(yīng)的區(qū)域更改到internal區(qū)域-->
 The interface is under control of NetworkManager, setting zone to 'internal'.
success
[root@centos01 ~]# firewall-cmd --zone=internal --list-interface <!--查看internal區(qū)域的接口列表-->
ens32
[root@centos01 ~]# firewall-cmd --get-active-zones  <!--顯示所有激活區(qū)域-->
internal
 interfaces: ens32

3、firewalld服務(wù)管理

為了方便管理,firewalld預(yù)先定義了很多服務(wù),存放在/usr/lib/firewalld/services/目錄中,服務(wù)通過單個(gè)的XML配置文件來(lái)指定。這些配置文件則按以下格式命名:service-name.xml,每個(gè)文件對(duì)應(yīng)一項(xiàng)具體的網(wǎng)絡(luò)服務(wù),如ssh服務(wù)等。我們需要將service配置文件放置在/etc/firewalld/services/目錄中。service配置具有以下優(yōu)點(diǎn):

通過服務(wù)名字來(lái)管理規(guī)則更加人性化;

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

1)firewalld-cmd命令區(qū)域中服務(wù)管理的常用選項(xiàng)說明:

  • [--zone=<zone>] --list-services:顯示指定區(qū)域內(nèi)允許訪問的所有服務(wù);
  • [--zone=<zone>] --add-service=<service>:為指定區(qū)域設(shè)置允許訪問的某項(xiàng)服務(wù);
  • [--zone=<zone>] --remove-service=<service>:刪除指定區(qū)域已設(shè)置的允許訪問的某項(xiàng)服務(wù);
  • [--zone=<zone>] --list-ports:顯示指定區(qū)域內(nèi)允許訪問的所有端口號(hào);
  • [--zone=<zone>] --add-port=<portid>[-<portid>]/<protocol>:為指定區(qū)域設(shè)置允許訪問的某個(gè)/某段端口號(hào)(包括協(xié)議號(hào));
  • [--zone=<zone>] --remove-port=<portid>[-<portid>]/<protocl>:刪除指定區(qū)域已設(shè)置的允許訪問的端口號(hào)(包括協(xié)議名);
  • [--zone=<zone>] --list-icmp-blocaks:顯示指定區(qū)域內(nèi)拒絕訪問的所有ICMP類型;
  • [--zone=<zone>] --add-icmp-block=<icmptype>:為指定區(qū)域設(shè)置拒絕訪問的某項(xiàng)ICMP類型;
  • [--zone=<zone>] --remove-icmp-block=<icmptype>:刪除指定區(qū)域已設(shè)置的拒絕訪問的某項(xiàng)ICMP類型,省略--zone=<zone>時(shí)表示對(duì)默認(rèn)區(qū)域操作;

2)firewalld服務(wù)管理示例如下(為默認(rèn)區(qū)域設(shè)置允許訪問的服務(wù)):

 [root@centos01 ~]# firewall-cmd --list-services <!--顯示默認(rèn)區(qū)域內(nèi)允許訪問的所有服務(wù)-->
dhcpv6-client ssh 
[root@centos01 ~]# firewall-cmd --add-service=http <!--設(shè)置默認(rèn)區(qū)域允許訪問http服務(wù)-->
success
[root@centos01 ~]# firewall-cmd --add-service=https <!--設(shè)置默認(rèn)區(qū)域允許訪問https服務(wù)-->
success
[root@centos01 ~]# firewall-cmd --list-services <!--顯示默認(rèn)區(qū)域內(nèi)允許訪問的所有服務(wù)-->

dhcpv6-client ssh https http

3)firewalld服務(wù)管理示例如下(為internal區(qū)域設(shè)置允許訪問的服務(wù)):

[root@centos01 ~]# firewall-cmd --zone=internal --add-service=mysql 
       <!--設(shè)置internal區(qū)域允許訪問mysql服務(wù)-->
success
[root@centos01 ~]# firewall-cmd --zone=internal --remove-service=samba-client 
     <!--設(shè)置internal區(qū)域不允許訪問Samba-client服務(wù)-->
success
[root@centos01 ~]# firewall-cmd --zone=internal --list-services 
       <!--顯示internal區(qū)域內(nèi)允許訪問的所有服務(wù)-->
ssh mdns dhcpv6-client mysql

4、端口管理

在進(jìn)行服務(wù)配置時(shí),預(yù)定義的網(wǎng)絡(luò)服務(wù)可以使用服務(wù)名配置,服務(wù)所涉及的端口就會(huì)自動(dòng)打開。但是,對(duì)于非預(yù)定義的服務(wù)只能手動(dòng)為指定的區(qū)域添加端口。例如,執(zhí)行以下操作即可實(shí)現(xiàn)在internal區(qū)域打開443/TCP端口。示例如下:

 [root@centos01 ~]# firewall-cmd --zone=internal --add-port=443/tcp
         <!--在internal區(qū)域打開443/tcp端口-->
success

若想實(shí)現(xiàn)在internal區(qū)域禁止443/TCP端口訪問,可執(zhí)行以下命令:

 [root@centos01 ~]# firewall-cmd --zone=internal --remove-port=443/tcp
        <!--在internal區(qū)域禁止443/tcp端口訪問-->
success

以上配置都為臨時(shí)配置,若想將當(dāng)前配置保存為永久配置,可以使用下面命令:

 [root@centos01 ~]# firewall-cmd --runtime-to-permanent
success

直接配置為永久性規(guī)則,須帶--permanent選項(xiàng),如下:

[root@centos01 ~]# firewall-cmd --add-icmp-block=echo-request --permanent  <!--禁止ping-->

success
[root@centos01 ~]# firewall-cmd --zone=external --add-icmp-block=echo-request --permanent      
      <!--配置external區(qū)域禁止ping-->
success

三、firewalld兩種配置模式

前面提到firewall-cmd命令工具有兩種配置模式:運(yùn)行時(shí)模式(Runtime mode)表示當(dāng)前內(nèi)存中運(yùn)行的防火墻配置,在系統(tǒng)或firewalld服務(wù)重啟、停止時(shí)配置將失效;永久模式(Permanent mode)表示重啟防火墻或重新加載防火墻時(shí)的規(guī)則配置,是永久存儲(chǔ)在配置文件中的。

firewall-cmd命令工具與配置模式相關(guān)的選項(xiàng)有三個(gè):

  • --reload:重新加載防火墻規(guī)則并保持狀態(tài)信息,即將永久配置應(yīng)用為運(yùn)行時(shí)配置;
  • --permanent:帶有此選項(xiàng)的命令用于設(shè)置永久性規(guī)則,這些規(guī)則只有在重新啟動(dòng)或重新加載防火墻規(guī)則時(shí)才會(huì)生效;若不帶此項(xiàng),表示用于設(shè)置運(yùn)行時(shí)規(guī)則;
  • --runtime-to-permanent:將當(dāng)前運(yùn)行時(shí)的配置寫入規(guī)則配置文件中,使當(dāng)前內(nèi)存中的規(guī)則稱為永久性配置;

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:清遠(yuǎn) 臺(tái)灣 安陽(yáng) 中衛(wèi) 長(zhǎng)治 興安盟 雅安 大慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Centos7的Firewalld防火墻基礎(chǔ)命令詳解》,本文關(guān)鍵詞  Centos7,的,Firewalld,防火墻,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Centos7的Firewalld防火墻基礎(chǔ)命令詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Centos7的Firewalld防火墻基礎(chǔ)命令詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章