Виртуальный хостинг и apache в chroot.
От полноценного виртуального хостинг-сервера требуется, следующий набор сервисов: apache+php+cgi+mysql+ftp+ssh+cron+sendmail, ну и конечно же защитить сервер от пользователей и пользователей друг от друга.
Размещение apache в закрытой среде решает некоторые проблемы безопасности, и добавляет проблемы с предоставлением некоторых сервисов. Так если для ftp и ssh вообще параллельно, где apache лежит, для mysql достаточно создать всего одну жесткую ссылку, а что для sendmail и cron? Так же размещать на одной файловой системе и создавать жесткие ссылки, на все, что потребуется? Впрочем не велосипед изобретаю, может быть все просто решается, что скажете? |
Dmitry am
Да, все решается проще посредством использования jail, специально существующего для таких целей. |
Belansky, т.е. в "боевых" условиях chroot для предоставления виртуального хостинга не используется?
|
Dmitry am
Дело не в том, что используется, а в том, что лучше использовать :) Во FreeBSD есть jail, который безопасней chroot, ну и Ваши проблемы (то бишь вопросы), заодно решает |
Да нет у меня конкретных проблем(к сожалению), просто сейчас пытаюсь постичь основы конфигурирования веб-сервера под unix, и рассматриваю все возможные варианты. Для chroot удалось нагуглить, более менее понятные доки, поэтому этот вариант первый(осталось только с cron`ом и sendmail`ом разобраться). Для jail, н и ч е г о дельного найти не удалось, более того, даже не знаю, с какой стороны он разговаривает, но все равно обещаю, что он будет следующий :-).
Сейчас значит буду сносить фрю, переставлять ее на один раздел(что бы жесткие ссылки работали) и заканчивать с chroot`ом. |
Dmitry am
ну, про jail, - это Вы зря. Документации - более чем (посмотрите на opennet) Про проблемы сравнительной безопасности chroot vs jail - - ssh для юзера в chroot и возможная небезопасность (то, с чем я столкнулась). А есть и более "простые" варианты - например, способы выхода из jail |
mar, вы девушка?
|
Dmitry am
Цитата:
А про jail очень много информации в сети. И, конечно, man jail. |
>А Вы не знали?
Откуда, я ж не местный и никто мне не рассказывал, а если бы и рассказывал, то все равно бы не поверил :-). >А про jail очень много информации в сети. ок, хромая английским...сижу "читаю". |
Достойная статья на эту тему
|
>очень много информации
да нету там, ничего, только переписанный всеми кому не лень man jail(где подробности особо не описываются), и вот то, что archy предлагает, но это уже на другую тему, а я ее пока даже дефолтным методом заставить работать не могу: Добавил на основной системе в rc.d jail.sh -------------------------------------------------------------- mount -t procfs proc /usr/jail/proc jail /usr/jail jailhost 169.254.8.108 /bin/csh /etc/rc -------------------------------------------------------------- при запуске выдает trap: Command not found. trap: Command not found. bootmode=: Command not found. HOME=/: Command not found. PATH=/sbin:/bin:/usr/sbin:/usr/bin: Command not found. export: Command not found. if: Expression Syntax. В ps никаких процессов с “J” не видно, никаких открытых портов на 169.254.8.108 не висит. Что делал. Да все как в man написано: создал дерево, перенастроил/отключил все процессы слушающие все ip в системе, запустил jail #jail /usr/jail jaihost 169.254.8.108, полазил в нем(top не работает, говорит: -“kvm _open: short read top: kvm_read for _ccpu: Unknown error:0”), добавил пустой fstab, создал rc.conf: portmap_enable=”NO”; network_interfaces=””;, сменил пароль руту, потом вышел из оболочки в основную систему, и создал приведенный выше сценарий. |
После некоторой пляски с бубном, переставил ось и заново по той же схеме виртуальную машину, в итоге запустилось.
Правда top по прежнему не запускается и выдает тоже сообщение. В процессе возникло несколько вопросов: 1. «Песочница» в итоге весит около 150мб, неужели это все нужно? Есть ли возможность «ручной» сборки? 2. Компиляция довольно длительный процесс, можно ли однажды скомпилированную структуру тиражировать простым копированием? Я это конечно сейчас попробую, но вдруг там грабли какие есть. 3. А как вообще можно посмотреть, сколько ресурсов эта штуковина жрет, в top’е принадлежность процесса не видно, а с ps как-то работать не приходилось. 4. Может кто знает прямую ссылку, на какую-нибудь доку, в которой описывается продвинутая(например по первому вопросу, и подобное) настройка jail. |
А еще на диске с пакаджами есть несколько утилит, может кто в курсе, что за штуковины такие?
jailadmin-1.7.tgz jailer-1.1.2.tgz jailutils-0.5.4.tgz jkill-1.0.tgz |
Dmitry am
Установи, полезные тулзы. В jail можно запускать не всю систему, а только процессы... Где то в сети я видел список файлов, которые точно не пригодятся в jail для хостинга с shell. Для того чтобы обновить весь jail достаточно в дире с сырцами сделать make installworld DESTDIR=/dir/to/jail |
Цитата:
|
Dmitry am
да, так и есть |
Есть несколько вопросов по статье "Использование jail(2) для предоставления untrusted shell access":
1. Там упоминается http и tcp прокси, какой софт имеется в виду? Для http видимо сквид, а что для tcp? 2. Там есть несколько вариантов монтирования файловой системы. А как это будет выглядеть? Создаем файловую систему jail, удаляем и заменяем лишнее на подмонтированные каталоги? И какой из вариантов лучше использовать, и где про это можно почитать? 3. Там картинка есть :-), mysqld загнан на отдельную виртуальную машину. А зачем? И что-то я не понял маневра: -"...Пользователи ходят из внутреннего shell-а на database jail по tcp..."; могли бы вы это прокомментировать? 4. А где там на картинке sendmail по идее находится? |
Время: 09:54. |
Время: 09:54.
© OSzone.net 2001-