Страница 1 из 1

Разграничить сайты друг от друга [РЕШЕНО]

Добавлено: Сб мар 30, 2019 11:27 am
dima
Здравствуйте. Сегодня впервые узнал о BrainyCP и загорелся идеей опробовать. Все очень круто, объем проделанной работы поражает, особенно учитывая, что это делало всего 5 человек. Спасибо за труды)

Собственно мой вопрос не связан напрямую с BinaryCP, скорее просто про администрирование. Можно ли каким-нибудь образом разграничить сайты друг от друга? Чтобы сайты не могли ничего читать и писать в директориях выше и по соседству.

Это на тот случай, если какой-то из сайтов заразят - уже был печальный опыт, когда один зараженный сайт положил всех соседей. Дело тогда было на обычном виртуальном хостинге и там я не имел прямого доступа к серверу. Сейчас решил переезжать на VPS, а опыта не хватает - даже не знаю, что спрашивать в Яндекс / Google. Да и к тому же, вдруг BrainyCP такое разграничение делает из под коробки, а я просто не знаю?

Буду признателен за советы и рекомендации в плане обеспечения безопасности сайтов.

Re: Разграничить сайты друг от друга

Добавлено: Сб мар 30, 2019 11:44 am
sbury
Включите сайт в окружение phpJail

Re: Разграничить сайты друг от друга

Добавлено: Сб мар 30, 2019 12:25 pm
dima
sbury писал(а):
Сб мар 30, 2019 11:44 am
Включите сайт в окружение phpJail
Почитал форум немного. Если использовать Jail это надо будет под каждый сайт свой хост аккаунт делать?

Re: Разграничить сайты друг от друга

Добавлено: Пн апр 01, 2019 7:07 am
sbury
если требуется каждый сайт по отдельности то да

Re: Разграничить сайты друг от друга

Добавлено: Пн апр 01, 2019 5:10 pm
dima
sbury писал(а):
Пн апр 01, 2019 7:07 am
если требуется каждый сайт по отдельности то да
Спасибо за ответ. Увы, крайне не оптимальный способ изоляции получится.
Не хочу сглазить, но возможно я нашел решение проблемы, это директива open_basedir
Пока еще вникаю, да и эксперименты бы неплохо провести. Если все заработает, напишу небольшую мини-инструкцию для остальных.

Re: Разграничить сайты друг от друга

Добавлено: Пн апр 01, 2019 8:23 pm
Amney
dima писал(а):
Пн апр 01, 2019 5:10 pm
sbury писал(а):
Пн апр 01, 2019 7:07 am
если требуется каждый сайт по отдельности то да
Спасибо за ответ. Увы, крайне не оптимальный способ изоляции получится.
Не хочу сглазить, но возможно я нашел решение проблемы, это директива open_basedir
Пока еще вникаю, да и эксперименты бы неплохо провести. Если все заработает, напишу небольшую мини-инструкцию для остальных.
В общем то, эти вещи можно совместить

Re: Разграничить сайты друг от друга

Добавлено: Пн апр 22, 2019 3:28 pm
dima
Проблема решена, для изоляции сайта идем в каталог /etc/httpd/vhost.d и открываем конфиг нужного сайта.

Далее, внутри блока <IFModule proxy_fcgi_module> вписываем директиву:

Код: Выделить всё

ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/home/optima/sites/rvp74.rf:. \n upload_tmp_dir=/home/optima/sites/rvp74.rf/tmp \n session.save_path=/home/optima/sites/rvp74.rf/tmp"
Здесь optima - это мой пользователь.
rvp74.rf - один из сайтов данного пользователя.

Пути, соответственно, нужно заменить на свои.

Огромное спасибо dmitry_stas - без его помощи у меня вряд ли бы получилось разобраться в вопросе.

P. S. Нужно перегрузить сервер, после внесения изменений.

Re: Разграничить сайты друг от друга

Добавлено: Вт апр 23, 2019 1:07 pm
Amney
dima писал(а):
Пн апр 22, 2019 3:28 pm
Проблема решена, для изоляции сайта идем в каталог /etc/httpd/vhost.d и открываем конфиг нужного сайта.

Далее, внутри блока <IFModule proxy_fcgi_module> вписываем директиву:

Код: Выделить всё

ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/home/optima/sites/rvp74.rf:. \n upload_tmp_dir=/home/optima/sites/rvp74.rf/tmp \n session.save_path=/home/optima/sites/rvp74.rf/tmp"
Здесь optima - это мой пользователь.
rvp74.rf - один из сайтов данного пользователя.

Пути, соответственно, нужно заменить на свои.

Огромное спасибо dmitry_stas - без его помощи у меня вряд ли бы получилось разобраться в вопросе.
Т .е. это получается просто включение open_basedir на каждый домен?
Я думал это через панель можно сделать.

Re: Разграничить сайты друг от друга

Добавлено: Вт апр 23, 2019 2:04 pm
dima
Amney писал(а):
Вт апр 23, 2019 1:07 pm
dima писал(а):
Пн апр 22, 2019 3:28 pm
Проблема решена, для изоляции сайта идем в каталог /etc/httpd/vhost.d и открываем конфиг нужного сайта.

Далее, внутри блока <IFModule proxy_fcgi_module> вписываем директиву:

Код: Выделить всё

ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/home/optima/sites/rvp74.rf:. \n upload_tmp_dir=/home/optima/sites/rvp74.rf/tmp \n session.save_path=/home/optima/sites/rvp74.rf/tmp"
Здесь optima - это мой пользователь.
rvp74.rf - один из сайтов данного пользователя.

Пути, соответственно, нужно заменить на свои.

Огромное спасибо dmitry_stas - без его помощи у меня вряд ли бы получилось разобраться в вопросе.
Т .е. это получается просто включение open_basedir на каждый домен?
Я думал это через панель можно сделать.
Ну да. Насчет того, чтобы сделать это через панель - только если разработчики добавят такую кнопку) По идее там где-то в недрах админки есть пункт - индивидуальная достройка виртхостов, но как она работает и куда потом этим настройки идут, я не знаю.

Поэтому пока что можно применять open_basedir и вручную, это не так уж и сложно. Можно через стандартный файл менеджер все настройки вписать, не заморачиваясь ssh подключением через консоль.

Re: Разграничить сайты друг от друга [РЕШЕНО]

Добавлено: Вт апр 23, 2019 2:32 pm
Amney
dima писал(а):
Вт апр 23, 2019 2:04 pm
По идее там где-то в недрах админки есть пункт - индивидуальная достройка виртхостов, но как она работает и куда потом этим настройки идут, я не знаю.
Они создают отдельный конфиг для каждого домена, который инклюдится из основного конфига, как apache так и nginx, и хранятся в отдельных директориях по определенному пути (уже не помню путь, тут на форуме есть)