我有安装了几个 docker 容器的服务器。
端口 3306 是一些 docker 容器的转发器。
我想阻止这个端口,但在某种程度上我不会破坏 docker。
我这样做了,
因为只有端口 22 和 80 只是列表中的端口,所有其他端口都应该关闭。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j DROP
...但是这显然行不通,因为 Docker 在 FORWARD 通道中安装了它的规则。
有什么想法可以轻松解决此问题,而无需“触摸” docker 容器?
这是我想出的。
我所提供的答案并不完全符合问题的要求。它不是阻止访问,而是只允许来自特定 IP 地址的访问,但现在阻止访问是微不足道的。
https://docs.docker.com/network/iptables/
文章解释说你可以使用
DOCKER-USER
链来做这样的事情。Docker 不会以任何方式清除或操纵这条链。我的设置如下:(
注意
INPUT_F
并且DOCKER-USER_F
不是标准链,我定义了它们)更新
我确实做了一些更改,因为我似乎破坏了 docker 容器中的互联网访问。