Linux 允许容器侦听端口80的副作用

Linux 允许容器侦听端口80的副作用,linux,docker,containers,linux-namespaces,linux-capabilities,Linux,Docker,Containers,Linux Namespaces,Linux Capabilities,为了简化Docker容器之间的服务端口管理,我希望允许包含的HTTP服务侦听各自容器IP地址的HTTP默认TCP端口80 侦听1025以下的端口号通常仅限于具有特殊权限的用户,例如root。据我所知,这样做的原因是禁止多用户系统上的非特权用户充当整个机器的权威HTTP服务 在较新的Linux版本中,通过应用Linux内核功能CAP\u NET\u BIND\u服务,也可以将其应用于特定的可执行文件。为了在Docker容器中工作,我似乎还需要通过Docker客户端上的--add cap标志或Doc

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

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

在较新的Linux版本中,通过应用Linux内核功能
CAP\u NET\u BIND\u服务
,也可以将其应用于特定的可执行文件。为了在Docker容器中工作,我似乎还需要通过Docker客户端上的
--add cap
标志或Docker Compose
cap\u add
部分将此功能应用于Docker容器本身

理论上,这种端口号限制的原因在本例中已经过时,因为Linux内核的网络名称空间允许容器中的进程只绑定到它们自己的IP地址上,而这些IP地址是它们独有的


我现在的问题是,这样做是否有任何严重的警告。这是一个安全问题吗?或者这是否会成为一个我没有考虑的安全问题?或者这样做还有其他问题吗?

我认为这样做没有任何问题


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

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

您基于什么理由建议这样做?是否有通过此打开的攻击场景?