加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

禁用从docker容器访问LAN

发布时间:2020-12-16 03:30:08 所属栏目:安全 来源:网络整理
导读:我在Docker中运行带有Ubuntu容器的Gentoo主机.它们通过Docker自动创建的桥进行通信.我想放弃可能来自容器的192.168.0.0/16的所有流量. $sudo iptables -S-P INPUT ACCEPT-P FORWARD ACCEPT-P OUTPUT ACCEPT-A FORWARD -d 172.17.0.2/32 ! -i docker0 -o dock

我在Docker中运行带有Ubuntu容器的Gentoo主机.它们通过Docker自动创建的桥进行通信.我想放弃可能来自容器的192.168.0.0/16的所有流量.

$sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
$sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N DOCKER
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 172.17.0.2:443

如果我需要提供额外信息,请告诉我

最佳答案
一种选择是使用–icc = false运行docker,防止任何容器与其他容器通信,然后您可以通过将它们与–link = container_name:alias链接来让容器相互通信. This will not block the container from communicating with the host at this time though.

您还可以使用iptables操作,例如:

iptables -A INPUT -i docker0 -d 192.168.0.0/16 -j DROP

请记住,主机没有看到因icmp错误而返回的丢弃数据包,因此在大多数情况下REJECT可能更合适.

编辑:更正规则以阻止转发到其他主机:

iptables -I FORWARD -i docker0 -d 192.168.0.0/16 -j DROP

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读