无法将 iptables 防火墙规则正确添加到 Docker 容器
Cannot add iptables firewall rules properly to Docker container
我想为 Docker 容器创建一个防火墙,它只允许某些 IP 而拒绝其他 IP。
默认设置是这样的:
$ sudo iptables --list
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
如 Docker 文档中所述,这允许所有传入 IP。
所以我正在修改这个。我运行以下命令:
sudo iptables -D DOCKER-USER -j RETURN
sudo iptables -A DOCKER-USER -s xx.xx.xx.xx,yy.yy.yy.yy -j ACCEPT
sudo iptables -A DOCKER-USER -j DROP
这应该有效,
我的预期结果是,如果我尝试从 zz.zz.zz.zz IP 访问服务器,它将被拒绝,但是从 xx.xx.xx.xx,它将通过。
但现在的结果是,无论我是从xx.xx.xx.xx(或yy.yy.yy.yy)还是zz.zz.zz.zz访问,页面都告诉我“连接失败”。所以显然它正在被删除。
我不知道发生了什么,这个问题的原因是什么。感谢您的帮助。
按照记录指定 -i
选项。
sudo iptables -I DOCKER-USER -i eth0 ! -s your.ip.add.res -j DROP
我想为 Docker 容器创建一个防火墙,它只允许某些 IP 而拒绝其他 IP。
默认设置是这样的:
$ sudo iptables --list
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
如 Docker 文档中所述,这允许所有传入 IP。 所以我正在修改这个。我运行以下命令:
sudo iptables -D DOCKER-USER -j RETURN
sudo iptables -A DOCKER-USER -s xx.xx.xx.xx,yy.yy.yy.yy -j ACCEPT
sudo iptables -A DOCKER-USER -j DROP
这应该有效, 我的预期结果是,如果我尝试从 zz.zz.zz.zz IP 访问服务器,它将被拒绝,但是从 xx.xx.xx.xx,它将通过。
但现在的结果是,无论我是从xx.xx.xx.xx(或yy.yy.yy.yy)还是zz.zz.zz.zz访问,页面都告诉我“连接失败”。所以显然它正在被删除。
我不知道发生了什么,这个问题的原因是什么。感谢您的帮助。
按照记录指定 -i
选项。
sudo iptables -I DOCKER-USER -i eth0 ! -s your.ip.add.res -j DROP