![]() |
Настройка freebsd+apache+php+mysql
Задача такая. Есть два виртуальных хоста, на одном стоит скрипт который имеет уязвимости. Нужно сделать так чтобы уязвимость на одном хосте, не могла дать возможность повредить другой хост, ну и тем более систему. Подскажите каким путем пойти и что конкретно можете посоветовать
|
jail
|
По сути требуется реализовать настройки по принципу как используется для виртуального хостинга.
jail это наверно ближе к VPS |
Ну, поскольку речь идет о уязвимостях (неизвестно каких, но, если они есть, то глубина дыры вряд ли известна), то единственным разумным способом изоляции все-таки будет jail
Виртуальные хосты и так изолированы друг от друга, насколько это возможно для виртуальных хостов, но не от системы. А так - что-то вроде apache2-mpm-itk для запуска apache от разных пользователей, жесткое разделение прав на файлы и каталоги (и на базы) + общие правила системы безопасности (типа запрета на исполнение в /tmp =)) Но это все палиатив. |
решил остановится на 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> |
Так у Вас получается запуск от одного и того же пользователя.
|
Цитата:
|
да и входной php, судя по всему видит? А как с правами и владельцем на те файлы, которые не подключаются?
|
C этим разобрался. Проблема была в php. Указала в конфиге апача в секции virtualhost для каждого сайта:
php_admin_value open_basedir "/data/sites/site2" (или site1). Но ситуация теперь такая. Хосты работают от разных пользователей. через команду system() выполняемую на site1 создать каталог в site2 не получается. А через site2 в site1 каталог создается. В чем может быть причина? /data/sites/site1 и /dats/sites/site2 принадлежат соответственно пользователем от имени которых работают хосты (их домашние папки) |
Время: 03:59. |
Время: 03:59.
© OSzone.net 2001-