小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux7/Centos7新特性之防火墻

 liang1234_ 2019-05-26

Rhel7防火墻

Redhat Enterprise Linux7已經(jīng)默認使用firewalld作為防火墻,其使用方式已經(jīng)變化。

基于iptables的防火墻被默認不啟動,但仍然可以繼續(xù)使用。

RHEL7中有幾種防火墻共存:firewalld、iptables、ebtables等,默認使用firewalld作為防火墻,管理工具是firewall-cmd。RHEL7的內(nèi)核版本是3.10,在此版本的內(nèi)核里防火墻的包過濾機制是firewalld,使用firewalld來管理netfilter,不過底層調(diào)用的命令仍然是iptables等。因為這幾種daemon是沖突的,所以建議禁用其他幾種服務(wù)


例如若要禁用iptables、ip6tablesebtables防火墻,方法如下圖




查看這幾種服務(wù)是否正在運行



RHEL7雖然有iptables但是不建議使用了,使用新的firewalld服務(wù)。

查看firewalld軟件包是否安裝

Firewalld提供了支持網(wǎng)絡(luò)/防火墻區(qū)域(zone)定義網(wǎng)絡(luò)鏈接以及接口安全等級的防火墻管理工具。擁有運行時配置和永久配置選項。它也支持允許服務(wù)或者應(yīng)用程序直接添加防火墻規(guī)則的接口。以前的 system-config-firewall防火墻模型是靜態(tài)的,每次修改都要求防火墻完全重啟。這個過程包括內(nèi)核 netfilter 防火墻模塊的卸載和新配置所需模塊的裝載等。相反,firewall daemon 動態(tài)管理防火墻,不需要重啟整個防火墻便可應(yīng)用更改。因而也就沒有必要重載所有內(nèi)核防火墻模塊了。


什么是區(qū)域:網(wǎng)絡(luò)區(qū)域定義了網(wǎng)絡(luò)連接的可信等級。


數(shù)據(jù)包要進入到內(nèi)核必須要通過這些zone中的一個,而不同的zone里定義的規(guī)則不一樣(即信任度不一樣,過濾的強度也不一樣)??梢愿鶕?jù)網(wǎng)卡所連接的網(wǎng)絡(luò)的安全性來判斷,這張網(wǎng)卡的流量到底使用哪個zone,比如上圖來自eth0的流量全部使用zone1的過濾規(guī)則,eth1的流量使用zone2。一張網(wǎng)卡同時只能綁定到一個zone

預(yù)定義的服務(wù):服務(wù)是端口和/或協(xié)議入口的組合。

端口和協(xié)議:定義了 tcp  udp 端口,端口可以是一個端口或者端口范圍。          

ICMP 阻塞:可以選擇 Internet控制報文協(xié)議的報文。這些報文可以是信息請求亦可是對信息請求或錯誤條件創(chuàng)建的響應(yīng)。

偽裝:私有網(wǎng)絡(luò)地址可以被映射到公開的IP地址。這是一次正規(guī)的地址轉(zhuǎn)換。

端口轉(zhuǎn)發(fā):端口可以映射到另一個端口以及/或者其他主機。

在進行firewalld配置之前,我想來討論一下區(qū)域(zones)這個概念。默認情況就有一些有效的區(qū)域。由firewalld 提供的區(qū)域按照從不信任到信任的順序排序。

·丟棄區(qū)域(Drop Zone):如果使用丟棄區(qū)域,任何進入的數(shù)據(jù)包將被丟棄。這個類似與我們之前使用iptables -j drop。使用丟棄規(guī)則意味著將不存在響應(yīng)。

·阻塞區(qū)域(Block Zone):阻塞區(qū)域會拒絕進入的網(wǎng)絡(luò)連接,返回icmp-host-prohibited,只有服務(wù)器已經(jīng)建立的連接會被通過即只允許由該系統(tǒng)初始化的網(wǎng)絡(luò)連接。

·公共區(qū)域(Public Zone):只接受那些被選中的連接,默認只允許 ssh dhcpv6-client。這個 zone 是缺省 zone

