为简化Docker容器之间的服务端口管理,我希望允许包含的HTTP服务侦听各自容器IP地址的HTTP默认TCP端口80。允许容器侦听端口80的副作用
收听低于1025的端口号码,一般限于具有特殊权限的用户,如root
。据我所知,这样做的理由是禁止多用户系统上的非特权用户充当整个机器的授权HTTP服务。
在较新的Linux版本中,也可以通过应用Linux内核功能CAP_NET_BIND_SERVICE
来允许这个特定的可执行文件。为了在Docker容器中工作,我似乎还需要通过Docker客户端上的--add-cap
标志或Docker-Compose cap_add
部分将此功能应用于Docker容器本身。
理论上,在这种情况下,此端口号限制的原因已过时,因为Linux内核的网络命名空间允许容器内的进程仅绑定在它们自己独有的IP地址上。
现在我的问题是,如果有任何关于这样做的严重警告。这是否会成为一个安全问题,并且不会被我忽视?或者还有其他的问题吗?
你推荐这个的基础是什么?有没有通过这个打开的攻击场景? – aef