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

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

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


Права на папки расставь такие, чтобы читать не могли друг друга. Обычно там rw-r--r-- ставятся, если не задавать отдельно.

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

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

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

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

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

немного не понял команды, <n>

как правильно написать команду.

chown?

сайт находиться по пути: /var/www/site

Спасибо.

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

Он имел ввиду

chown site1:site1 /var/www/site1

Где site1 это существующие юзер и группа в твоей системе.

Twissel ★★★★★
()
Ответ на: комментарий от 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
() автор топика
Ответ на: комментарий от Deleted

толку от этого chroot. cat /var/www/site/file.php и можно смотреть содержимое, типа пароль к BD

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
() автор топика
Ответ на: комментарий от MrClon

POOL php-fpm также у тебя работает от пользователя и группы что и сайт?

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

Нихера не могу понять.

нужно добавить в www-data в группу usermod -a -G www-data test

толку 0. то вчеравно Апачу по барабану, не работает с правами 770

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

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

Наоборот надо пользователя www-data в группу site1 добавить.

ls -l /var/www
site1:site1 site1

Сделай ls -la, посмотрим права доступа.

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

)) Уже разобрался ... Спасибо. Присутствие www-data нужен в моей группе. а я Лезу в Группу Апача и думаю что-же он не дает мне доступ )))

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

А есть решение, что-бы не мог пользователь просматривать через PHP к примеру

cat /etc/passwd  также ls -l /home

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

Спасибо! Все отлично все работает. Permission denied ) не посмотреть не прочитать.

shrmvl
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.