2

为了简化 Docker 容器之间的服务端口管理,我希望允许包含的 HTTP 服务侦听其各自容器 IP 地址的 HTTP 的默认 TCP 端口 80。

收听低于 1025 的端口号通常仅限于具有特殊权限的用户,例如root. 这样做的原因,据我了解,是为了禁止多用户系统上的非特权用户充当整机的权威HTTP服务。

在较新的 Linux 版本中,还可以通过应用 Linux 内核功能允许对特定的可执行文件执行此操作CAP_NET_BIND_SERVICE。为了在 Docker 容器中工作,我似乎还需要通过--add-capDocker 客户端上的标志或 Docker-Composecap_add部分将此功能应用于 Docker 容器本身。

从理论上讲,这种端口号限制的原因在这种情况下已经过时了,因为 Linux 内核的网络命名空间允许容器内的进程只绑定它们自己专有的 IP 地址。

我现在的问题是,是否有任何关于这样做的严重警告。这是否或可能以任何方式成为我未考虑的安全问题?或者这样做还有其他问题吗?

4

2 回答 2

2

我认为这样做的问题为零。

虽然可以使用“cap add”并导致暴露安全漏洞,但允许使用端口 80 不是问题。它只是您的软件侦听的 TCP/IP 端口,从安全角度来看,它与任何其他随机端口号没有什么不同。

于 2017-03-16T14:49:20.263 回答
-1

目前我建议只绑定到其他端口。一个总是在创建容器时将它们转发到另一个端口。搞乱安全性并在容器中留下不必要的特权似乎太麻烦了,无法在内部绑定到特定端口。

于 2017-09-02T07:53:52.847 回答