Ip
在 CentOS 7 中將源 IP 地址列入白名單
我想設置 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 關於選擇區域的建議進行進一步評估。
也可以看看:
- RHEL 7 使用防火牆文章
- Fedora FirewallD 文件(相當不錯,fedora 使用 firewalld 已經有一段時間了)
如果您想
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'