在某些方面,systemd 系統上的 firewalld 比 iptables 更容易管理和配置。在大多數情況下,您無需記住長鏈、跳轉、接受和拒絕即可在基本配置中配置和運行防火牆。規則很簡單,但仍然沒有理由不能獲得 iptables 提供的所有內容。
使用命令行實用程序的防火牆 防火牆命令 配置和使用規則。在開始配置之前,您需要確保服務正在運行。利用 系統控制 您可以使用命令來啟用、禁用、啟動、停止和重新啟動 firewalld 服務。這些命令中的大多數都沒有有意義的輸出 系統控制要檢查每一個,您應該始終檢查 firewalld 的狀態。
Systemctl 和防火牆
啟用防火牆
這將導致 firewalld 在服務器上自動啟動。
systemctl enable firewalld
啟用防火牆
啟用 Firewalld 服務後,您必須先手動啟動它。如果 firewalld 尚未運行,如何手動啟動它?
systemctl start firewalld
停止防火牆
在對規則和連接問題進行故障排除時,您可能需要暫時停止 fireawlld 服務。您可以使用以下命令停止服務:
systemctl stop firewalld
重啟防火牆
如果由於某種原因需要重啟服務, 系統控制 重新啟動命令。
systemctl restart firewalld
防火牆狀態
檢查服務的狀態會給出最有意義和信息量最大的輸出。在這裡,您可以查看服務是否已啟用、正在運行、失敗或其他情況。
systemctl status firewalld
此示例輸出顯示該服務已啟用、處於活動狀態並在服務器上運行。如果尚未執行或失敗,則會顯示此消息。
[[email protected] ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-01-22 22:50:32 EST; 1h 0min ago
Main PID: 808 (firewalld)
CGroup: /system.slice/firewalld.service
└─808 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
管理防火牆和配置規則
現在 firewalld 正在運行,您可以開始設置配置。您可以打開端口、授權服務以及將 IP 列入白名單以進行訪問。對於所有這些例子, -永恆 橫幅。這對於確保即使在重新啟動 firewalld 或重新啟動服務器後也能保存規則很重要。添加新規則後,您需要重新加載防火牆以激活新規則。
為 TCP 或 UDP 添加端口
您需要指定 TCP 或 UDP 並打開這兩個端口。您需要為每個協議添加一個規則。
firewall-cmd --permanent --add-port=22/TCP
firewall-cmd --permanent --add-port=53/UDP
刪除 TCP 或 UDP 端口
只需對上述結構進行少量更改,即可移除當前打開的端口並有效關閉該端口。
firewall-cmd --permanent --remove-port=444/tcp
添加服務
這些服務假定配置了默認端口。 /等/服務 配置文件。如果要在非標準端口上使用服務,則需要打開特定端口,如上例所示。
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
刪除服務
如上所述,指定 remove-service 選項以關閉為服務定義的端口。
firewall-cmd --permanent --remove-service=mysql
將您的 IP 地址列入白名單
要將 IP 或 IP 範圍列入白名單或允許訪問,您可以指示防火牆添加受信任的源。
firewall-cmd --permanent --add-source=192.168.1.100
您還可以使用所謂的 CIDR 表示法來允許不同的 IP。 CIDR 不在本文的討論範圍內,但它是一個縮寫,可用於記錄 IP 地址範圍。
firewall-cmd --permanent --add-source=192.168.1.0/24
刪除列入白名單的 IP 地址
要刪除列入白名單的 IP 或 IP 範圍,您可以使用: –刪除源 選項。
firewall-cmd --permanent --remove-source=192.168.1.100
阻止 IP 地址
Firewall-cmd 工具主要用於打開和授予訪問權限,因此阻止 IP 需要大量規則。豐富的規則在形式上類似於編寫 iptables 規則。
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address="192.168.1.100" reject"
您可以使用 CIDR 表示法再次阻止 IP 地址範圍。
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address="192.168.1.0/24" reject"
白名單特定端口的IP地址(更豐富的規則)
您需要回到 iptables 並創建另一個豐富的規則,但最後使用 accept 語句允許 IP 訪問而不是拒絕它。
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept"
刪除豐富的規則
使用選項刪除豐富的規則 –刪除豐富的規則但是,建議您複製並粘貼整個規則,而不是從內存中鍵入所有內容,因為您需要指定要完全刪除的規則。
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept"
保存防火牆規則
添加或刪除所有規則後,您需要重新加載並激活防火牆規則。為此,請再次使用它 防火牆命令 帶有選項的工具 -重新加載..
firewall-cmd --reload
查看防火牆規則
重新加載規則後,您可以按照以下步驟驗證新規則是否正確放置:
firewall-cmd --list-all
以下是示例輸出 –列出所有 如果您選擇該選項,您將看到該服務器有許多端口,並且該服務在防火牆中以豐富的規則打開(將一個端口轉發到另一個端口)。
[[email protected] ~]# firewall-cmd --list-all
public (default, active)
interfaces: enp1s0
sources: 192.168.1.0/24
services: dhcpv6-client dns http https mysql nfs samba smtp ssh
ports: 443/tcp 80/tcp 5900-5902/tcp 83/tcp 444/tcp 3260/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.1.0/24" forward-port port="5423" protocol="tcp" to-port="80"
獎勵 #1:受防火牆保護的 GUI 配置
本文主要關注使用命令行實用程序 firewall-cmd,但也有用於處理 firewalld 規則的圖形工具。您可以在下面找到這些 應用> 其他 具有圖形訪問權限的 CentOS 7.x 和 Red Hat 7.x 服務器的菜單。要安裝此應用程序,您可以從命令行運行以下命令:
sudo yum install firewall-config
防火牆實用程序可以更輕鬆地創建和添加更複雜的“豐富規則”,這些規則在命令行上運行起來很麻煩。請注意,您還需要使用圖形實用程序 永遠 選項。


獎勵 #2 :: 受防火牆保護的直接規則
直接規則是特殊的、單獨的規則區域,旨在成為與防火牆交互的更“直接”方式。您可以編輯規則 /etc/firewalld/direct.xml 要激活這些規則,請歸檔並重新加載防火牆。這些規則與豐富的規則和舊的 iptables 樣式規則非常相似,但都是用 XML 編寫的。
直接接口主要由服務或應用程序用來添加特定的防火牆規則。以下是 firewalld 手冊頁中的規則塊示例。這個特定示例顯示瞭如何將一組源 IP 地址與一組稱為“黑名單”的規則相匹配。當 IP 匹配時,這個“黑名單”鏈會記錄下來,並最終告訴您從這些 IP 中刪除連接。
<?xml version="1.0" encoding="utf-8"?>
<direct>
<chain ipv="ipv4" table="raw" chain="blacklist"/>
<rule ipv="ipv4" table="raw" chain="PREROUTING" priority="0">-s 192.168.1.0/24 -j blacklist</rule>
<rule ipv="ipv4" table="raw" chain="PREROUTING" priority="1">-s 192.168.5.0/24 -j blacklist</rule>
<rule ipv="ipv4" table="raw" chain="blacklist" priority="0">-m limit --limit 1/min -j LOG --log-prefix "blacklisted: "</rule>
<rule ipv="ipv4" table="raw" chain="blacklist" priority="1">-j DROP</rule>
</direct>
您還可以使用命令行實用程序來處理這些規則 防火牆命令但是必須包含 – 直接地 指示您正在使用直接規則集的標誌。
參考:
點擊這裡了解詳情 關於防火牆的信息 來自 Fedora Firewalld.org 網站..
立即預訂您的位置!
請致電 800.580.4985 或 聊天 或與知識淵博的解決方案團隊或經驗豐富的託管顧問交談。