日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Firewalld防火墙应用

發(fā)布時(shí)間:2024/9/5 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Firewalld防火墙应用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

防火墻的介紹小弟就不在這里做詳細(xì)的講解了,那么我們直奔主題吧!

?

Firewalld的網(wǎng)絡(luò)區(qū)域:

?????? 區(qū)域?? ???????????????????????????????????????說(shuō)明 ????????????????????

trusted(信任區(qū)域)

可接收所有的網(wǎng)絡(luò)

public(公共區(qū)域)

除非與傳出的流量相關(guān),或與ssh或dhcpv6-client預(yù)定義服務(wù)匹配,否則拒絕流量傳入。在公共區(qū)域內(nèi),不能相信網(wǎng)絡(luò)內(nèi)的其他計(jì)算機(jī)不會(huì)對(duì)計(jì)算機(jī)造成危害,只能接收經(jīng)過(guò)選擇的連接。并且,該區(qū)域是新添加網(wǎng)絡(luò)接口的默認(rèn)區(qū)域。

work(工作區(qū)域)

除非與傳出流量相關(guān),或與ssh、ipp-client、dhcpv6-client預(yù)定于服務(wù)匹配,否則拒絕流量傳入,用于工作區(qū)。信任網(wǎng)絡(luò)內(nèi)的其他計(jì)算機(jī)不會(huì)危害計(jì)算機(jī),僅接收經(jīng)過(guò)選擇的連接

home(家庭區(qū)域)

除非與傳出流量相關(guān),或者與ssh、ipp-client、mdns、samba-client、dhepv6-client預(yù)定義服務(wù)匹配,否則拒絕流量傳入,用于家庭網(wǎng)絡(luò)。任網(wǎng)絡(luò)內(nèi)的其他計(jì)算機(jī)不會(huì)危害計(jì)算機(jī),僅接收經(jīng)過(guò)選擇的連接

internal(內(nèi)部區(qū)域)

除非與傳出流量相關(guān),或者ssh、ipp-client、mdns、samba-client、dhcpv6-client預(yù)定義服務(wù)匹配,否則拒絕流量傳入,用于內(nèi)部網(wǎng)絡(luò)。信任網(wǎng)絡(luò)內(nèi)的其他計(jì)算機(jī)不會(huì)危害計(jì)算機(jī),僅接收進(jìn)經(jīng)過(guò)選擇的連接

external(外部區(qū)域)

除非與傳出流量相關(guān),或與ssh預(yù)定義服務(wù)匹配,否則拒絕流量傳入。通過(guò)此區(qū)域轉(zhuǎn)發(fā)的ipv4傳出流最終將進(jìn)行地址偽裝,可用于為路由器啟用了偽裝功能的外部網(wǎng)絡(luò)

Dmz(隔離區(qū)域,也叫非軍事區(qū)域)

除非與傳出的流量相關(guān),或與ssh預(yù)定義服務(wù)匹配,否則拒絕流量傳入

Block(限制區(qū)域)

除非與傳出流量相關(guān),否則拒絕所有傳入流量

Drop(丟棄區(qū)域)

除非與傳出流量相關(guān),否則丟棄所有傳入流量,并且不產(chǎn)生包含ICMP(Intermet Control Message Protocol,互聯(lián)網(wǎng)控制報(bào)文協(xié)議)的錯(cuò)誤響應(yīng)

?

不知道各位大哥看沒(méi)看懂上面的區(qū)域介紹,這時(shí)候在心里默念沒(méi)看懂得的,請(qǐng)回過(guò)頭去繼續(xù)看,否則不要往下看。小弟也是有脾氣的

?

下面我們開(kāi)始講解firewalld命令(本來(lái)還有圖形化管理的;但是,要那玩意干啥)

?

Firewalld命令:

開(kāi)啟、關(guān)閉、查看firewalld狀態(tài)

??在安裝centos7系統(tǒng)時(shí),會(huì)自動(dòng)安裝firewalld服務(wù)程序和圖形化工具firewalld-config。執(zhí)行以下命令可以啟動(dòng),停止,查看firewalld服務(wù)狀態(tài),并為它設(shè)置開(kāi)機(jī)自啟動(dòng)