·外部區(qū)域(External Zone):這個區(qū)域相當于路由器的啟用偽裝(masquerading)選項。只有指定的連接會被接受,即ssh,而其它的連接將被丟棄或者不被接受。

·隔離區(qū)域(DMZ Zone):如果想要只允許給部分服務(wù)能被外部訪問,可以在DMZ區(qū)域中定義。它也擁有只通過被選中連接的特性,即ssh

·工作區(qū)域(Work Zone):在這個區(qū)域,我們只能定義內(nèi)部網(wǎng)絡(luò)。比如私有網(wǎng)絡(luò)通信才被允許,只允許sshipp-client dhcpv6-client。

·家庭區(qū)域(Home Zone):這個區(qū)域?qū)iT用于家庭環(huán)境。它同樣只允許被選中的連接,即ssh,ipp-clientmdnssamba-client dhcpv6-client。

·內(nèi)部區(qū)域(Internal Zone):這個區(qū)域和工作區(qū)域(Work Zone)類似,只有通過被選中的連接,和home區(qū)域一樣。

·信任區(qū)域(Trusted Zone):信任區(qū)域允許所有網(wǎng)絡(luò)通信通過。記?。阂驗?/span>trusted是最被信任的,即使沒有設(shè)置任何的服務(wù),那么也是被允許的,因為trusted是允許所有連接的

以上是系統(tǒng)定義的所有的 zone,但是這些 zone 并不是都在使用。只有活躍的zone 才有實際操作意義。

Firewalld的原則:

如果一個客戶端訪問服務(wù)器,服務(wù)器根據(jù)以下原則決定使用哪個 zone 的策略去匹配

1.如果一個客戶端數(shù)據(jù)包的源 IP 地址匹配 zone  sources,那么該 zone 的規(guī)則就適

用這個客戶端;一個源只能屬于一個zone,不能同時屬于多個zone。

2.如果一個客戶端數(shù)據(jù)包進入服務(wù)器的某一個接口(如eth0)區(qū)配zoneinterfaces

則么該 zone 的規(guī)則就適用這個客戶端;一個接口只能屬于一個zone,不能同時屬于多個zone。

3.如果上述兩個原則都不滿足,那么缺省的zone 將被應(yīng)用

你可以使用任何一種 firewalld 配置工具來配置或者增加區(qū)域,以及修改配置。工具有例如firewall-config 這樣的圖形界面工具, firewall-cmd 這樣的命令行工具,或者你也可以在配置文件目錄中創(chuàng)建或者拷貝區(qū)域文件,/usr/lib/firewalld/zones 被用于默認和備用配置,/etc/firewalld/zones被用于用戶創(chuàng)建和自定義配置文件。

命令行工具firewall-cmd支持全部防火墻特性,基本應(yīng)用如下:

一般應(yīng)用:

1、  獲取firewalld狀態(tài)

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


如果你使用--complete-reload,狀態(tài)信息將會丟失。

3、獲取支持的區(qū)域列表


這條命令輸出用空格分隔的列表

4、獲取所有支持的服務(wù)

這條命令輸出用空格分隔的列表。

服務(wù)是firewalld所使用的有關(guān)端口和選項的規(guī)則集合。被啟動的服務(wù)會在firewalld服務(wù)開啟或者運行時自動加載。默認情況下,很多服務(wù)是有效的。使用下面命令可列出有效的服務(wù)。

想要列出默認有效的服務(wù),也可以進入下面的目錄也能夠取得。

# cd /usr/lib/firewalld/services/


想要創(chuàng)建自己的服務(wù),需要在下面的目錄下定義它。比如,現(xiàn)在我想添加一個rhmp服務(wù),端口號1935。首先,任選一個服務(wù)復(fù)制過來。


接下來把復(fù)制過來的文件重命名為“rtmp.xml


接下來打開并編輯文件的頭部、描述、協(xié)議和端口號,以供RTMP服務(wù)使用,如下圖所示。


重啟firewalld服務(wù)或者重新加載設(shè)置,以激活這些設(shè)置。

# firewall-cmd --reload

為確認服務(wù)是否已經(jīng)啟動,運行下面的命令獲取有效的服務(wù)列表。

