linux firewalld防火牆配置

2021-10-08 00:00:48 字數 4515 閱讀 5711

​ firewalld防火牆為了簡化管理,將所有網路流量分為多個區域(zone)。然後要所資料報的源ip位址或傳入的網路介面條件等將流量傳入相應區域。每個區域都定義了自己開啟或關閉的埠服務列表。其中預設區域為public區域,trusted區域預設允許所有流量通過,是乙個特殊的區域。

區域名稱預設配置說明

trusted

允許所有的傳入流量

home

允許與ssh、mdns、ipp-client、samba-client或dhcpv6-client預定義服務匹配的傳入流量,其餘均拒絕

internal

預設值時與home區域相同

work

允許與ssh、ipp-client或dhcpv6-client預定義服務匹配的傳入流量,其餘均拒絕

public

允許與ssh或dhcpv6-client預定義服務匹配的傳入流量,其餘均拒絕。是新新增網路介面的預設區域。

external

允許與ssh預定義服務匹配的傳入流量,其餘均拒絕。預設將經過此區域**的ipv4位址傳出流量進行位址偽裝。

dmz允許與ssh預定義服務匹配的傳入流量,其餘均拒絕。

block

拒絕所有傳入流量

drop

丟棄所有傳入流量

​ 使用者可以根據具體環境選擇使用區域。管理員也可以對這些區域進行自定義,使其具有不同的設定規則。

​ 在流量經過防火牆時,firewalld防火牆會對傳入的每個資料報進行檢查,如果此資料報的源位址關聯到特定的區域,則會應用該區域的規則對此資料報進行處理,如果該源位址沒有關聯到任何區域,則將使用傳入網路介面所在的區域規則進行處理。如果流量與不允許的埠、協議或者服務匹配,則防火牆拒絕傳入流量。

​ firewall-cmd是firewalld防火牆自帶段字元管理工具,可以用來設定firewalld防火牆段各種規則。

​ firewalld的兩種狀態:

例子:

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

runtime狀態,立即生效,過載或重啟消失

firewall-cmd --add-service=http ----zone=public --permanent permanent狀態,不立即生效,過載或重啟生效

firewall-cmd命令說明

–get-default-zone

檢視當前預設區域

–get–active-zones

列出當前正在使用的區域及其所對應的網絡卡介面

–get-zones

列出所有可用的區域

–set-default-zone=

設定預設區域(注意此命令會同時修改執行時配置和永久配置)

–add-source=[–zone=]

將來自ip位址或網段的所有流量路由到指定區域,沒有指定區域時使用預設區域。

–remove-source=[–zone=從指定區域中刪除來自ip位址或網段的所有路由流量規則,沒有指定區域時使用預設區域。

–add-inte***ce=[–zone=將來自該介面的所有流量都路由到指定區域。沒有指定區域時使用預設區域。

–change-inte***ce=[–zone=將介面與指定區域做關聯,沒有指定區域時使用預設區域。

–list-all[–zone=列出指定區域已配置介面、源、服務、埠等資訊,沒有指定區域時使用預設區域。

–add-service=[–zone=允許到該服務的流量通過指定區域,沒有指定區域時使用預設區域。

–remove-service=[–zone=從指定區域的允許列表中刪除該服務,沒有指定區域時使用預設區域。

–add-port=[–zone=允許到該埠的流量通過指定區域,沒有指定區域時使用預設區域。

–remove-port=[–zone=從指定區域的允許列表中刪除該埠,沒有指定區域時使用預設區域。

檢視預設區域:

firewall-cmd --get-default-zone

列出當前正在使用的區域及其所對應的網絡卡介面

firewall-cmd --get-active-zones

列出所有可用的區域

firewall-cmd --get-zones

設定預設區域

firewall-cmd --set-default-zone=block

檢視預定義服務

firewall-cmd --get-services

新增http服務到public區域

檢視public區域已配置的規則

firewall-cmd --list-all --zone=public

移除pyblic區域的http服務,不使用–zone制定區域時使用預設區域

將多個服務新增到某乙個區域,不新增–permanent選項表示立即生效的臨時設定

允許tcp的3306埠到public區域

firewall-cmd --add-port=3306/tcp

從public區域將tcp的3306埠移除

firewall-cmd --remove-port=3306/tcp

允許某一範圍的埠,如允許udp的2048-2050埠到public區域

firewall-cmd --add-port=2048-2050/udp --zone=public

使用–list-port檢視加入的埠操作是否成功

firewall-cmd --list-ports

​ 通過位址偽裝,nat裝置將經過裝置的包**到指定的接收方,同時將通過的資料報

源位址更改為其nat裝置自己的介面位址。當返回的資料報到達時,會將目的位址修改

為原始主機的位址並做路由。位址偽裝可以實現區域網多個位址共享單一公網位址上網。類似於nat技術中的埠多路復用(pat)。ip位址偽裝僅支援ipv4,不支援ipv6。

firewall-cmd --query-masquerade # 檢查是否允許偽裝ip

firewall-cmd --permanent --add-masquerade # 允許防火牆偽裝ip

firewall-cmd --permanent --remove-masquerade# 禁止防火牆偽裝ip

​ 當我們想把某個埠隱藏起來的時候,就可以在防火牆上阻止那個埠訪問,然後再開乙個不規則的埠,之後配置防火牆的埠**,將流量**過去。

乙個介面只能對應乙個區域,將介面與指定區域關聯

firewall-cmd --change-inte***ce=ens75 --zone=drop

根據不同的訪問**網段,設定至不同的區域規則

firewall-cmd --add-source=192.168.75.0/24 --zone=public

firewall-cmd --add-source=192.168.85.0/24 --zone=drop

firewall-cmd --get-active-zones

建議配置方案

將所有介面劃分到對應的區域,

根據網段配置至不同的區域,

不同的區域配置不同的規則。

linux firewalld 防火牆設定

在centos7開始,預設是沒有iptables的,而是使用了firewalld防火牆.可能用到的命令 操作命令 啟動firewalld服務 systemctl start firewalld.service 關閉firewalld服務 systemctl stop firewalld.servic...

linux firewalld防火牆的使用

關閉 systemctl stop firewalld 檢視狀態 systemctl status firewalld 開機禁用 systemctl disable firewalld 開機啟用 systemctl enable firewalld關閉乙個服務 systemctl stop fire...

單例模式(防繼承,防轉殖)

單列模式 1.普通類 class singleton s1 new singleton s2 new singleton 注意,2個變數是同1個物件的時候才全等 if s1 s2 else 2.封鎖new操作 class singleton s1 new singleton php fatal er...