【发布时间】:2017-04-27 16:22:49
【问题描述】:
我们使用 Docker 在我们的服务器上运行的一些服务尝试连接到私有 IP 地址(10.0.0.0/8、192.0.0.0/16、172.16.0.0/12、100.64.0.0/10)。
此行为是正常的,但我们的服务器提供商检测到此流量并向我们发送警报。
我们只想停止传出的流量,而不是使用 iptables 的传入。
这是我们当前的设置:
-A OUTPUT -d 192.168.0.0/16 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 100.64.0.0/10 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 172.16.0.0/12 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 10.0.0.0/8 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
但这似乎不起作用,因为 Docker 创建了以下规则:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all -- anywhere anywhere
DOCKER all -- anywhere anywhere
对于服务:
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:1234
ACCEPT tcp -- anywhere 172.17.0.4 tcp dpt:1234
最后:
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
感谢任何反馈。
【问题讨论】:
-
我不是 iptables 专家,但您可以通过在启动时将
--iptables=false作为标志传递给守护程序来阻止 Docker 修改您的 iptables。 -
感谢您的建议,但我们希望 Docker 添加它自己的防火墙规则
-
全有或全无 atm afaik。