我想在我的小型web服务器(托管2-4个用户)上尝试使用非特权的lxc容器。由于服务器是朋友之间共享的,所以我们决定使用轻量级容器将服务从机器中分离出来。我们设想每个用户将使用一个选项为他的每个服务运行大量的非特权容器,选择的服务/lxc容器将在系统启动时启动。
在正常情况下,人们只需使用setuid和setgid节在每个用户的上下文中运行lxc容器。不幸的是,它不起作用;我怀疑它与非特权容器的subuid需求有关。sudo -u <user> -- lxc-autostart或su -l <user> -c lxc-autostart等命令可能不会更改调用实体的subuid属性(在新启动的情况下是根属性)。
到目前为止,从我发现的另一个帐户调用非特权容器的唯一方法是ssh @localhost lxc-autostart。
我可以将这种调用放在upstart脚本上,但要使其工作,我需要为root生成公共证书,并确保<user>将接受来自upstart‘root的自动日志记录。安全吗?
主机是64位Ubuntu14.04;它已经使用ssh了。至于Ubuntu的最佳实践,根没有密码,根有空的.ssh/authorized_keys。
没有带有自动lxc容器的<user>使用ecryptfs (A.K.A.加密的主页),因为在这样的设置中它是无用的。
发布于 2016-04-29 17:48:31
不,原因如下: root可以修补sshd,以始终尝试root的authorized_keys文件以及它自己的文件。
当然,如果root的私钥被偷了,你今天过得很糟糕。不要允许这样做。如果root的私钥只存在于服务器上的/root中,您会更高兴。
如果有人可以成为根,他们可以偷它,但这是没有意义的,因为他们可以做得更糟。例如,补丁sshd可以为任何帐户获取硬编码的授权密钥。
https://security.stackexchange.com/questions/78718
复制相似问题