Firewalld防火墙应用
防火墻的介紹小弟就不在這里做詳細(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):
?
下表列出了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)行操作 |
具體操作如下:
?
[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ū)域允許訪問(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)需求:
?
需求給你們了,按照需求來(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的富語(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
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ī)則舉例
?
[root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'
Success
?
[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)題。
- 上一篇: MEF初体验之五:Lazy Export
- 下一篇: pip配置永久国内源