编辑多个 iptables 规则

编辑多个 iptables 规则

我正在使用 iptables 来允许某些 IP(用户)允许特定端口。就像这样——

ACCEPT     tcp  --  1.2.3.4        anywhere             tcp dpts:4358:4362

因此,对于每个 IP 地址,我都允许使用多个端口范围。

问题是一些用户拥有动态 IP,我尝试让他们注册动态 dns 服务,但 iptables 会自动将该域解析为他们当前的 IP,所以现在我坚持使用裸 IP。

问题是,如何更新多个规则IP?比如在 notpad 中查找和替换)

答案1

iptables只能在内核表中存储 IP 地址,这就是它在运行时将主机名解析为当前 IP 地址的原因。

处理 IP 地址更新的唯一方法是删除旧规则并添加新规则。我建议将这些规则添加到单独的表中,以便仅需要清除并重新加载单独的表。就像是:

设置:

iptables -N DYNUSERS
iptables -A INPUT -j DYNUSERS

构建 DYNUSERS 表:

iptables -F DYNUSERS
iptables -A DYNUSERS -s dyndns1.example.com -p tcp --dport 4358:4362 -j ACCEPT
iptables -A DYNUSERS -s dyndns2.example.com -p tcp --dport 4358:4362 -j ACCEPT

当 IP 地址发生变化时,只需再次运行最后一部分即可。也许每隔一小时左右安排一次。

相关内容