带有 dockerized Web 应用程序的 iptables 规则 - 无法阻止传入流量

时间:2021-02-23 11:40:02

标签: docker iptables

我在我的远程服务器中托管了一个与端口 8081 绑定的 dockerized Web 应用程序。 我想为外部 ip 阻止该 Web 应用程序,因为我已经使用端口 8080 托管了一个普通的 jenkins 服务器。 这是我尝试过的:

iptables -A INPUT -d <my-server-ip> -p tcp --dport 8081 -j DROP

就像我对 8080 端口所做的一样。

这里是

iptables -nv -L INPUT

输出:

Chain INPUT (policy ACCEPT 2836 packets, 590K bytes)
pkts bytes target     prot opt in     out     source               destination         
495 23676 DROP       tcp  --  *      *       0.0.0.0/0             <my-ip-addr>        tcp dpt:8080
  0     0 DROP       tcp  --  *      *       0.0.0.0/0             <my-ip-addr>        tcp dpt:8081

是否可能与 iptables 中的 DOCKER 链有关?

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  9   568 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0       <container-eth1-addr>         tcp dpt:8080

我需要添加更具体的规则吗? 我的服务器 INPUT 规则不是应该在 DOCKER 链中列出的规则之前应用吗?

更新 - 已解决

感谢 larsks 的评论,我找到了解决方案。

这里的目标是阻止与 docker docker 容器绑定的端口 8081 上的 tcp 流量,但能够使用 ssh 隧道作为“穷人”VPN(因此不发布端口不是一种选择)。 只需添加此规则:

iptables -I DOCKER-USER 1 -d <container-eth-ip>  ! -s 127.0.0.1 -p tcp --dport 8080 -j DROP 

0 个答案:

没有答案