[root@localhost ~]# systemctl start firewalld????? //啟動(dòng)服務(wù)

[root@localhost ~]# systemctl stop firewalld????? //停止服務(wù)

[root@localhost ~]# systemctl enable firewalld????? //開(kāi)機(jī)自啟動(dòng)

Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.

Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.

[root@localhost ~]# systemctl status firewalld?? ???//查看firewalld狀態(tài)

● firewalld.service - firewalld - dynamic firewall daemon

?? Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

?? Active: active (running) since 一 2019-07-22 21:29:40 CST; 48s ago

???? Docs: man:firewalld(1)

?Main PID: 1732 (firewalld)

?? CGroup: /system.slice/firewalld.service

?????????? └─1732 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

?

7月 22 21:29:39 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...

7月 22 21:29:40 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.

?

?

獲取firewalld預(yù)定義信息:

??Firewalld-cmd預(yù)定義信息主要包括三種,可用區(qū)域,可用的服務(wù)以及可用的ICMP阻塞類型。查看具體命令如下

[root@localhost ~]# firewall-cmd --get-zones???? //顯示預(yù)定義區(qū)域

block dmz drop external home internal public trusted work

?

[root@localhost ~]# firewall-cmd --get-service??? //顯示預(yù)定義的服務(wù)

RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client

?dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nfs3 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

?

[root@localhost ~]# 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é)果中的各種阻塞的含義:

l? destination-unreachable??? 目的地不可達(dá)

l? echo-reply?????????????? 應(yīng)答回應(yīng)(pong)

l? parameter-problem??????? 參數(shù)問(wèn)題

l? redirect???????????????? 重新定向

l? router-advertisement????? 路由器通告

l? router-solicitation???????? 路由器征詢

l? source-quench?????????? 源端抑制

l? time-execeded?????????? 超時(shí)

l? timestamp-reply????????? 時(shí)間戳應(yīng)答回應(yīng)

l? timestamp-request??????? 時(shí)間戳請(qǐng)求

?

區(qū)域管理

?

使用firewall-cmd命令可以實(shí)現(xiàn)獲取和管理區(qū)域,為指定區(qū)域綁定網(wǎng)絡(luò)接口等功能,在下面的表中列出了firewall-cmd命令的區(qū)域管理選項(xiàng)說(shuō)明。

選項(xiàng)

說(shuō)明

--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ū)域進(jìn)行操作

?

本來(lái)應(yīng)該給各位大哥做演示的,但是想想大哥們的智商應(yīng)該比我高一些,所以不需要做演示了,能看到這一步,你們應(yīng)該都自己做了演示!

?

?

服務(wù)管理:

