我在群晖中使用 docker 部署服务,网络 network 使用的默认的 bridge ,不是 host 也不是 bridge-host ,理论上是不是不应该可以访问宿主机网段?

docker 服务的 network 是默认的:172.17.0.0/16

我任意进入在这个网路的服务,/bin/sh 去 ping - 192.168.0.0/24 的服务都是可以 ping 通的。

然后我去 用这个 172.17.0.0/16 - ping 另一个 docker 创建的网络 172.19.0.0/16 也是可以 ping 通的,完全没有隔离,是我哪里理解错了吗?

我之所以纠结这个问题,就是如果我的某个 docker 有漏洞,有人拿了我 docker 的 shell ,是不是理论可以随意攻击我的局域网了。

请各位指教一下。

举报· 309 次点击
登录 注册 站外分享
2 条回复  
yinmin 小成 前天 23:41
( 1 ) bridge 网络的容器当然可以访问局域网。 ( 2 ) 2 个 bridge 网络仅网关是互通的,容器之间不通。 ( 3 )被黑的容器可以做跳板机攻击局域网的。 ( 4 )可以将容器配置成 internal 网络,这个网络是无法访问局域网的,当然也是无法访问 internet 的。 ( 5 )可以设置 iptables 禁止 bridge 容器访问局域网 ip 地址段,容器能访问 internet 又能阻止访问局域网。 ( 6 )最安全的方式是网络使用 none ,也就是无网卡,容器之间使用 unix socket 通信(使用-v 在容器之间共享 unix socket 的文件句柄) 另外,很多网管都忽略的一个安全隐患:局域网的其他电脑将网卡网关配置成 docker 主机的 ip ,就能访问容器的内网 ip 了,所以别以为 bridge 内网 ip 安全就可以用弱密码。
Cineray 楼主 小成 昨天 00:18
@yinmin 啊我以为你说的( 123 )是我的个人问题,好像默认确实是这样,我搜索了豆包应该给了我误导性答案。那这个默认行为确实会给宿主机带来巨大安全隐患,相当于提供了跳板机。我去尝试一下群晖实现你说的第 4/5 点试试。另外设置了 none 是不是也无法连接 internet 了
返回顶部