# firewall-cmd --get-services

5、獲取所有支持的ICMP類型


這條命令輸出用空格分隔的列表。

6、列出全部啟用的區(qū)域的特性(即查詢當前防火墻策略)

解釋:特性可以是定義的防火墻策略,如:服務(wù)、端口和協(xié)議的組合、端口/數(shù)據(jù)報轉(zhuǎn)發(fā)、偽裝、ICMP 攔截或自定義規(guī)則等

上面的命令將會列出每種區(qū)域如block、dmzdrop、externalhome、internal、public、trusted以及work。如果區(qū)域還有其它詳細規(guī)則(rich-rules)、啟用的服務(wù)或者端口,這些區(qū)域信息也會分別被羅列出來

7、輸出區(qū)域全部啟用的特性。如果省略區(qū)域,將顯示默認區(qū)域的信息。

firewall-cmd [--zone=] --list-all

輸出指定區(qū)域啟動的特性


8、查看默認區(qū)域


public區(qū)域是默認區(qū)域。

在文件/etc/firewalld/firewalld.conf中定義成DefaultZone=public。

9、設(shè)置默認區(qū)域

firewall-cmd --set-default-zone=區(qū)域名

流入默認區(qū)域中配置的接口的新訪問請求將被置入新的默認區(qū)域。當前活動的連接將不受影響。

10、獲取活動的區(qū)域


這條命令將用以下格式輸出每個區(qū)域所含接口:

區(qū)域名

interfaces :  接口名

11、根據(jù)接口獲取區(qū)域即需要查看哪個區(qū)域和這個接口綁定即查看某個接口是屬于哪個zone的:

firewall-cmd --get-zone-of-interface=接口名

這條命令將輸出接口所屬的區(qū)域名稱。

12、將接口(網(wǎng)卡)增加到區(qū)域

firewall-cmd [--zone=] --add-interface=接口名


如果接口不屬于區(qū)域,接口將被增加到區(qū)域。如果區(qū)域被省略了,將使用默認區(qū)域。接口在重新加載后將重新應(yīng)用。

13、修改接口所屬區(qū)域

firewall-cmd [--zone=] --change-interface=接口名

這個選項與--add-interface 選項相似,但是當接口已經(jīng)存在于另一個區(qū)域的時候,該接口將被添加到新的區(qū)域。

14、從區(qū)域中刪除一個接口

firewall-cmd [--zone=] --remove-interface=接口名

注:如果某個接口不屬于任何Zone,那么這個接口的所有數(shù)據(jù)包使用默認的Zone的規(guī)則

15、查詢區(qū)域中是否包含某接口

firewall-cmd [--zone=] --query-interface=接口名

如果區(qū)域被省略了,將使用默認區(qū)域

16、列舉區(qū)域中啟用的服務(wù)

firewall-cmd [ --zone= ] --list-services

如果區(qū)域被省略了,將使用默認區(qū)域

查看home區(qū)域中啟用服務(wù)

17、啟用應(yīng)急模式阻斷所有網(wǎng)絡(luò)連接,以防出現(xiàn)緊急狀況


18、禁用應(yīng)急模式

firewall-cmd --panic-off

19、查詢應(yīng)急模式

firewall-cmd --query-panic

其他相關(guān)的配置項可以查看firewall-cmd的手冊頁:#man  firewall-cmd

處理運行時區(qū)域:

運行時模式下對區(qū)域進行的修改不是永久有效的。重新加載或者重啟后修改將失效。

1、啟用區(qū)域中的一種服務(wù)即給某個區(qū)域開啟某個服務(wù)

firewall-cmd [--zone=區(qū)域] --add-service=服務(wù) [--timeout=秒數(shù)]

此操作啟用區(qū)域中的一種服務(wù)。如果未指定區(qū)域,將使用默認區(qū)域。如果設(shè)定了超時時間,服務(wù)將只啟用特定秒數(shù)。

使區(qū)域中的ipp-client 服務(wù)生效60:

啟用默認區(qū)域中的http服務(wù):firewall-cmd--add-service=http

2、禁用區(qū)域中的某種服務(wù)即關(guān)閉某個服務(wù)

