Ip

在 CentOS 7 中將源 IP 地址列入白名單

  • March 15, 2021

我想設置 CentOS 7 防火牆,這樣,除了我列入白名單的原始 IP 地址之外,所有傳入的請求都將被阻止。對於白名單 IP 地址,所有埠都應該可以訪問。

我能找到幾個解決方案(不確定它們是否會起作用),iptables但 CentOS 7 使用firewalld. 我找不到類似的東西可以用firewall-cmd命令來實現。

介面位於公共區域。我也已將所有服務移至公共區域。

我會通過將源添加到區域來實現這一點。首先檢查您的區域有哪些來源:

firewall-cmd --permanent --zone=public --list-sources

如果沒有,您可以開始添加它們,這是您的“白名單”

firewall-cmd --permanent --zone=public --add-source=192.168.100.0/24
firewall-cmd --permanent --zone=public --add-source=192.168.222.123/32

(這會添加一個整體/24和一個 IP,這樣您就可以同時獲得子網和單個 IP 的參考)

設置您要打開的埠範圍:

firewall-cmd --permanent --zone=public --add-port=1-22/tcp
firewall-cmd --permanent --zone=public --add-port=1-22/udp

這只是埠 1 到 22。如果你願意,你可以擴大它。

現在,重新載入你所做的。

firewall-cmd --reload

並檢查你的工作:

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

旁注/社論:沒關係,但我喜歡firewalld中一組白名單IP的“受信任”區域。您可以通過閱讀redhat 關於選擇區域的建議進行進一步評估。

也可以看看:


如果您想DROP在此源之外發送數據包,這裡有一個範例,用於丟棄/24我之前用作範例之外的那些,您可以為此使用豐富的規則,我相信。這是概念性的,我還沒有測試過它(除了看到 centos 7 接受命令之外),但是,應該很容易做一個 pcap 並查看它的行為是否符合您的預期

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.0/24" invert="True" drop'

引用自:https://unix.stackexchange.com/questions/159873