Iptables

如何讓firewalld限制對除指定IP地址之外的所有地址的訪問?

  • April 16, 2015

請在配置firewalld方面提供一些幫助。這裡有一點背景。我想要做的就是阻止對在 https 上執行的 Web 應用程序的所有訪問——除了列入白名單的 IP 地址。

我做了很多Google搜尋。學到了很多東西,但還沒有用。這是我所做的:

  1. 我可以告訴 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
  1. 我有預設區域
# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
  1. 我的活動區域包括:
# firewall-cmd --get-active-zones
public
sources: 192.72.0.193 192.72.0.0/22 94.27.256.190
  1. 我的預設區域是公共的:
# firewall-cmd --get-default-zone
public
  1. 公開資料如下:
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'

可能需要重新載入

引用自:https://serverfault.com/questions/683181