仅允许 iptables 上的 IP 列表

仅允许 iptables 上的 IP 列表

我有一个安装了 wordpress 的 apache 服务器,我需要确定几个可以访问网站的 IP(我有一个 IP 列表)...什么是最有效的方法?

答案1

示例文件:

192.168.168.1
192.168.168.2
192.168.168.3

因此,在您的 iptables 规则集脚本文件中的适当位置放置以下几行:

whitelist="/path/to/the/example/file/with/the/whitelist/ips.txt"
while IFS= read -r wips; do # wips stands for whitelist IPs
    iptables -A INPUT -i eth0 -s "${wips}" -j ACCEPT
done < "${whitelist}"

请注意,当我说“iptables 规则集脚本文件”时,我指的是包含您想要在 iptables 配置中应用的所有自定义规则的 shell 脚本。注意二:假设-i eth0您的默认以太网卡名为 eth0。它也可以是 eth1、eth2、ethX 或 enp0s1、enp0s2 enpXsX。使用适合您的。要检查上述脚本是否已成功应用,请运行以下命令:

iptables -L INPUT

答案2

如果你有大量的地址/网络,最好的解决方案是使用 ipset [1] 来存储它们。

[1]https://wiki.archlinux.org/title/Ipset

答案3

如果您正在跑步,firewalld则可以利用rich rules

例子 :-

firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.1.101/32 service name=telnet limit value=1/m accept'

您可以在以下位置阅读有关丰富规则的更多信息这里

上面说的是受到推崇的控制对资源(端口/服务)的访问的方式。唯一的缺点是参数只source address接受单个参数或network CIDR,因此如果您有很多参数,则必须编写列表脚本,IP addresses或者您可以执行相反的操作,阻止所有参数并仅允许您想要的参数。

相关内容