Имеется: FreeBSD 6.2 в качестве корневой системы. В ней подняты два jail: в одном крутится сервер баз данных mysql, в другом крутится Apache с PHP в виде модуля. Изначально данная связка обслуживала всего 2 ресурса, и проблем с безопасностью особо не было. теперь, когда появилось более 10 виртуальных хостов у Apache, захотелось лишить возможности пользователей, залив скрипт типа shell, посмотреть всё содержимое Jail, в том числе и скрипты с других сайтов.
Изначально хотел сделать, как описано здесь : http://www.opennet.me/base/sec/freebsd_jail_setup.txt.html , поместив при этом каждый сайт в отдельный jail со своим Apache и PHP, но слишком уж "памяти-емкая" эта звязка получится.Погуглив, нашел несколько противоположных мнений на этот счет, последним ресурсвом стал:
http://surgutnet.ru/page.php?id=20, который окончательно запутал: всё же, как лучше защититься ?
Так всё же, где золотая середина между ресурсоемкостью и безопасностью ? Как сделать наиболее "изолированными" виртуальные хосты друг от друга, но при этом, не убить все ресурсы железа ?
Если php как модуль тогда нужно настроить open_basedir, disable_functions и т.д., что не относится ни к jail ни к FreeBSD.
Читать про безопасность Apache + php, а также использовать последние версии ПО и регулярно обновлять(особенно это касается php ).Сувать Apache в jail бессмысленно.
А можно поподробнее с вот этого места:
>Сувать Apache в jail бессмысленно.Или Вы имели в виду для каждого виртуалхоста?
>А можно поподробнее с вот этого места:
>>Сувать Apache в jail бессмысленно.
>
>Или Вы имели в виду для каждого виртуалхоста?Нет, я имею ввиду в принципе, ему там делать нечего на мой взгляд, также как и Mysql. Даже можно сказать, что Mysql там на 99% делать нечего.
Каких-то серьёзных известных уязвимостей в apache давно не было.Автору, возможно, стоит рассмотреть вопрос о использовании php как cgi, возможно suphp + правильная расстановка прав. Но в этом случае не работает open_basedir.
>[оверквотинг удален]
>>Или Вы имели в виду для каждого виртуалхоста?
>
>Нет, я имею ввиду в принципе, ему там делать нечего на мой
>взгляд, также как и Mysql. Даже можно сказать, что Mysql там
>на 99% делать нечего.
>Каких-то серьёзных известных уязвимостей в apache давно не было.
>
>Автору, возможно, стоит рассмотреть вопрос о использовании php как cgi, возможно suphp
>+ правильная расстановка прав. Но в этом случае не работает open_basedir.
>Спасибо. С возможностью "подсмотреть" соседские исходники разобрался suexec+правильные права на директории пользователей.
Вопрос второй, не менее важный: в соседские директории теперь шеллом, например, не пробраться. Но тем же phpRemoteView (пхп-шелл) легко можно попасть в корень джейла (/) в котром живет Apache., следовательно, можно посмотреть /etc/passwd и проч. Как избавиться от такой "возможности" ?
>[оверквотинг удален]
>>+ правильная расстановка прав. Но в этом случае не работает open_basedir.
>>
>
>Спасибо. С возможностью "подсмотреть" соседские исходники разобрался suexec+правильные права на директории
>пользователей.
>
>Вопрос второй, не менее важный: в соседские директории теперь шеллом, например, не
>пробраться. Но тем же phpRemoteView (пхп-шелл) легко можно попасть в корень
>джейла (/) в котром живет Apache., следовательно, можно посмотреть /etc/passwd и
>проч. Как избавиться от такой "возможности" ?В fstab noexec, nosuid
>Нет, я имею ввиду в принципе, ему там делать нечего на мой
>взгляд,
> Каких-то серьёзных известных уязвимостей в apache давно не было.Вот это не факт. В модулях к нему - были и предостаточно.
> Даже можно сказать, что Mysql там на 99% делать нечего.
+1.
>Автору, возможно, стоит рассмотреть вопрос о использовании php как cgi, возможно suphp
Хм. nginx+php (как fastcgi в jail) - мне лично больше нравится.
Минус - нельзя использовать приятные фишки, типа .htpasswd, ModRewrite, e.t.c...
А иногда - надо.>+ правильная расстановка прав. Но в этом случае не работает open_basedir.
А теперь с вот этого места попдробнее.
свою проблему решил при помощи Apache от dkLAB (пропатченный 1.3.34 апач). Запускает пользовательские скрипты от имени заданного пользователя, и даже при работе пхп в виде модуля. Ссылка вот: http://dklab.ru/lib/dklab_apache/ У кого какие мнения об этом экземпляре ?
>свою проблему решил при помощи Apache от dkLAB (пропатченный 1.3.34 апач). Запускает
>пользовательские скрипты от имени заданного пользователя, и даже при работе пхп
>в виде модуля. Ссылка вот: http://dklab.ru/lib/dklab_apache/ У кого какие мнения об
>этом экземпляре ?dkLab Apache компилируется с BIG_SECURITY_HOLE=1 и проводит разбор HTTP-запроса с правами root, что потециально небезопасно.