用iptables/firewall阻塞Docker容器端口



我有一个docker-compose部署与一个容器,例如:

version: "3"
services:
web:
image: nginx
ports:
- "8080:80"

Docker版本为20.10.9,操作系统为CentOS 7.

我需要阻止外部IP地址访问8080端口,除非指定。

但是iptables -A INPUT -p tcp -m tcp --dport 8080 --src ! <IP whitelist> -j DROP不适合docker容器。

在一个有public区域防火墙设置的系统中,Docker容器没有应用。

docker - user链不需要工作,因为我应该使用--dport 80(docker容器的内部端口)而不是dport 8080。但是我需要使用外部端口,因为内部端口80可以有很多容器,但是外部端口是唯一的。

我用

当我想要阻塞容器端口时,我改变DOCKER-USER链。

据我所知:到docker的流量从不触及iptables中的INPUT链。

所以我会尝试:

iptables -A DOCKER-USER -i <INCOMING-INTERFACE> -p tcp -m tcp --dport 8080 --src ! <IP whitelist>  -j DROP

更多信息:https://docs.docker.com/network/iptables/

相关内容

  • 没有找到相关文章

最新更新