firewall-cmd [--zone=區(qū)域] --remove-service=服務(wù)

此舉禁用區(qū)域中的某種服務(wù)。如果未指定區(qū)域,將使用默認區(qū)域。

:禁止默認區(qū)域中的 http 服務(wù):

3、查詢區(qū)域中是否啟用了特定服務(wù)

firewall-cmd [--zone=區(qū)域] --query-service=服務(wù)

Yes表示服務(wù)啟用,no表示服務(wù)關(guān)掉了。

4、啟用區(qū)域端口和協(xié)議組合

firewall-cmd [--zone=區(qū)域] --add-port=portid[-portid]/protocol[--timeout=seconds]

此操作將啟用端口和協(xié)議的組合。端口可以是一個單獨的端口或者是一個端口范圍 - 。協(xié)議可以是tcpudp

5、禁用端口和協(xié)議組合

firewall-cmd [--zone=區(qū)域] --remove-port=portid[-portid]/protocol

6、查詢區(qū)域中是否啟用了端口和協(xié)議組合

firewall-cmd [--zone=區(qū)域] --query-port=portid[-portid]/protocol

7啟用區(qū)域中的 IP 偽裝功能

firewall-cmd [--zone=區(qū)域]--add-masquerade

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

8、禁用區(qū)域中的 IP 偽裝

firewall-cmd [--zone=區(qū)域]--remove-masquerade

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

firewall-cmd [--zone=區(qū)域]--query-masquerade

注意:啟用偽裝功能的主機同時也需要開啟轉(zhuǎn)發(fā)服務(wù):

#echo 1 > /proc/sys/net/ipv4/ip_forward

#vi  /etc/sysctl.conf   添加如下內(nèi)容

net.ipv4.ip_forward  =  1

保存退出并執(zhí)行#sysctl  -p使修改生效

10、啟用區(qū)域的 ICMP 阻塞功能

firewall-cmd [--zone=區(qū)域] --add-icmp-block=icmp類型

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

11、禁止區(qū)域的 ICMP 阻塞功能

firewall-cmd [--zone=區(qū)域] --remove-icmp-block=icmp類型

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

firewall-cmd [--zone=區(qū)域] --query-icmp-block=icmp類型

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

firewall-cmd [--zone=區(qū)域] --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][ :toaddr=address [/mask]]

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

意思是凡是來從external進來的22端口的數(shù)據(jù)包全部轉(zhuǎn)發(fā)到211.106.65.50

firewall-cmd --zone=external--add-forward-port=port=22:proto=tcp:toaddr=211.106.65.50

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

firewall-cmd [--zone=]--remove-forward-port=port=portid[-portid]:proto=protocol[ :toport=portid[-portid]][:toaddr=address [/mask]]

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

firewall-cmd [--zone=]--query-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][ :toaddr=address [/mask]]

處理永久區(qū)域:

永久選項不直接影響運行時的狀態(tài)。這些選項僅在重載或者重啟服務(wù)時可用。為了使用運行時和永久設(shè)置,需要分別設(shè)置兩者。選項--permanent需要是永久設(shè)置的第一個參數(shù)。

1、獲取永久選項所支持的服務(wù)

firewall-cmd --permanent --get-services

2、獲取永久選項所支持的ICMP類型列表

firewall-cmd --permanent --get-icmptypes

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

firewall-cmd --permanent --get-zones

4、配置防火墻在public區(qū)域打開http協(xié)議,并保存,以致重啟有效

firewall-cmd --permanent --zone=public --add-service=http

查看永久模式下public區(qū)域是否打開http服務(wù)。

firewall-cmd --permanent --zone=public --query-service=http

5、防火墻開放8080端口在public區(qū)域

firewall-cmd --permanent--zone=public --add-port=8080/tcp

