Iptables
如何讓firewalld限制對除指定IP地址之外的所有地址的訪問?
請在配置firewalld方面提供一些幫助。這裡有一點背景。我想要做的就是阻止對在 https 上執行的 Web 應用程序的所有訪問——除了列入白名單的 IP 地址。
我做了很多Google搜尋。學到了很多東西,但還沒有用。這是我所做的:
- 我可以告訴 firewalld 正在執行
# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) Active: active (running)
也與
# firewall-cmd –state running
- 我有預設區域
# firewall-cmd --get-zones block dmz drop external home internal public trusted work
- 我的活動區域包括:
# firewall-cmd --get-active-zones public sources: 192.72.0.193 192.72.0.0/22 94.27.256.190
- 我的預設區域是公共的:
# firewall-cmd --get-default-zone public
- 公開資料如下:
public (default) interfaces: sources: 192.72.0.193 192.72.0.0/22 94.27.256.190 services: http https ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
我的理解是,上面公共區域的配置將只授予來自任何指定 IP 地址的請求。但是,當我嘗試從列出的 IP 之外的 IP訪問https://www.example.com時,它允許它。
一種選擇是從區域中刪除服務:https
firewall-cmd --zone=public --remove-service=https
然後使用所謂的豐富規則來指定哪些來源
$$ IP addresses $$可以訪問什麼服務$$ such as http and https $$像這樣:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.0/24" service name="https" log prefix="https" level="info" accept'
可能需要重新載入