Apache - suExec - FastCGI - PHP = проблема безопасности

Apache - suExec - FastCGI - PHP = проблема безопасности

Я установил Apache с FastCGI (mod_fastcgi), suExec и PHP на моем локальном компьютере для разработки. Работает отлично, за исключением одного.

Допустим, у меня есть два пользователя:

user1 - /home/user1/public_html
user2 - /home/user2/public_html

Я обнаружил серьезную дыру в безопасности в своей конфигурации: я могу включить файл из веб-корня user2 в файл user1. Как предотвратить? Есть какие-нибудь советы?

php-cgiпроцесс запущен под правильным пользователем.

решение1

Я бы посоветовал вам установить base_pathв вашем VirtualHost:

php_admin_value open_basedir /usr/local/www/sixeightzero

решение2

Если цель — запустить php под именем пользователей, чтобы разделить их, то попробуйтеapache2-mpm-itk, его гораздо проще развернуть, чем fast-cgi, и он отлично работает.

Для использования вам нужно всего лишь добавить эту строку в конфигурацию виртуального хоста:

AssignUserId someuser somegroup

При желании вы также можете установить MaxClientsVHost и NiceValue.

решение3

Единственный способ сделать это правильно — запретить одному пользователю читать файлы из домашнего каталога другого пользователя, но оставить их доступными для чтения веб-серверу.

Это можно сделать следующим образом (пример):

смонтировать файловую систему с параметрами acl: mount -o acl /dev/sda /home

Разрешить веб-серверу доступ к нему:

setfacl -m u:nobody:r-x /home/user1

setfacl -m u:nobody:r-x /home/user2

Разрешить владельцу прочитать:

setfacl -m u:user1:r-x /home/user1

setfacl -m u:user2:r-x /home/user2

Связанный контент