保护 Apache 站点权限

Posted

技术标签:

【中文标题】保护 Apache 站点权限【英文标题】:Secure Apache Site Permissions 【发布时间】:2021-04-28 06:34:12 【问题描述】:

我在一篇关于网站安全的文章中看到了一项建议,即在网络服务器上运行的不同网站应该在不同的用户下运行以进行遏制,并限制一个网站上的违规行为导致其他网站受到感染。

我正在运行一个带有公共互联网公开个人网站的 Ubuntu 20.04 LAMP 服务器。它们在 Apache 中的 /var/www/ 下设置为虚拟主机,但都使用标准的 www-data:www-data 用户和组运行。如何在不同的用户帐户下运行它们?

我是否只需创建一个新用户和组,然后将 /var/www/ 目录归该用户所有?如果允许 Apache 权限写入子目录然后进行补丁、上传等,这将如何工作?

【问题讨论】:

【参考方案1】:

Apache 有它自己的用户和组(www-data 或其他根据它运行的发行版)。为了实现您想要的,您需要为每个虚拟主机创建一个用户并确保 apache 可以读取/写入该新用户拥有的文件/文件夹,例如将 apache 组放入新用户的组中(或相反,根据你想如何处理权限)。

“背后”的逻辑与你用来处理 linux 用户和组权限的逻辑完全相同。

【讨论】:

以上是关于保护 Apache 站点权限的主要内容,如果未能解决你的问题,请参考以下文章

如何在 apache vhost 中使用密码保护 Laravel 站点?

通过 .htaccess 文件保护目录而没有 root 权限

如何使用基本身份验证保护在 Apache2 虚拟主机中反向代理的 Tomcat webapp?

用python批量添加保护站点

cURL - 加载具有 CloudFlare 保护的站点

CSRF攻击原理