使用iptables限制与docker容器的外部连接的步骤? |
您所在的位置:网站首页 › 日照哪里购物好 › 使用iptables限制与docker容器的外部连接的步骤? |
我的目标是将对docker容器的访问限制为几个公共IP地址.是否有一个简单,可重复的过程来实现我的目标?在使用Docker的默认选项时,只了解iptables的基础知识,我发现它非常困难.
我想运行一个容器,使其对公共Internet可见,但只允许来自选定主机的连接.我希望设置REJECT的默认INPUT策略,然后只允许来自我的主机的连接.但是Docker的NAT规则和链条阻碍了我的INPUT规则被忽略了. 鉴于以下假设,有人可以举例说明如何实现我的目标吗? >在eth0上托管公共IP 80.80.80.80>在eth1上托管专用IP 192.168.1.10> docker run -d -p 3306:3306 mysql>阻止与主机/容器3306的所有连接,但主机4.4.4.4和8.8.8.8除外 我很乐意将容器绑定到只有本地的ip地址,但需要有关如何正确设置iptables转发规则的说明,这些规则在docker进程和主机重启后仍然存在. 谢谢! 使用docker的防火墙规则时要记住两件事:>为避免您的规则被docker破坏,请使用DOCKER-USER链> Docker在nat表的PREROUTING链中执行端口映射.这发生在过滤规则之前,因此–dest和–dport将看到容器的内部IP和端口.要访问原始目标,可以使用-m conntrack –ctorigdstport. 例如: iptables -A DOCKER-USER -i eth0 -s 8.8.8.8 -p tcp -m conntrack --ctorigdstport 3306 -j ACCEPT iptables -A DOCKER-USER -i eth0 -s 4.4.4.4 -p tcp -m conntrack --ctorigdstport 3306 -j ACCEPT iptables -A DOCKER-USER -i eth0 -p tcp -m conntrack --ctorigdstport 3306 -j DROP
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |