场景:“网关”机器充当路由器和防火墙,将小型 LAN 连接到互联网。该机器还运行一个网络服务器(托管一个简单的网站)和一个 SSH 服务器,提供来自互联网的(非根)SSH 访问。
目标:减轻恶意黑客通过互联网侵入机器造成的损害(只有暴露到互联网的端口用于网络服务器和SSH服务器)。一个关键问题是通过 SSH 服务器的侵入不应损害网络服务器,反之亦然。
建议的方法:配置两个非特权 LXC 容器,每个容器用于 Web 和 SSH 服务器、在主机上运行的路由器/防火墙。容器使用单独网桥上的虚拟网络接口连接到主机,并配置端口转发和防火墙规则以启用 SSH/Web 功能。
问题:与直接在计算机上运行 SSH 和 Web 服务器相比,上述方法能否提供更好的安全性来抵御外部威胁?有什么缺陷、需要解决的问题吗?如果路由器/防火墙本身在第三个容器中运行(映射到物理网络接口),安全性会提高吗?如果您有经验,请随时提供其他相关评论/建议。
答案1
这是一个好主意:这就是容器的意义所在。
在容器网络服务器经常在 chroot 中运行之前,这种情况很常见。
如果您不使用网桥,并使用路由器模式进行 lxc 网络
lxc.net.0.veth.mode = router
Web 服务器也没有到 SSH 服务器的网络路径,并且无法监听流量。 OpenSSL 有一个错误,使得窥探流量成为一个真正的问题(令人心碎)。拥有额外的安全层是值得的,即使您的 www 服务器不太可能获得 pwnd,但在 lxc 容器内,它们造成的损害较小。常见软件中的严重远程执行错误确实偶尔会发生(例如炮弹休克)