![充满公共 IPv4 地址的 LAN - 如何过滤它?](https://linux22.com/image/586057/%E5%85%85%E6%BB%A1%E5%85%AC%E5%85%B1%20IPv4%20%E5%9C%B0%E5%9D%80%E7%9A%84%20LAN%20-%20%E5%A6%82%E4%BD%95%E8%BF%87%E6%BB%A4%E5%AE%83%EF%BC%9F.png)
我的问题的答案可能并不难,但无论如何,我不知道该怎么做。
所以,我刚在大学找到了一份新工作,我发现网络(LAN)充满了公共 IP 地址。说真的,整个 LAN(可能超过 150 台主机)都有自己的互联网 IP 地址,我不知道如何管理它。
我在 NAT 环境中使用 iptables(Linux 防火墙)的经验非常好。但是,在我的所有 LAN 都使用一堆公有 IP 地址的环境中,我该怎么做?我应该只使用“转发”规则并忽略 NAT 规则吗?还是在这样的环境中还有其他需要我注意的问题?
我可以在路由器和 LAN 之间添加防火墙,以便对 LAN 中的这些公共 IP 地址进行数据包过滤吗?或者这不起作用?
谢谢!
答案1
没有 NAT 的话就简单多了。如果你有使用 iptables 的经验,应该很简单:(我使用 1.2.3.0/24 作为你的 LAN)。只需使用 FORWARD 表即可。
- 允许 ESTABLISHED 和 RELATED 连接(与 nat 完全相同)
- 允许传出端口 80、433……,其中源地址来自本地 IP 范围(如果您需要过滤传出流量)(-s 1.2.3.0/24 允许来自 LAN 的源地址,如果您不设置目的地“-d”,则表示任何目的地)。如果您不限制传出流量,只需使用“-s 1.2.3.0/24 -j ACCEPT”)
允许所需的服务(如果您有网络服务器,请允许使用网络服务器的目标 IP 的端口 80)(-d 1.2.3.4 -p tcp --dport 80,...如果您不设置源 -s,则表示任何源 IP)
放弃其他一切
例如:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 1.2.3.0/24 -j ACCEPT #allow everything out
iptables -A FORWARD -d 1.2.3.4 -p tcp --dport 80 -j ACCEPT #webserver
iptables -A FORWARD -d 1.2.3.0/24 -j DROP