LINUX.ORG.RU

Изоляция хостов /var/www/ через pool PHP-FPM

 , ,


0

2

Не могу разобраться как изолировать сайты виртуал хосты друг от друга через Pool APACHE + PHP-FPM.

есть 2 сайта

/var/www/site1
/var/www/site2

сделал 2х пользователей

useradd -g www-data -m -s /bin/false site1
useradd -g www-data -m -s /bin/false site2

сделал 2 пула PHP-FPM

[site1]

user = site1
group = site1

listen = /var/run/php53-fpm-site1.sock

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

pm.status_path = /status

;pm = dynamic
;pm.max_spare_servers = 5

pm = ondemand
pm.max_children = 100
pm.start_servers = 2
pm.min_spare_servers = 5
pm.max_requests = 0
[site2]

user = site2
group = site2

listen = /var/run/php53-fpm-site2.sock

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

pm.status_path = /status

;pm = dynamic
;pm.max_spare_servers = 5

pm = ondemand
pm.max_children = 100
pm.start_servers = 2
pm.min_spare_servers = 5
pm.max_requests = 0

в веб-кофигах также у каждого сайта свой POOL

 для site1

  <FilesMatch "\.php$">
       SetHandler "proxy:unix:/var/run/php53-fpm-site1.sock|fcgi://localhost/"
    </FilesMatch> 

 для site2

  <FilesMatch "\.php$">
       SetHandler "proxy:unix:/var/run/php53-fpm-site2.sock|fcgi://localhost/"
    </FilesMatch> 

но той же webconsole.php спокойно можно читать файлы друг друга

ls /var/www/site1 
cat /var/www/site1/file.php

Как правильно реализовать вопрос, в какие группы пользователи должны входить, что-бы были полностью изолированы.

да и вообще получается залил ШЕЛ и может почитать файлы типа cat /etc/passwd

Не красиво как-то получается ;)

За Ранее спасибо.

Ответ на: комментарий от turtle_bazon
chmod go-rwx /var/www/site

Сайт упал сразу. поставил 911 права:

ls - l / 
все ок, просмотр запрещен даже на всею папку www поставил. а вот чтение осталось! если знаешь название папки сайта и какой движок то можно просмотреть через
cat 
также он может почти все каталоги unix читать. кроме рут.

есть варианты куда копать назание прав что-бы не мог пользователь сайта не читать и просматривать не какие каталоги в.т.ч все ls -l /

shrmvl ()
Ответ на: комментарий от shrmvl

Это не команда, вместо этой конструкции надо подставить свой номер. Пример:

chown site1:site1 /var/www/site1

Просто у тебя там два разных сайта было в начальном посте. Как сейчас у тебя - смотри сам.

turtle_bazon ★★ ()
Ответ на: комментарий от turtle_bazon

как быть с Apache. теперь апач не может читать.

Forbidden
You don't have permission to access on this server.
Server unable to read htaccess file, denying access to be safe

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

shrmvl ()
Ответ на: комментарий от turtle_bazon
 /var/www/site1

ls -l /var/www
> site1:site1 site1

в пуле также пользователь site1 группа site1

делаю usermod -a -G www-data site1

Групповые права 750 тоесть чтение выполнение.

получаю


Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
[code/]

только паблик выполнение сталю работает но тогда в сайт можно залесть шелом.

shrmvl ()

Мой вариант: один сайт, один юзер, одна группа. Пользователь www-data (под которым работает nginx/apache) входит в группы всех сайтов. Т.е. есть сайт exmaple.com, пользователь exmaple.com и группа exmaple.com. В группу exmaple.com входят пользователи exmaple.com и www-data. Файлы сайта exmaple.com принадлежат пользователю exmaple.com и группе exmaple.com. Права 770 или ниже

Возможность чтения /etc/passwd и прочего подобного это не проблема. Чувствительные файлы (например порно с понями в хомяке пользователя) не доступны всем пользователям (права 770 или ниже). umask 007 или строже

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

у меня все такжке но ничего не работает, тупо не работаю Групповые права.

сайт работает от пользователя к примеру TEST

чтобы работал апач делаю.

usermod -a -G www-data test

что не так?

shrmvl ()