每个任务都有一个单独的用户?

Mar*_*lin 4 security best-practices

前几天我刚刚得到了一个 VPS 服务器,我是服务器管理的新手,但对 Ubuntu (11.04) 不是新的。我在客厅里用它作为 HTPC,我以前有一个 VPS,我断断续续地用它作为团队发言服务器。这是我为长期使用而设置的。因此,我想知道在涉及我的服务器配置的网站和任务时的最佳实践。我知道将每个网站分成自己的用户组或使用自己的用户名可能是有益的。我会设置 nginx,以便它可以读取所有用户主管(以及每个网站),但不能触及任何其他内容。与 TeamSpeak 相同,我是否应该为 TeamSpeak 创建一个用户,以便它在自己的受限区域内运行,还是这太过分了?

我确实可以访问服务器上的 root,我目前的计划是运行大约 4 个网站和一个 TeamSpeak 服务器。我的堆栈是 Linux(Ubuntu 11.04 LTS)、nginx 和 PHP 5.4.3(使用数据库的 PDO SQLite 3 内置驱动程序)。PHP 应该有它自己的用户组还是可以将它与 nginx 放在一起?

Gra*_*ant 6

teampeak 等服务的最佳实践是将它们作为单独的用户运行,最好在监狱中运行 - 可以在https://help.ubuntu.com/community/BasicChroot上找到设置监狱的指南

这样做是为了限制软件中的漏洞利用可能造成的损害 - 希望它仅限于弄乱 teampeak 的文件,而不是服务器的其余部分。

PHP 和网络服务器通常可以共享一个用户,因为他们需要访问相同的文件。

如果可以避免,任何网络服务都不应该以 root 身份运行,因为该服务中的漏洞可能让攻击者获得与运行它的用户相同的权限。某些软件需要 root 权限才能启动,但可以配置为在启动后删除这些权限。