2.9. 使用 IP 集为允许列表配置动态更新
您可以进行接近实时的更新,来灵活地允许 IP 集中特定的 IP 地址或范围,即使在无法预计的情况下也是如此。这些更新可以被各种事件触发,如检测安全威胁或更改网络行为。通常,此类解决方案利用自动化来减少手工工作,并通过快速响应情况来提高安全性。
先决条件
-
firewalld
服务在运行。
流程
创建一个有有意义名称的 IP 集:
firewall-cmd --permanent --new-ipset=allowlist --type=hash:ip
# firewall-cmd --permanent --new-ipset=allowlist --type=hash:ip
Copy to Clipboard Copied! 名为
allowlist
的新 IP 集包含您希望防火墙允许的 IP 地址。向 IP 集添加动态更新:
firewall-cmd --permanent --ipset=allowlist --add-entry=198.51.100.10
# firewall-cmd --permanent --ipset=allowlist --add-entry=198.51.100.10
Copy to Clipboard Copied! 此配置使用新添加的 IP 地址更新防火墙允许传输网络流量的
allowlist
IP 集。创建一个引用之前创建的 IP 集的防火墙规则:
firewall-cmd --permanent --zone=public --add-source=ipset:allowlist
# firewall-cmd --permanent --zone=public --add-source=ipset:allowlist
Copy to Clipboard Copied! 没有此规则,IP 集不会对网络流量有任何影响。默认防火墙策略将占先。
重新载入防火墙配置以应用更改:
firewall-cmd --reload
# firewall-cmd --reload
Copy to Clipboard Copied!
验证
列出所有 IP 集:
firewall-cmd --get-ipsets
# firewall-cmd --get-ipsets allowlist
Copy to Clipboard Copied! 列出活跃的规则:
firewall-cmd --list-all
# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: enp0s1 sources: ipset:allowlist services: cockpit dhcpv6-client ssh ports: protocols: ...
Copy to Clipboard Copied! 命令行输出的
sources
部分提供了对哪些流量源(主机名、接口、IP 集、子网等)被允许或拒绝访问特定防火墙区域的见解。在这种情况下,包含在allowlist
IP 集中的 IP 地址被允许通过防火墙,为public
区域传输流量。探索 IP 集的内容:
cat /etc/firewalld/ipsets/allowlist.xml <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:ip"> <entry>198.51.100.10</entry> </ipset>
# cat /etc/firewalld/ipsets/allowlist.xml <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:ip"> <entry>198.51.100.10</entry> </ipset>
Copy to Clipboard Copied!
后续步骤
-
使用脚本或安全工具获取您的威胁情报源,并以一种自动化的方式更新
allowlist
。