Войти

Показать полную графическую версию : Настройка freebsd+apache+php+mysql


gigi1988
16-11-2010, 00:09
Задача такая. Есть два виртуальных хоста, на одном стоит скрипт который имеет уязвимости. Нужно сделать так чтобы уязвимость на одном хосте, не могла дать возможность повредить другой хост, ну и тем более систему. Подскажите каким путем пойти и что конкретно можете посоветовать

mar
16-11-2010, 00:59
jail

gigi1988
16-11-2010, 02:23
По сути требуется реализовать настройки по принципу как используется для виртуального хостинга.
jail это наверно ближе к VPS

mar
16-11-2010, 12:50
Ну, поскольку речь идет о уязвимостях (неизвестно каких, но, если они есть, то глубина дыры вряд ли известна), то единственным разумным способом изоляции все-таки будет jail
Виртуальные хосты и так изолированы друг от друга, насколько это возможно для виртуальных хостов, но не от системы.

А так - что-то вроде apache2-mpm-itk для запуска apache от разных пользователей, жесткое разделение прав на файлы и каталоги (и на базы) + общие правила системы безопасности (типа запрета на исполнение в /tmp =)) Но это все палиатив.

gigi1988
16-11-2010, 20:45
решил остановится на mpm-itk. Установил site1.ru на команду id выдает uid=1003(web1_admin) gid=1003(web1) groups=1003(web1). А site2 выдает
Warning: Unknown: open_basedir restriction in effect. File(/data/sites/site2/br2.php) is not within the allowed path(s): (/data/sites/site1) in Unknown on line 0

Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0

Fatal error: Unknown: Failed opening required '/data/sites/site2/br2.php' (include_path='.:/usr/local/share/pear') in Unknown on line 0

Я правильно понял, что site2 не запустился от другого пользователя, а работает от web1_admin? Что делать не знаю.
Конфиги:
<VirtualHost *:80>
DocumentRoot "/data/sites/site1/"
ServerName "site1.ru"
<IfModule mpm_itk_module>
AssignUserId web1_admin web1
</IfModule>

<VirtualHost *:80>
DocumentRoot "/data/sites/site2/"
ServerName "site2.ru"
<IfModule mpm_itk_module>
AssignUserId web1_admin web1
</IfModule>

mar
17-11-2010, 00:06
Так у Вас получается запуск от одного и того же пользователя.

gigi1988
17-11-2010, 00:11
Так у Вас получается запуск от одного и того же пользователя. »

Нет это тут опечатка. в конфиге все верно написано. Самое интересное что html документы он открывает нормально

mar
17-11-2010, 09:07
да и входной php, судя по всему видит? А как с правами и владельцем на те файлы, которые не подключаются?

gigi1988
17-11-2010, 12:17
C этим разобрался. Проблема была в php. Указала в конфиге апача в секции virtualhost для каждого сайта:
php_admin_value open_basedir "/data/sites/site2" (или site1).
Но ситуация теперь такая. Хосты работают от разных пользователей. через команду system() выполняемую на site1 создать каталог в site2 не получается. А через site2 в site1 каталог создается. В чем может быть причина? /data/sites/site1 и /dats/sites/site2 принадлежат соответственно пользователем от имени которых работают хосты (их домашние папки)




© OSzone.net 2001-2012