目标是仅允许特定网络访问在我的服务器上运行的docker容器服务/端口。
试图将ACCEPT规则添加到INPUT过滤器链中。这没有帮助,即使没有ACCEPT规则的网络仍然能够访问docker服务/端口。
尝试在FORWARD链中添加ACCEPT和DROP规则,这可行。但这有很多缺点,例如: 一种。规则在Docker重新启动时被删除或重新定位 b。如果重新部署Docker容器并在运行时获得不同的IP,则规则可能无效。
计划在到达FORWARD链之前将其封锁。
因此,在NAT表中添加了一个新链,如果流量来自允许的网络,则重定向到DOCKER链;如果来自其他网络,则将DNAT添加到BLOCKHOLE IP。在PREROUTING中,第一个规则是跳到该链。这似乎很有效。
DNAT tcp-0.0.0.0/0 0.0.0.0/0 tcp dpt:1234至:0.0.0.1
但是,除了将其重定向到BLOCKHOLE之外,我们还可以以某种方式拒绝此流量,以便客户端知道它是不允许的,因此被拒绝了。