我总是这样做:
- chown apache2:apache2 /var/www/-vR
- chmod 555 /var/www/-vR
- chmod 755 /var/www/a/special/dir/which/needs/write/permissions/ -vR
- 或者,除了 2、3,只需将权限设置为 755
最近我发现将 apache 设置为用户并不安全,这是为什么呢?还有什么其他选择吗?
还有哪些其他好的做法可以提高网络服务器(apache)的安全性?
答案1
您可能还想调查chroot
您的网络服务器。更好的方法是,在自己的虚拟机中运行每个应用程序,使用自己的 apache 和其他东西。这样,即使受到攻击,唯一易受攻击的机器也是 VM 机器。
然而,当您谈论 Apache 安全性时,您应该更具体地说明您想要防范哪种攻击。
答案2
如果 Apache 用户也是目录/文件的所有者,那么一旦出现任何漏洞(甚至是您的 Web 应用程序中的错误),攻击者将能够删除、更改权限并对您的文件执行任何操作。
正确的方法是将所有权设置为 root(或您的用户名),并仅授予 Apache 组读取文件的权限。例如:
# chown -R root:apache2 /var/www
# chmod -R 550 /var/www
在apache需要写入的目录中,只需赋予570权限即可。
这样,系统中的其他用户就无法访问您的 Web 文件(包括 mysql 密码等),Apache 本身也无法删除它们。