我尝试使用Docker Machine,尝试使用docker-machine create --driver generic
在已有的计算机上进行设置。我注意到它重新配置防火墙,以便端口2376对Internet开放。它是否也设置了正确的身份验证,或者是否存在我将此计算机的root访问权暴露为副作用的风险?
答案 0 :(得分:2)
默认情况下,docker-machine配置相互TLS(mTLS)以加密通信,并验证客户端证书以限制访问。来自docker-machine documentation:
作为创建过程的一部分,Docker Machine会安装Docker并使用一些合理的默认值对其进行配置。例如,它允许通过TCP与外部世界通过基于TLS的加密进行连接,并在可用时默认为AUFS作为存储驱动程序。
您应该看到docker-machine为DOCKER_HOST和DOCKER_TLS_VERIFY配置的环境变量指向远程主机并使用mTLS证书。通常,端口2375是一个永远不应该使用的未加密和不安全的端口,并且2376至少配置了TLS,并且希望mTLS(没有相互部分来验证客户端,安全性不存在)。有关配置此内容的详细信息,请参阅https://docs.docker.com/engine/security/https/
所有这一切,具有mTLS的docker与SSH的安全性大致相同,只允许密钥对登录。考虑到它授予主机的访问权限,我个人不会将这些中的任何一个暴露给互联网,尽管相当安全。如果可能,我使用IP白名单,VPN或其他措施来限制访问。但是许多人可能会感到相对安全,这些端口暴露无遗。
答案 1 :(得分:0)
除非您使用证书来保护套接字,否则它很容易受到攻击。查看更多信息here。
过去,我的一些测试云实例遭到了破坏,变成了比特币矿工。在一个实例中,由于该特定主机上有可用的密钥,攻击者可以使用这些密钥创建新的云实例。