Firewalld
Firewalld:除了IP,如何丟棄所有內容?
我想了解來自 Iptables 的 FirewallD。
我的區域是
drop
沒有任何服務的預設區域。drop (active) target: DROP icmp-block-inversion: no interfaces: enp9s0u2u1u2c2 sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
向該區域添加源 ip 有什麼意義?
- 我添加了所有本地 IP
firewall-cmd --add-source=192.168.0.0/16
- 即使來自此源 IP 之一,它仍然會丟棄所有數據包。
- 向此區域添加服務將允許任何人訪問此服務,無論我設置什麼源 IP。
- 如何限制服務並只允許服務使用單個 IP(或範圍)?
與 iptables 相比,firewalld 的行為根本不是很清楚。有很多假設和未知的預設行為。
- 我添加了所有本地 IP firewall-cmd –add-source=192.168.0.0/16
- 即使來自此源 IP 之一,它仍然會丟棄所有數據包。
來自FirewallD 文件:
將源綁定到區域意味著此區域設置將用於限制來自此源的流量。
因此,您告訴 FirewallD,該
drop
區域現在將專門適用於來自 192.168.0.0/16 的流量,而不適用於其他任何地方。我不確定來自該 IP 範圍之外的任何流量會發生什麼。(像這樣修改預設drop
區域可能不是一個好主意。)將服務添加到區域通常意味著對於配置到該區域的任何介面,對於任何源 IP 地址,始終允許指定的服務。如果一個區域沒有啟用服務,它將禁止所有流量。我沒有嘗試將源 IP 地址添加到區域,所以我不知道正常行為如何與之互動。
為了實現你想要的,你可能應該創建一個新區域,並為你想要的服務添加一個豐富的規則:
firewall-cmd --permanent --new-zone="allow-limited-<service>" firewall-cmd --permanent --zone="allow-limited-<service>" --add-rich-rule="rule source address=192.168.0.0/16 service name=<service> accept"
現在,如果您為該區域分配一個網路介面
allow-limited-<service>
,它將只允許<service>
來自 192.168.0.0/16 的服務(可能包括一個或多個 TCP 和/或 UDP 埠),並阻止其他一切。區域實際上是一組預定義的防火牆規則,您可以輕鬆地將其應用於任何特定的網路介面。一個網路介面一次只能分配給一個區域。
FirewallD 邏輯似乎是為企業/ISP/主機提供商使用量身定制的,其中可能有單獨的 VLAN 介面,如果企業從與以前的範圍完全不同的範圍內獲得新的 IP 塊,IP 地址分配可能會發生巨大變化。在這樣的環境中,您可以根據用途將防火牆規則綁定到(VLAN 或物理)介面,而不是 IP 地址。