对于 iptables 输出来说,表达“允许所有到本地局域网的连接”的最简单方法是什么?
包括与192.*
、172.*
、10.*
等的连接。
所有这些都可以压缩在一个规则中吗?
答案1
使用ipset
ipset create locallan hash:net
ipset add locallan 192.168.0.0/16
ipset add locallan 172.16.0.0/16
ipset add locallan 10.0.0.0/8
iptables -I INPUT -m set --match-set locallan src -j ACCEPT
将允许从这些范围到具有该规则的服务器的连接。
答案2
正如 llua 所说,使用ipset
.但是,您可能希望通过重新启动来使其持续存在;否则 ipset 存储在内存中。
ipset save > /etc/ipset.conf
,然后启用 ipset 服务,以便它在重新启动时重新创建该集(至少在 Arch 系统上,它提供了一个ipset.service
systemd 文件)。
添加到大多数其他 Linux 系统上的/etc/rc.local
行。ipset restore -f /etc/ipset.conf
看到永远优秀的拱门维基页面了解更多。