使用iptables限制与docker容器的外部连接的步骤?

您所在的位置:网站首页 日照哪里购物好 使用iptables限制与docker容器的外部连接的步骤?

使用iptables限制与docker容器的外部连接的步骤?

#使用iptables限制与docker容器的外部连接的步骤?| 来源: 网络整理| 查看: 265

我的目标是将对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