【问题标题】:Disable SSH access from docker container to it's host禁用从 docker 容器到其主机的 SSH 访问
【发布时间】:2016-01-21 23:51:55
【问题描述】:

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

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

正如docker documentation 所述,桥接接口的默认网络定义为:

$ 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 文档还说,当docker0 接口可用时,它使用172.17.42.1/16(也可以使用-b 选项进行配置)。但是我看到一些容器拥有像 10.1.41.2 这样的 IP,并且使用 硬编码 IP 范围很难阻止它们。

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

谢谢。

【问题讨论】:

    标签: ssh docker iptables coreos


    【解决方案1】:

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

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

    (要在主机上运行)

    【讨论】:

    • 谢谢 不知道iptables可以过滤包
    猜你喜欢
    • 2020-10-22
    • 1970-01-01
    • 2020-02-17
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多