2017-03-16 113 views
2

为简化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地址上。

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

回答

1

我看到这样做的零问题。

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

0

目前我建议只绑定到其他端口。一个在创建容器时总是将它们转发到另一个端口。随着安全性的变化以及在容器中留下不必要的权限似乎太麻烦了,只能在内部绑定到特定的端口。

+0

你推荐这个的基础是什么?有没有通过这个打开的攻击场景? – aef

相关问题