6、命令行配置富規(guī)則:

  查看富規(guī)則:# firewall-cmd --list-rich-rules

  創(chuàng)建富規(guī)則:

  firewall-cmd --add-rich-rule 'rule family=ipv4 sourceaddress=10.35.89.0/24 service  name=ftp  log prefix="ftp" level=info accept'  --permanent

  firewall-cmd --add-rich-rule 'rule family=ipv4 sourceaddress=10.35.89.0/24 port port=80 protocol=tcp   log prefix="80" level=info accept'--permanent

  firewall-cmd --add-rich-rule rule family="ipv4" sourceaddress="192.168.10.30" forward-port port="808"protocol="tcp" to-port="80" to-addr="10.10.10.2"

   富規(guī)則中使用偽裝功能可以更精確詳細的限制:

   firewall-cmd--add-rich-rule 'rule family=ipv4 source address=10.10.10.2/24  masquerade'

   僅允許部分IP訪問本機服務(wù)配置

firewall-cmd --permanent--zone=public --add-rich-rule="rule family="ipv4"

source address="192.168.0.0/24"service name="http" accept"

禁止遠程IP訪問ssh

firewall-cmd --permanent--zone=public --add-rich-rule=’rule family=ipv4

source address=192.168.0.0/24service name=ssh reject’

7、刪除rich規(guī)則

firewall-cmd --permanent--zone=public --remove-rich-rule=’rule family=ipv4

source address=192.168.0.0/24service name=ssh reject’

8、僅允許部分IP訪問本機端口配置

firewall-cmd --permanent--zone=public --add-rich-rule="rule family="ipv4"

sourceaddress="192.168.0.0/24"port protocol="tcp"port="8080" accept"                 

9、創(chuàng)建rich規(guī)則,可以指定日志的前綴和輸出級別

firewall-cmd --permanent--zone=public --add-rich-rule="rule family="ipv4" sourceaddress="192.168.0.4/24"port port=8080 protocol="tcp" logprefix=proxy level=warning accept"

可以通過查看/var/log/messages日志文件

10端口轉(zhuǎn)發(fā)。實驗環(huán)境下,desktop訪問server5423端口,將訪問server80端口。

Server上的操作:(172.25.0.10desktopIP地址)

11、172.25.1.0/24網(wǎng)段內(nèi)的客戶端不能訪問主機的SSH


12、也可通過配置以下XML文件,進行對防火墻的配置修改

#cat/etc/firewalld/zones/public.xml

<?xmlversion="1.0" encoding="utf-8"?>

<zone>

<short>Public</short>

<description>Foruse in public areas. You do not trust the other computers on networks

to notharm your computer. Only selected incoming connections areaccepted.</description>

<servicename="dhcpv6-client"/>

<servicename="ssh"/>

<rulefamily="ipv4">

<sourceaddress="192.168.0.4/24"/>

<servicename="http"/>

<accept/>

</rule>

</zone>

總結(jié)

netfilter 防火墻總是容易受到規(guī)則順序的影響,因為一條規(guī)則在鏈中沒有固定的位置。在一條規(guī)則之前添加或者刪除規(guī)則都會改變此規(guī)則的位置。在靜態(tài)防火墻模型中,改變防火墻就是重建一個干凈和完善的防火墻設(shè)置,默認鏈通常也沒有安全的方式添加或刪除規(guī)則而不影響其他規(guī)則。

動態(tài)防火墻有附加的防火墻功能鏈。這些特殊的鏈按照已定義的順序進行調(diào)用,因而向鏈中添加規(guī)則將不會干擾先前調(diào)用的拒絕和丟棄規(guī)則。從而利于創(chuàng)建更為合理完善的防火墻配置。

下面是一些由守護進程創(chuàng)建的規(guī)則,過濾列表中啟用了在公共區(qū)域?qū)?/span> ssh , mdns ipp-client 的支持:

總結(jié):

圖形化配置工具

firewall daemon 主要的配置工具是firewall-config。它支持防火墻的所有特性。管理員也可以用它來改變系統(tǒng)或用戶策略。

命令行客戶端

firewall-cmd是命令行下提供大部分圖形工具配置特性的工具。

附錄:要想了解更多firewall防火墻更多知識可以查看firewall的相關(guān)手冊頁,下圖所顯示的就是firewall防火墻的相關(guān)手冊頁:

若要查看rich-rule手冊頁



例如:允許icmp協(xié)議的數(shù)據(jù)包通信



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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多