??為了方便管理,firewalld預(yù)先定義了很多服務(wù),存放在/usr/lib/firewalld/services/目錄中,服務(wù)通過(guò)單個(gè)的xml配置文件來(lái)指定,這些配置文件則按以下格式命名:service-name.xml,每個(gè)文件對(duì)應(yīng)一項(xiàng)具體的網(wǎng)絡(luò)服務(wù),如ssh服務(wù)等。與之對(duì)應(yīng)的配置文件中記錄了各項(xiàng)服務(wù)所使用的tcp/udp端口,在最新版本的firewalld中默認(rèn)定義了70多種服務(wù)供我們使用,對(duì)于每個(gè)網(wǎng)絡(luò)服務(wù)區(qū)域,均可以配置允許訪問(wèn)的服務(wù)。當(dāng)默認(rèn)提供的服務(wù)不適用或者不需要自定義某項(xiàng)的端口時(shí),我們需要將service配置文件放置在/etc/firewalld/services/目錄中,service具有以下優(yōu)點(diǎn):

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

    下表列出了firewall-cmd命令區(qū)域中服務(wù)管理的常規(guī)選項(xiàng)說(shuō)明:

    選項(xiàng)

    說(shuō)明

    [--zone=<zone>] --list-services

    顯示指定區(qū)域內(nèi)允許訪問(wèn)的所有服務(wù)

    [--zone=<zone>] --add-service=<service>

    為指定區(qū)域設(shè)置允許訪問(wèn)的某項(xiàng)服務(wù)

    [--zone=<zone>] --remove-service=<service>

    刪除指定區(qū)域已設(shè)置的允許訪問(wèn)的某項(xiàng)服務(wù)

    [--zone=<zone>] --list-ports

    顯示指定區(qū)域內(nèi)允許訪問(wèn)的所有端口

    [--zone=<zone>] --add-port=<port>[portid]/<protocol>

    為指定區(qū)域設(shè)置允許訪問(wèn)某個(gè)/某段端口號(hào)(包括協(xié)議名)

    [--zone=<zone>] --remove-port=<port>[portid]/<protocol>

    刪除指定區(qū)域已設(shè)置的允許訪問(wèn)的端口號(hào)(包括協(xié)議名)

    [--zone=<zone>] --list-icmp-blocks

    顯示指定區(qū)域內(nèi)拒絕訪問(wèn)的所有icmp類型

    [--zone=<zone>] –add-icmp-block=<icmptype>

    為指定區(qū)域設(shè)置拒絕訪問(wèn)的某項(xiàng)icmp類型

    [--zone=<zone>] --remove-icmp-block=<icmptype>

    刪除指定區(qū)域已設(shè)置的拒絕訪問(wèn)的某項(xiàng)ICMP類型,省略--zone=<zone>時(shí)表示對(duì)默認(rèn)區(qū)域進(jìn)行操作

    具體操作如下:

    ?

  • 為默認(rèn)區(qū)域設(shè)置允許訪問(wèn)服務(wù)
  • [root@localhost services]# firewall-cmd --get-default-zone???? //查看系統(tǒng)當(dāng)前的默認(rèn)區(qū)域

    Public

    ?

    [root@localhost services]# firewall-cmd --list-services??? //顯示默認(rèn)區(qū)域允許訪問(wèn)的所有服務(wù)

    ssh dhcpv6-client

    ?

    [root@localhost services]# firewall-cmd --add-service=https?? //配置默認(rèn)區(qū)域允許訪問(wèn)https服務(wù)

    Success

    ?

    [root@localhost services]# firewall-cmd --list-services

    ssh dhcpv6-client https

    ?

  • 為internal區(qū)域設(shè)置允許訪問(wèn)的服務(wù):
  • 配置internal區(qū)域允許訪問(wèn)mysql服務(wù)

    [root@localhost services]# firewall-cmd --zone=internal --add-service=mysql

    success

    ?

    ????????

    [root@localhost services]# firewall-cmd --zone=internal --list-services

    ssh mdns samba-client dhcpv6-client mysql

    ?

    設(shè)置internal區(qū)域不允許訪問(wèn)samba-client服務(wù)

    (解析:在internal區(qū)域中沒(méi)有的服務(wù)都是禁止的,所以我們將samba-client移除就可以了)

    [root@localhost services]# firewall-cmd --zone=internal --remove-service=samba-client

    Success

    ?

    [root@localhost services]# firewall-cmd --zone=internal --list-services

    ssh mdns dhcpv6-client mysql

    ?

    端口管理

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

    ?

    [root@localhost services]# firewall-cmd --zone=internal --list-ports

    ?

    [root@localhost services]# firewall-cmd --zone=internal --add-port=443/tcp

    success

    [root@localhost services]# firewall-cmd --zone=internal --list-ports

    443/tcp

    如果希望在internal禁止接口,將它移除就可以了

    [root@localhost services]# firewall-cmd --zone=internal --remove-port=443/tcp

    success

    ?

    兩種配置模式:

    ??firewall-cmd命令工具有兩種配置模式。運(yùn)行模式(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è):

    1.--reload:重新加載防火墻規(guī)則并保持狀態(tài)信息,即將永久配置應(yīng)用為運(yùn)行時(shí)配置

    2.--permanent:帶有此選項(xiàng)的命令用于配置永久性規(guī)則,這些規(guī)則只有在重新啟動(dòng)firewalld或則重新加載防火墻規(guī)則時(shí)才會(huì)生效,若不帶此選項(xiàng),表示用于運(yùn)行時(shí)規(guī)則

    3.--runtime-to-permanent:將當(dāng)前的運(yùn)行時(shí)配置寫(xiě)入規(guī)則配置文件中,使之成為永久性配置

    ?

    ?

    ?

    Firewalld實(shí)戰(zhàn):

    ??聽(tīng)了小弟介紹這么九,那么,這個(gè)舞臺(tái)交給你們了。

    ?

    實(shí)驗(yàn)需求:

  • 網(wǎng)關(guān)服務(wù)器連接互聯(lián)網(wǎng)網(wǎng)卡為ens32地址為100.1.1.10,為公網(wǎng)IP,分配到firewall的external(外部)區(qū)域,連接內(nèi)網(wǎng)網(wǎng)卡為ens34地址為192.168.1.1,分配到firewall的trusted(信任區(qū)域),連接服務(wù)器網(wǎng)卡為ens35地址為192.168.2.1,分配到firewall的dmz(非軍事化)區(qū)域
  • 網(wǎng)站服務(wù)器和網(wǎng)關(guān)服務(wù)器均通過(guò)SSH來(lái)遠(yuǎn)程管理,為了安全,將SSH默認(rèn)端口改12345,網(wǎng)站服務(wù)器開(kāi)啟https,過(guò)濾為加密的http協(xié)議流量
  • 網(wǎng)站服務(wù)器拒絕ping命令
  • ?

    需求給你們了,按照需求來(lái)做吧。

    ?

    網(wǎng)關(guān)服務(wù)器開(kāi)啟路由轉(zhuǎn)發(fā)功能:

    vim /etc/sysctl.conf

    net.ipv4.ip_forward = 1

    其他的就是一些firewall策略,你們懂的

    ?

    ?

    Firealld高級(jí)配置

    ?

    ?

    IP地址與端口轉(zhuǎn)發(fā)簡(jiǎn)介:(一段不說(shuō)小弟很難懂,雖然你們能看懂,但是我就是要寫(xiě)出來(lái))

    在互聯(lián)網(wǎng)發(fā)展初期,設(shè)計(jì)者們并沒(méi)有想到互聯(lián)網(wǎng)發(fā)展到現(xiàn)在這空前繁榮的階段。所以設(shè)計(jì)Ipv4地址空間只有32位bit。但是隨著互聯(lián)網(wǎng)的發(fā)展,IP地址變得嚴(yán)重缺乏,并且地址分配不均勻。所以就在原有的ipv4地址空間的基礎(chǔ)上劃分出來(lái)三段私網(wǎng)地址空間。10.0.0.0/8,127.16.0.0/12和192.168.0.0/16。這些地址可以在企業(yè)或者公司內(nèi)部重復(fù)使用。但是不能用于互聯(lián)網(wǎng),因?yàn)樯鲜鋈齻€(gè)范圍的地址無(wú)法在internet上被路由。

    ?于是NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)便產(chǎn)生了。當(dāng)用戶數(shù)據(jù)包經(jīng)過(guò)NAT設(shè)備時(shí),NAT設(shè)備將源地址替換為公網(wǎng)IP地址。而返回的數(shù)據(jù)包九可以被路由。NAT技術(shù)一般都是在企業(yè)邊界路由器或者防火墻來(lái)配置。

    Firewalld支持兩種類型的NAT:IP地址偽裝和端口轉(zhuǎn)發(fā)

    ?

    1、? IP地址偽裝

    IP地址偽裝(masquerade),通過(guò)地址偽裝。NAT設(shè)備將經(jīng)過(guò)設(shè)備的包轉(zhuǎn)發(fā)到指定接收方。同時(shí)將通過(guò)數(shù)據(jù)包的源地址更改為其自己的接口地址。當(dāng)返回?cái)?shù)據(jù)包到達(dá)時(shí)。會(huì)將目的dizhi 修改為原始主機(jī)的地址并進(jìn)行路由。地址偽裝可以實(shí)現(xiàn)局域網(wǎng)多個(gè)地址共享單一公網(wǎng)地址上網(wǎng)。類似于NAT技術(shù)中的端口多路復(fù)用(PAT),IP地址偽裝僅支持Ipv4,不支持Ipv6.

    2、? 端口轉(zhuǎn)發(fā)

    端口轉(zhuǎn)發(fā)(Forward-port),也稱為目的地址轉(zhuǎn)換或端口映射。通過(guò)端口轉(zhuǎn)發(fā),將指定IP地址及端口的流量轉(zhuǎn)發(fā)到相同計(jì)算機(jī)的不同端口,或不同計(jì)算機(jī)上的端口,企業(yè)內(nèi)網(wǎng)的服務(wù)器一般都采用私網(wǎng)地址,可以通過(guò)端口轉(zhuǎn)發(fā)將使用私網(wǎng)地址的服務(wù)器發(fā)布到公網(wǎng),以便讓互聯(lián)網(wǎng)用戶進(jìn)行訪問(wèn),例如:當(dāng)接收互聯(lián)網(wǎng)用戶的http請(qǐng)求時(shí),網(wǎng)關(guān)服務(wù)器判斷數(shù)據(jù)包的目標(biāo)地址與目標(biāo)端口。一旦匹配指定規(guī)則,則將其目標(biāo)地址修改為內(nèi)網(wǎng)真正的服務(wù)器地址,從而建立有效的HTTP協(xié)議連接。

    ?

    Firewalld-cmd高級(jí)配置

    ?

  • firewalld中理解直接規(guī)則,這個(gè)我們就不理解了,知道有這個(gè)東西就行。
  • 使用富語(yǔ)言:(這個(gè)才是主流,把它學(xué)會(huì)一切好說(shuō))
  • Firewalld的富語(yǔ)言(rich language)提供了一種不需要了解iptables語(yǔ)法的通過(guò)高級(jí)語(yǔ)言配置復(fù)雜Ipv4和Ipv6防火墻規(guī)則的機(jī)制,為管理員提供了一種表達(dá)性語(yǔ)言,同故宮這種語(yǔ)言可以表達(dá)firewalld的基本語(yǔ)法中為涵蓋的自定義防火墻規(guī)則。例如:僅允許從單個(gè)IP地址(而非同故宮某個(gè)區(qū)域路由的所有IP地址)連接到服務(wù)

    富規(guī)則可用于表達(dá)基本的允許/拒絕規(guī)則,也可以用于配置記錄(面向syslog和auditd),以及端口轉(zhuǎn)發(fā),偽裝和速率限制。下面是表達(dá)富規(guī)則的基本語(yǔ)法:

    rule [family=”<rule family>”]

    [source address=”<address>”[invert=”True”]]

    [destination address=”<address>”[invert=”True”]]

    [<element>]

    [log [perfix=”<perfix text>”] [level=”<log level>”] [limit value=”rate/duration”]]

    [audit]

    [accept|reject|drop]

    規(guī)則的每一個(gè)單一元素都能夠以option=value的形式來(lái)采用附加參數(shù)

    ?

    2.1)規(guī)則順序

    ??一旦向某個(gè)區(qū)域(一般指防火墻)中添加了多個(gè)規(guī)則,規(guī)則的排序會(huì)在很大程度上影響防火墻的行為,對(duì)于所有的區(qū)域,區(qū)域內(nèi)的規(guī)則的基本配許是相同的。如果區(qū)域中的任何規(guī)則與包均不匹配,通常會(huì)拒絕該包。此外,在匹配某個(gè)記錄規(guī)則后將繼續(xù)正常處理包。

    ??直接規(guī)則是個(gè)例外,大部分直接規(guī)則將首先進(jìn)行解析,然后由firewalld進(jìn)行其他處理,但是直接規(guī)則語(yǔ)法允許管理員在任何區(qū)域中的任何位置插入任何規(guī)則。

    ?

    2.2)測(cè)試與調(diào)試

    ??為了便于測(cè)試和調(diào)試,幾乎所有的規(guī)則都可以與超時(shí)一起添加到運(yùn)行配置。當(dāng)包含超時(shí)的規(guī)則添加到防火墻是。計(jì)時(shí)器便正對(duì)該規(guī)則開(kāi)始倒計(jì)時(shí),一旦規(guī)則的計(jì)時(shí)器達(dá)到0秒,便從運(yùn)行時(shí)配置中刪除該規(guī)則。

    ??在使用遠(yuǎn)程防火墻是,使用超時(shí)會(huì)是一種及其有用的工具,特別是在測(cè)試更復(fù)雜達(dá)到規(guī)則集時(shí),如果規(guī)則有效,則掛歷元可以再次添加該規(guī)則,如果規(guī)則沒(méi)有按照預(yù)期運(yùn)行,甚至可能將管理員鎖定而使用其服務(wù)進(jìn)入系統(tǒng),那么規(guī)則將會(huì)被自動(dòng)刪除,以允許管理員可以繼續(xù)工作。

    ??通過(guò)在啟用規(guī)則的firewall-cmd命令的結(jié)尾加選項(xiàng)—timeout=<TIMEINSECONDS>可向運(yùn)行時(shí)規(guī)則中添加超時(shí)。

    2.3)理解富規(guī)則命令

    ??Firewall-cmd有四個(gè)通項(xiàng)可以用于處理富規(guī)則,所有這些項(xiàng)都可以通常規(guī)的—permanent或--zone=<ZONE>選項(xiàng)出合使用。

    選項(xiàng)

    說(shuō)明

    --add-rich-rule=’RULE’

    向指定區(qū)域中添加RULE,如果沒(méi)有指定區(qū)域,則為默認(rèn)區(qū)域

    --remove-rich-rule=’RULE’

    從指定區(qū)域中刪除RULE,如果沒(méi)有指定區(qū)域,則默認(rèn)區(qū)域

    --query-rich-rule=’RULE’

    查詢RULE是否已添加到指定區(qū)域,如果未指定區(qū)域,則為默認(rèn)區(qū)域,規(guī)則存在則返回0,否則返回1

    --list-rich-rules

    輸出指定區(qū)域的所有富規(guī)則,如果未指定區(qū)域,則為默認(rèn)區(qū)域

    ??任何已配置的富規(guī)則都會(huì)顯示在firewall-cmd --list-all和firewall-cmd –list-all-zones輸出結(jié)果。具體語(yǔ)法解釋如下。

    l? source:限制源IP地址,源地址可以是一個(gè)Ipv4、Ipv6地址或者一個(gè)網(wǎng)絡(luò)地址段。

    l? destination:限制目標(biāo)地址,目標(biāo)地址使用跟源地址相同的語(yǔ)法。

    l? element:要素,該項(xiàng)只能是以下幾種要素類型之一service、port、protocol、icmp-block、masquerade和forward-port

  • service:服務(wù)名稱是firewalld提供的其中一種服務(wù)。要獲得支持的服務(wù)列表,輸入以下命令:firewall-cmd –get-services。Ruguo 一個(gè)服務(wù)提供了一個(gè)目標(biāo)地址,它和規(guī)則中的目標(biāo)地址沖突,則會(huì)導(dǎo)致一個(gè)錯(cuò)誤。命令格式為:servicename=service_name。
  • Port:端口可以是獨(dú)立端口數(shù)字、或者是端口范圍,如5060-5062。協(xié)議為T(mén)CP或UDP命令格式為:port port-number_or_range protocol=protocol.
  • Protocol:協(xié)議,可以是一個(gè)協(xié)議id好,或則是一個(gè)協(xié)議名。查詢可用協(xié)議,請(qǐng)查閱/etc/protocols。命令格式為:protocol value=protocol_name_or_ID.
  • Icmp-block:阻斷一個(gè)或多個(gè)ICMP類型,要獲得支持的ICMP類型列表輸入firewall-cmd --get-icmptypes命令即可查看,命令格式為:icmp-block name=icmptype_name。
  • Masquerade:規(guī)則里的IP偽裝。用源地址而不是目的地址來(lái)把偽裝限制在一個(gè)范圍內(nèi)。
  • Forward-port:將指定的TCP或UDP協(xié)議的數(shù)據(jù)包轉(zhuǎn)發(fā)到本機(jī)的其他端口、或另一臺(tái)機(jī)器,或另一臺(tái)機(jī)器上的其他端口。Port和to-port可以是一個(gè)單獨(dú)的端口數(shù)字,或一個(gè)端口范圍。而目的地址是一個(gè)簡(jiǎn)單的IP地址。命令格式為,forward-port port=Number_or_range protocol=protocol to-port=number_or_range to_add=address
  • l? log:注冊(cè)有內(nèi)核日志的連接請(qǐng)求到規(guī)則中、如系統(tǒng)日志,可以定義一個(gè)前綴文本把日志信息作為前綴加入,日志等級(jí)可以是emerg、alert、crit、error、warning、notice、into或debug中的一個(gè)。可以選擇日志的用法,按以下方式限制日志:log [perfix=perfix text] [level=log level] limit value=rate/duration。持續(xù)的單位為s、m、h、d、s表示秒,m表示分鐘、h表示小時(shí)、d表示天數(shù)。最大限定值是1/d(每天最多有一條日志進(jìn)入)。

    l? addit:審核,審核類型可以是accept、reject或drop中的一種,但不能在audit命令或指定。因?yàn)閷徍祟愋蛯?huì)從規(guī)則動(dòng)作中自動(dòng)收集。審核不包括自身參數(shù),但可以選擇性的增加限制。審核的使用是可選擇的。

    l? accpt|reject|drop:可以是accept、reject、或者drop中的一個(gè)行為。命令格式為accept|reject [type=reject type] |drop。指定accept時(shí),所有新的連接請(qǐng)求都將被允許。指定reject時(shí),連接將被拒絕,發(fā)起端接到一個(gè)拒絕信息。指定drop時(shí),所有數(shù)據(jù)包會(huì)被丟棄,并且不會(huì)向發(fā)起段發(fā)送任何信息。

    ?

    2.4)配置規(guī)則舉例

    ?

  • 為認(rèn)證包頭協(xié)議AH使用新的ipv4和ipv6來(lái)連接。
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'

    Success

    ?

  • 允許新的ipv4和ipv6連接FTP,并使用審核每分鐘記錄一次。
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule service name=ftplog limit value=1/m audit accept'

    Success

    ?

    3.允許來(lái)自192.168.0.0/24地址的tftp協(xié)議的ipv4連接并且使用系統(tǒng)日志沒(méi)分鐘記錄一次。

    [root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept'

    success

    4.為RADIUS協(xié)議拒絕所有來(lái)自1:2:3:4:5:6::的新ipv6連接,日志前綴為“dns”,級(jí)別為“info”,并且每分鐘最多記錄三次,接收來(lái)自其他發(fā)起端新的ipv6地址。

    [root@localhost ~]# firewall-cmd --add-rich-rule="rule family="ipv6" source address="1:2:3:4:5:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" accept"

    success

    5.將源192.168.2.2 地址加入白名單,一允許來(lái)自這個(gè)源地址的所有連接。

    [root@localhost ~]# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.2" accept"

    Success

    6.拒絕來(lái)自public區(qū)域中IP地址192.168.0.11的所有流量。

    [root@localhost ~]# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.11" reject"

    Success

    7.丟棄來(lái)自默認(rèn)區(qū)域中任何位置的所有傳入的ipsec esp協(xié)議包。

    [root@localhost ~]# firewall-cmd --zone=public --add-rich-rule='rule protocol value="esp" drop'

    Success

    8.查詢默認(rèn)區(qū)域所有的富規(guī)則:

    [root@localhost ~]# firewall-cmd --list-rich-rule

    rule protocol value="ah" accept

    rule service name="ftplog" audit limit value="1/m" accept

    rule family="ipv6" source address="1:2:3:4:5:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" accept

    rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept

    rule family="ipv4" source address="192.168.2.2" accept

    rule family="ipv4" source address="192.168.0.11" reject

    rule protocol value="esp" drop

    ?

    ?

    好了,以上就是我對(duì)firewalld的總結(jié)了,希望對(duì)你們有幫助。

    ?

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/JIAlinux/p/11236114.html

    總結(jié)

    以上是生活随笔為你收集整理的Firewalld防火墙应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。