将 nginx 配置文件符号链接到 /etc/nginx/sites-available 而不是直接将其放在那里,会带来哪些安全隐患?

将 nginx 配置文件符号链接到 /etc/nginx/sites-available 而不是直接将其放在那里,会带来哪些安全隐患?

我在 ubuntu VPS 中运行了一些个人网站,我厌倦了在编辑 nginx 配置文件时必须复制 + 粘贴密码。因此,我/home/myUserName/www/为每个网站的资产(包括 nginx 配置文件)创建了子目录,然后将配置文件符号链接到/etc/nginx/sites-available/。这使得编辑配置文件以及每个站点的资产变得轻松得多,因为我不必在每次编辑文件时都以 root 身份进行身份验证。

这样做有什么安全隐患?除了指定网页的 SSL 证书的位置和存在性之外,nginx 配置文件中没有任何敏感信息。当我是唯一使用系统的人时,nginx 配置文件是否只能由 root 写入?为什么我不应该这样做?

答案1

实际上,这方面的安全隐患严重程度从低到高,取决于您的设置和其他配置。

根所有权的主要好处是,由于没有太多程序以此权限运行,因此它通常比用户或系统帐户更安全。

如果您的用户帐户具有对 nginx 配置的写权限,那么您将面临一系列潜在问题:

  • 如果您的用户帐户使用密码验证,您的密码可能会泄露。
  • 如果您使用用户帐户而不是权限较低的系统帐户运行软件,那么这些软件中的安全问题可能会允许攻击者修改您的 nginx 配置文件。

如果攻击者可以修改您的 nginx 配置文件,他们可以通过编写无效的配置文件轻松地使您的网站脱机。(但需要重新启动 nginx)

此外,根据安装的插件,他们可能能够编写高级自定义逻辑来将文件写入磁盘。这将允许他们安装后门来进一步入侵服务器。

因此,如果您想让您的用户帐户访问您的 nginx 配置,请务必采取以下预防措施以最大限度地降低风险:

  • 使用 ssh 密钥对您的服务器进行身份验证。
  • 不要在您的用户帐户下运行任何公共软件,而要使用权限较低的系统用户。

相关内容