允许容器在端口80上收听的副作用

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

监听1025以下的端口号通常限于具有特权的用户,如root 。 据我所知,这样做的原因是禁止多用户系统上的非特权用户充当整个机器的授权HTTP服务。

在较新的Linux版本中,也可以通过应用Linux内核functionCAP_NET_BIND_SERVICE来允许特定的可执行文件。 为了在Docker容器中工作,我似乎还需要通过Docker客户端上的--add-cap标志或Docker-Compose cap_add部分将此function应用于Docker容器本身。

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

现在我的问题是,如果有这样的严重警告。 这是否会成为一个安全问题,而不会被我忽视? 或者还有其他的问题吗?

我看到这样做的零问题。

虽然有可能使用“cap add”并导致安全漏洞暴露,但是允许使用端口80不是问题。 它只是一个软件侦听的TCP / IP端口,从安全angular度来看,它与其他随机端口号没有区别。

目前我build议只绑定到其他端口。 一个在创build容器时总是将它们转发到另一个端口。 乱七八糟的安全和​​留在容器中的不必要的特权似乎太麻烦,只是内部绑定到一个特定的端口。