如何在使用动态分配 IP 的 DSL 时设置 IPTABLES 以记录/监控使用情况

如何在使用动态分配 IP 的 DSL 时设置 IPTABLES 以记录/监控使用情况

我正在尝试设置一个系统来执行 NAT 和其他 iptables 操作(如日志记录、防火墙、监控等)。ISP 提供动态 IP 地址,DSL 调制解调器执行 NAT。

我有以下“小型企业”配置:

192.168.1.1           |-----------|
----------------------|           |
                      |  SWITCH 1 |
192.168.1.2           |           |
----------------------|           |
                      |           |
192.168.1.3           |           |
----------------------|           |
                      |-----------|
                           |
                           | 192.168.1.4
                           |
                     |--------------|
                     | Dual NIC     |
                     | IPTABLES m/c | NAT
                     |--------------|
                           |
                           |
                           |192.168.2.2
                           |
                     |--------------| 192.168.2.1 |----------------|
                     |  SWITCH 2    | ------------|DSL Modem NAT   |
                     |--------------|             |----------------|

我的目标是控制 192.168.1.x LAN 上每个节点可以做什么、记录条目等。IPTABLES 机器可以做的事情比 Iptables CLI 能做的多得多...我们需要一些到 libnetfilter_queue 库的 C 接口,因为我们需要做一些自定义监控和日志记录。

我没有静态公共 IP 地址。因此,我需要依赖 DSL 内置的 NAT。实际上,我最终会有两个串联的 NAT。一个通过 IPTables 进行 SNAT,源更改为 192.168.2.2。第二个是 DSL 调制解调器将执行的操作,将源 IP 从 192.168.2.2 更改为当时分配的公共 Internet IP。

我认为一定有更好的方法。那是什么?还是我完全偏离了主题?

答案1

您不需要依赖 DSL 调制解调器中的 NAT,您仍然可以在 Ubuntu 路由器盒上执行此操作,即使使用动态公共 IP 地址也是如此。
除非您对 iptables 规则集的安全性有信心,否则您不会想这样做。
有时 DSL 调制解调器/路由器没有关闭路由器 (NAT) 的选项,在这种情况下,您所做的一切是可以的。

是的,使用默认的接受策略并启用转发,

$ cat /proc/sys/net/ipv4/ip_forward
1

它和一条 POSTROUTING 规则一样简单(从您的评论中复制):

iptables -t nat -A POSTROUTING -o em2 -j SNAT --to 192.168.2.2

相关内容