我正在运行 CoreOS主持一些Docker容器,我想阻止 SSH从容器访问CoreOS主机,我想这将是一个合理的安全问题。

我尝试使用 /etc/hosts.deny 限制此访问文件或使用 iptables 。这种方法的问题在于,它们都需要专门定义容器的 IP 范围,而且我找不到有保证的方法来在所有新主机上自动指定它。

docker documentation描述,桥接接口(interface)的默认网络定义是:

$ sudo docker network inspect bridge 
[ 
  { 
      "name": "bridge", 
      "id": "7fca4eb8c647e57e9d46c32714271e0c3f8bf8d17d346629e2820547b2d90039", 
      "driver": "bridge", 
      "containers": { 
          "bda12f8922785d1f160be70736f26c1e331ab8aaf8ed8d56728508f2e2fd4727": { 
              "endpoint": "e0ac95934f803d7e36384a2029b8d1eeb56cb88727aa2e8b7edfeebaa6dfd758", 
              "mac_address": "02:42:ac:11:00:03", 
              "ipv4_address": "172.17.0.3/16", 
              "ipv6_address": "" 
          }, 
          "f2870c98fd504370fb86e59f32cd0753b1ac9b69b7d80566ffc7192a82b3ed27": { 
              "endpoint": "31de280881d2a774345bbfb1594159ade4ae4024ebfb1320cb74a30225f6a8ae", 
              "mac_address": "02:42:ac:11:00:02", 
              "ipv4_address": "172.17.0.2/16", 
              "ipv6_address": "" 
          } 
      } 
  } 
] 

Docker 文档还说它使用 172.17.42.1/16对于 docker0接口(interface)可用时(也可以使用 -b 选项进行配置)。但我看到一些容器拥有 IP,例如 10.1.41.2并且很难使用硬编码 IP 范围来阻止它们。

我知道--icc选项将影响守护进程上的容器间通信,并且希望找到像这样的干净方法并限制从容器到其主机的 SSH 访问。

谢谢。

请您参考如下方法:

您可以使用 iptables 设置防火墙规则来防止这种情况发生。

iptables -A INPUT -i docker0 -p tcp --destination-port 22 -j DROP 

(在主机上运行)


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!