防火墻介紹
防?墻是保護(hù)機(jī)器不受來?外部的、不需要的?絡(luò)數(shù)據(jù)的?種?式。它允許??通過定義?組防
?墻規(guī)則來控制主機(jī)上的?站?絡(luò)流量。這些規(guī)則?于對(duì)進(jìn)?的流量進(jìn)?排序,并可以阻斷或允
許流量。
firewalld 是?個(gè)防?墻服務(wù)守護(hù)進(jìn)程
firewalld 使?區(qū)和服務(wù)的概念來簡(jiǎn)化流量管理。
----zones 是預(yù)定義的規(guī)則集。?絡(luò)接?和源可以分配給區(qū)。允許的流量取決于您計(jì)算機(jī)連接到的?絡(luò),并分配了這個(gè)?絡(luò)的安全級(jí)別。
----防?墻服務(wù)是預(yù)定義的規(guī)則,覆蓋了允許特定服務(wù)進(jìn)?流量的所有必要設(shè)置,并在區(qū)中應(yīng)?。
服務(wù)使??個(gè)或多個(gè)端?或地址進(jìn)??絡(luò)通信。防?墻會(huì)根據(jù)端?過濾通訊。要允許服務(wù)的?絡(luò)
流量,必須打開其端?。 firewalld 會(huì)阻?未明確設(shè)置為打開的端?的所有流量。?些區(qū)
(如可信區(qū))默認(rèn)允許所有流量。
zones
可以根據(jù)??對(duì)該?絡(luò)中的接?和流量設(shè)置的信任程度,使? firewalld 來將?絡(luò)劃分為
不同的區(qū)。?個(gè)連接只能是?個(gè)區(qū)的?部分,但?個(gè)區(qū)可以被?來進(jìn)?很多?絡(luò)連接。
已經(jīng)存在的預(yù)定義的區(qū)存儲(chǔ)在 /usr/lib/firewalld/zones/ 文件中
[redhat@bogon ansible]$ ll /usr/lib/firewalld/zones/
total 44
-rw-r--r--. 1 root root 299 Jul 30 2021 block.xml
-rw-r--r--. 1 root root 293 Jul 30 2021 dmz.xml
-rw-r--r--. 1 root root 291 Jul 30 2021 drop.xml
-rw-r--r--. 1 root root 304 Jul 30 2021 external.xml
-rw-r--r--. 1 root root 397 Jul 30 2021 home.xml
-rw-r--r--. 1 root root 412 Jul 30 2021 internal.xml
-rw-r--r--. 1 root root 809 Nov 27 2019 libvirt.xml
-rw-r--r--. 1 root root 729 Aug 18 2021 nm-shared.xml
-rw-r--r--. 1 root root 343 Jul 30 2021 public.xml
-rw-r--r--. 1 root root 162 Jul 30 2021 trusted.xml
-rw-r--r--. 1 root root 339 Jul 30 2021 work.xml
各個(gè)文件介紹
block.xml 任何傳?的?絡(luò)連接都會(huì)被拒絕 ,只有從系統(tǒng)啟動(dòng)的?絡(luò)連接才能進(jìn)?。
dmz.xml 對(duì)于您的?企業(yè)化區(qū)?的計(jì)算機(jī)來說,這些計(jì)算機(jī)可以被公開訪問,且有限訪問您的內(nèi)部?絡(luò)。只接受所選的?站連接。
drop.xml 所有傳?的?絡(luò)數(shù)據(jù)包都會(huì)丟失,沒有任何通知。只有外發(fā)?絡(luò)連接也是可?的。
external 適?于啟?了偽裝的外部?絡(luò),特別是路由器。您不信任?絡(luò)中的其他計(jì)算機(jī)不會(huì)損害您的計(jì)算機(jī)。只接受所選的?站連接。
home.xml ?于家?,因?yàn)槟梢孕湃纹渌?jì)算機(jī)。只接受所選的?站連接。
internal.xml 當(dāng)您主要信任?絡(luò)中的其他計(jì)算機(jī)時(shí),供內(nèi)部?絡(luò)使?。只接受所選的?站連接。
public.xml 可?于您不信任?絡(luò)中其他計(jì)算機(jī)的公共區(qū)域。只接受所選的?站連接
trusted.xml 所有?絡(luò)連接都被接受。
work.xml 可?于您主要信任?絡(luò)中其他計(jì)算機(jī)的?作。只接受所選的?站連接。
安裝防火墻時(shí),默認(rèn)在public區(qū)域
預(yù)定義服務(wù)
服務(wù)可以是本地端?、協(xié)議、源端?和?的地列表,并在啟?了服務(wù)時(shí)?動(dòng)載?防?墻幫助程序
模塊列表。使?服務(wù)可節(jié)省??時(shí)間,因?yàn)樗鼈兛梢酝瓿?些任務(wù),如打開端?、定義協(xié)議、啟
?數(shù)據(jù)包轉(zhuǎn)發(fā)等等,?不必在另外的步驟中設(shè)置所有任務(wù)。
服務(wù)配置選項(xiàng)和通??件信息在 firewalld.service(5) ?冊(cè)?中進(jìn)?了描述。
可 使 ? 圖 形 化 的 firewall-config ? 具 、 firewall-cmd 和 firewall-offline-cmd來添加和刪除服務(wù)。
或者可以在 /etc/firewalld/services/ 目錄中編輯xml 文件,如果??沒有添加或更改服務(wù),則在 /etc/firewalld/services/ 中找不到相應(yīng)的xml文件,如果要添加或更改服務(wù),/usr/lib/firewalld/services/文件可以作為參考
firewalld啟動(dòng)與停止
請(qǐng)?jiān)趓oot身份下進(jìn)行啟動(dòng)停止操作
開啟
systemctl unmask firewalld
systemctl start firewalld
關(guān)閉
systemctl stop firewalld
systemctl disable firewalld
unmask: 將不標(biāo)記 firewalld 服務(wù) ,如果為 mask 無論怎么都不啟動(dòng)防火墻
stop: 停止防火墻,重新啟動(dòng)系統(tǒng)時(shí)還是會(huì)重新啟動(dòng)防護(hù)墻
disable: 在系統(tǒng)重新啟動(dòng)時(shí)也不啟動(dòng)防火墻
查看firewalld當(dāng)前狀態(tài)和設(shè)置
firewarll-cmd --state 顯示狀態(tài)
systemctl status firewalld.service 更詳細(xì)的
使? CLI 查看 firewalld 設(shè)置
firewalld 使?區(qū)來管理流量。如果沒有通過 --zone 指定區(qū)域,則 該命令會(huì)將其分配到默認(rèn)的區(qū)域
列出默認(rèn)區(qū)所以相關(guān)信息
firewall-cmd --list-all
列出指定區(qū)域的相關(guān)信息
firewall-cmd --list-all --zone=block
查看幫助信息
irewall-cmd --help
firewalld控制流量
firewalld 軟件包安裝?量預(yù)定義的服務(wù)?件,您可以添加更多或?定義它們。然后,您可以使?這些服務(wù)定義為服務(wù)打開或關(guān)閉端?,??需了解這些服務(wù)使?的協(xié)議和端?號(hào)。
使? CLI 禁?緊急事件的所有流量
1,要?即禁??絡(luò)流量,請(qǐng)切換 panic 模式:
啟? panic 模式可停?所有?絡(luò)流量。因此,只有當(dāng)您具有對(duì)機(jī)器的物理訪問權(quán)限或使?串?控制臺(tái)登錄時(shí),才應(yīng)使?它。
firewall-cmd --panic-on
使? CLI 控制預(yù)定義服務(wù)的流量
控制流量的最簡(jiǎn)單的?法是在 firewalld 中添加預(yù)定義的服務(wù),這會(huì)打開所有必需的端?并根據(jù) 服務(wù)定義?件 修改其他設(shè)置。
列出被添加的服務(wù)
firewall-cmd --list-services
列出所有的預(yù)定義服務(wù)
firewall-cmd --get-services
在允許的服務(wù)中添加服務(wù)
firewall-cmd --add-service=http 默認(rèn)在默認(rèn)區(qū)域添加,但是重載后該服務(wù)就會(huì)不見,需要重新添加
永久添加這個(gè)服務(wù)
firewall-cmd --add-service=http --permanent 重載后也不會(huì)不見
使? CLI 控制端?
端?是可讓操作系統(tǒng)接收和區(qū)分?絡(luò)流量并將其轉(zhuǎn)發(fā)到系統(tǒng)服務(wù)的邏輯設(shè)備。它們通常由偵聽端?的守護(hù)進(jìn)程來表?,它會(huì)等待到達(dá)這個(gè)端?的任何流量。
通常,系統(tǒng)服務(wù)偵聽為它們保留的標(biāo)準(zhǔn)端?。例如, httpd 守護(hù)進(jìn)程監(jiān)聽 80 端?。但默認(rèn)情況下,系統(tǒng)管理員會(huì)將守護(hù)進(jìn)程配置為在不同端?上偵聽以便增強(qiáng)安全性或出于其他原因。
打開端口
通過打開端?,系統(tǒng)可從外部訪問,這代表了安全?險(xiǎn)。通常,讓端?保持關(guān)閉,且只在某些服務(wù)需要時(shí)才打開。
列出所有允許的端口
firewall-cmd --list-ports
在允許的端?中添加?個(gè)端?,以便為?站流量打開這個(gè)端?
firewall-cmd --add-port=80/tcp 添加80端口,類型為tcp
端?類型為 tcp,udp ,sctp,dccp 這個(gè)類型必須與?絡(luò)通信的類型匹配
關(guān)閉端口
當(dāng)打開的端?不再需要時(shí),在 firewalld 中關(guān)閉此端?。強(qiáng)烈建議您盡快關(guān)閉所有不必要的端?,因?yàn)槎?處于打開狀態(tài)會(huì)存在安全隱患。
從允許的端口中刪除端口,以便對(duì)傳?的流量關(guān)閉
firewall-cmd --remove-port=80/tcp
使用 firewalld 區(qū)
zones 代表?種更透明管理傳?流量的概念。這些區(qū)域連接到聯(lián)?接?或者分配?系列源地址。您可以獨(dú)?為每個(gè)區(qū)管理防?墻規(guī)則,這樣就可以定義復(fù)雜的防?墻設(shè)置并將其應(yīng)?到流量。
列出系統(tǒng)中可用的區(qū)域
firewall-cmd --get-zones
查看所有系統(tǒng)中可用區(qū)的詳細(xì)信息:
firewall-cmd --list-all-zones
更改特定區(qū)的 firewalld 設(shè)置
例如,要允許在區(qū)public 中使? SSH 服務(wù)
firewall-cmd --add-service=ssh --zone=public
更改默認(rèn)區(qū)
系統(tǒng)管理員在其配置?件中為?絡(luò)接?分配區(qū)域。如果接?沒有被分配給指定區(qū),它將被分配給默認(rèn)區(qū)。每次重啟 firewalld 服務(wù)后,firewalld 會(huì)加載默認(rèn)區(qū)的設(shè)置,并使其處于活動(dòng)狀態(tài)。
當(dāng)系統(tǒng)的前默認(rèn)區(qū)
firewall-cmd --get-default-zone
設(shè)置默認(rèn)區(qū)為home區(qū)
firewall-cmd --set-default-zone home
將網(wǎng)絡(luò)接口分配給區(qū)
列出活躍區(qū)以及分配給它們的接?
[root@bogon ~]# firewall-cmd --get-active-zones
public
interfaces: ens160
使用nmcli 命令為連接分配區(qū)域
nmcli connection modify ens160 connection.zone public 分配到public區(qū)
創(chuàng)建?個(gè)新區(qū)
要使??定義區(qū),創(chuàng)建?個(gè)新的區(qū)并使?它像預(yù)定義區(qū)?樣。新區(qū)需要 --permanent 選項(xiàng),否則命令?法正常?作。
例:創(chuàng)建?個(gè)新區(qū)testzone
[root@bogon ~]# firewall-cmd --new-zone=testzone --permanent
[root@bogon ~]# firewall-cmd --reload
success
[root@bogon ~]# firewall-cmd --get-zones
block dmz drop external home internal libvirt nm-shared public testzone trusted work
可在文件 /etc/firewalld/zones/ 中看到新建的區(qū)
使?區(qū)?標(biāo)設(shè)定傳?流量的默認(rèn)?為
對(duì)于每個(gè)區(qū),您可以設(shè)置?種處理尚未進(jìn)?步指定的傳?流量的默認(rèn)?為。此?為是通過設(shè)置區(qū)的?標(biāo)來定義的。有四個(gè)選項(xiàng):
ACCEPT :接受除特定規(guī)則不允許的所有傳?的數(shù)據(jù)包。
REJECT :拒絕所有傳?的數(shù)據(jù)包,但特定規(guī)則允許的數(shù)據(jù)包除外。當(dāng)firewalld 拒絕數(shù)據(jù)包時(shí),源 機(jī)器會(huì)發(fā)出有關(guān)拒絕的信息。
DROP:除?由特定規(guī)則允許,丟棄所有傳?數(shù)據(jù)包。當(dāng)firewalld 丟棄數(shù)據(jù)包時(shí),源 機(jī)器不會(huì)發(fā)出有關(guān)丟棄的信息。
default:與 REJECT 的?為類似,但在某些情況下有特殊含義。詳情請(qǐng)查看 firewalld-cmd(1)man page 中的 Options to Adapt and Query Zones and Policies 部分。
列出特定區(qū)的信息以查看默認(rèn)?標(biāo):
[root@bogon ~]# firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client http ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
給區(qū)設(shè)定新的目標(biāo)
firewall-cmd --permanent --zone=public --set-target=ACCEPT
綜合運(yùn)用
定義2個(gè)虛擬機(jī)node1,node2
1,在node1主機(jī)上配置chrony時(shí)間服務(wù)器,將該主機(jī)作為時(shí)間服務(wù)器。
2,在node1主機(jī)上創(chuàng)建防火墻區(qū)域testzone,將node1主機(jī)網(wǎng)絡(luò)接口接入該區(qū)域
3,在node1將該防火定義為允許chrony服務(wù)通過。
4,在node2主機(jī)上配置chrony時(shí)間客戶段,該主機(jī)將node1主機(jī)作為時(shí)間源服務(wù)器
5,配置完防火墻服務(wù)后,node1和node2主機(jī)的時(shí)間服務(wù)器可正常工作。
大概思路:
1,首先要知道2個(gè)主機(jī)的ip ,在各自主機(jī)中配置chrony服務(wù)器,服務(wù)端的時(shí)間向真正的網(wǎng)絡(luò)中請(qǐng)求,客戶端的時(shí)間向主機(jī)node1請(qǐng)求
2,時(shí)間服務(wù)器配置準(zhǔn)備好了后,再到node1上配置防火墻,防火墻不能關(guān)閉,導(dǎo)致node2不能直接獲取到node1時(shí)間,所以為了客戶端訪問到node1 的時(shí)間就需要在node1進(jìn)行防火墻操作,怎么操作?
3,先知道node1 主機(jī)對(duì)chrony 監(jiān)聽的端口,然后將這個(gè)端口以及對(duì)應(yīng)的協(xié)議添加到testznoe 區(qū)域。
步驟
步驟1: 首先要知道服務(wù)器和客戶的ip地址或者主機(jī)名字,如下:
客戶端:192.168.190.128
服務(wù)器:192.168.190.129
2,更改臨時(shí)主機(jī)名
192.168.190.128 設(shè)置為 node2
192.168.190.129 設(shè)置為 node1
3, 時(shí)間服務(wù)器的配置
客戶端和服務(wù)端需要事先安裝時(shí)間服務(wù)器的軟件
對(duì)node1
[root@node1]# vim /etc/chrony.conf 配置時(shí)間服務(wù)器的文件
在該文件中寫入:
pool 2.rhel.pool.ntp.org iburst 服務(wù)器請(qǐng)求網(wǎng)絡(luò)中的源
allow 192.168.190.128/24 允許來請(qǐng)求時(shí)間的主機(jī)
保存退出重新啟動(dòng)chronyd
對(duì)node2
[root@node2]# vim /etc/chrony.conf 配置時(shí)間服務(wù)器的文件
在該文件中寫入:
pool 192.168.190.129 iburst
保存退出重新啟動(dòng)chronyd
到這里的時(shí)候我們嘗試用客戶端(node2)請(qǐng)求時(shí)間,發(fā)現(xiàn)怎么請(qǐng)求也不能得到時(shí)間
因?yàn)榉?wù)器開啟的,沒有允許chrony服務(wù)通過
4,node1 主機(jī)的防火墻設(shè)置
(1),創(chuàng)建防火墻區(qū)域testzone
[root@node1]# firewall-cmd --new-zone=testzone --permanent
(2)node1主機(jī)網(wǎng)絡(luò)接口接入該區(qū)域
[root@node1]# nmcli c modify ens160 connection.zone testzone
重新載入
[root@node1]# firewall-cmd --reload
查看正活動(dòng)的區(qū)域
[root@node1]# firewall-cmd --get-active-zones
testzone
interfaces: ens160
查看chrony 服務(wù)的端口,發(fā)現(xiàn)chrony 服務(wù)端口為123 ,udp協(xié)議
[root@node1]# netstat -lntup | grep chrony
udp 0 0 127.0.0.1:323 0.0.0.0:* 3747/chronyd
udp 0 0 0.0.0.0:123 0.0.0.0:* 3747/chronyd
udp6 0 0 ::1:323 :::* 3747/chrony
(3)防火墻允許chrony 服務(wù)通過
[root@node1]# firewall-cmd --permanent --add-port=123/udp --zone=testzone
重新加載
[root@node1]# firewall-cmd --permanent --set-target=ACCEPT --zone=testzone
重新加載
查看testzone 區(qū)
[root@bogon ~]# firewall-cmd --list-all --zone=testzone
testzone (accept)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services:
ports: 123/udp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
最后到node2 主機(jī)再次請(qǐng)求時(shí)間,發(fā)現(xiàn)隔一會(huì)就好了文章來源:http://www.zghlxwxcb.cn/news/detail-758854.html
查看node2 chrony 發(fā)現(xiàn)有來自 服務(wù)器:192.168.190.129 的記錄文章來源地址http://www.zghlxwxcb.cn/news/detail-758854.html
到了這里,關(guān)于Linux:防火墻設(shè)置操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!