linux – 我应该何时创建一个新的用户帐户来在服务器上运行软件?

一般来说,什么时候应该创建一个新的用户帐户来在服务器上运行一个面向互联网的软件?

例如,假设我正在使用共享的Debian服务器(例如通过Dreamhost),我想使用WordPress运行一些网站,一些使用Redmine,一些使用Ruby on Rails,也许一些使用Django,我想服务Mercurial存储库也是.

在Dreamhost服务器和许多其他类似的设置服务器上,这可以完成under a single user account,但我可以看到这种方法的一些缺点:

>更长的.bashrc
>如果该帐户遭到入侵,则在其下运行的所有站点也将受到攻击.

另一方面,拥有大量用户帐户可能会变得有点难以跟踪,特别是如果其中一些用户帐户在安装的软件方面具有相同的要求.例如,为每个运行WordPress的网站设置一个帐户可能会有点过分.

什么是最佳做法?这只是一个问题,即每个用户帐户的托管网站数量(或托管存储库等)与一个人的偏执程度成比例地减少?

请发表你的意见,并说明你的理由.

此外,如果您有任何理由认为在私有服务器或VPS上采用的方法应该与在共享服务器上采用的方法不同,请概述它们的内容以及它们的原因.

解决方法

我通常是“一个用户打开网络上的监听套接字的用户”的粉丝 – 一个用于Apache,一个用于邮件,一个用于DNS等.

这是(最后我听说)仍然是最佳实践,其背后的原因是简单而简单的偏执:如果有人发现漏洞并在我有机会修补之前利用它,这些服务会暴露给大坏互联网软件至少我将它们限制在一个用户帐户中,只有运行它负责的单个服务所需的权限.
一般来说,我认为这种隔离级别足以保护系统,尽管每个应用程序都是一个易受攻击的岛屿(例如,如果某人安装了易受攻击的WordPress插件,Apache可以访问的所有内容(即所有网站)都是有效的在妥协的情况下.

因此,可以使用自己的Apache配置和用户对共享主机客户端网站进行沙盒化(可以为每个站点安装完整的Web堆栈,只需要指定不同用户的单独的apache配置). ),缺点是每个站点现在运行一堆Apache进程,因此你的RAM使用量大幅增加,如果任何单个Apache实例/用户受到攻击,那些世界可读的东西仍然容易被攻击.

进一步扩展将每个Apache放入chroot(或者如果你在BSD系统上的监狱)的论点可以提高安全性,但是现在你谈论额外的磁盘空间,因为每个chroot / jail将需要所有必需的软件运行它包含的站点(并且需要为每个站点更新此软件,而不是在修补程序发布时仅在服务器上更新一个主副本),加上RAM要求,就像您有单独的用户/ apache实例一样.
除了可以让用户突破chroot的操作系统/内核错误(这成为在单独的物理服务器上运行每个站点的参数 – 然后成为将站点分成不同的vlans /子网的区段等)之外,这可以减轻一切.

与所有风险一样,您无法消除它:您只能根据妥协的潜在危害/成本,妥协的可能性以及每个缓解级别的成本将其降低到可接受的水平.对于我的钱,对于非关键的非电子商务共享托管环境,基本的“一个用户用于Apache,一个用于DNS,一个用于邮件等”.安全网就足够了.如果需要超出该级别的安全性,您的用户应该认真考虑自己的硬件.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...