我只有一个云服务器来托管一个网站(django + gunicorn + nginx),postgres数据库将部署到另一个云服务器上。
在这种情况下,我应该为我的网站创建特殊的用户吗?它似乎更容易使用根,它会带来更多的安全风险,但如果我只托管一个应用程序呢?
发布于 2018-08-18 08:40:21
从技术上讲,没有什么能阻止你这么做。然而,在所有方面,这都是一个糟糕的想法。
将应用程序作为非特权用户运行的想法与运行一个或多个应用程序无关。它与应用程序本身受到损害的风险有关。通过以root身份运行进程,如果攻击者可以利用任何漏洞来获得直接访问或以其他方式影响您的应用程序,则它们将使用根权限进行此操作,从而能够直接危害整个服务器。
它甚至不需要是一个bug,而是一个失败的配置,或者仅仅使用应用程序允许的访问,例如,如果您的应用程序允许直接读取或写入文件,它们就可以对文件系统中的任何地方,而不是在特定于应用程序的文件夹中这样做。
使用非特权用户很容易做到,并且可以保护您免受各种可能的安全攻击。
发布于 2018-08-18 12:51:39
似乎更容易使用根
大多数发行包的默认nginx配置都有一个user指令。工作进程作为特权较低的用户在开箱即起运行。
几个生产炮兵部署方法允许以给定用户的身份运行。
https://serverfault.com/questions/926947
复制相似问题