18 января 2009

Запуск виртуальных хостов Apache2 от разных пользователей

mobitv-failed-security-opens-gaping-hole.JPG

Допустим у вас есть 3 пользователя, и они имеют сайты на вашем сервере, но при стандартном веб сервере apache2 все они имеют привелегии пользователя www-data от которого запущен веб сервер. Допустим, пользователь user1 при помощи простого php скрипта может просмотреть файлы в директории пользователя user2, так же получить доступ к файлам конфигурации сайта и в итоге к паролям от баз данных. Есть несколько способов решения этой пролемы, такие как chroot или jail, или запуск виртуальных хостов от имени разных системных пользователей. Для этого нам потребуетс установить немного модифицированный apache, для операционных систем Debian и Ubuntu он уже включен в официальные репозитории, насчет остальных не знаю, подробнее вы сможете узнать на сайте разработчика по адресу http://mpm-itk.sesse.net В настройке нет ничего трудного и заумет это всего несколько минут.

Читать далее »

15 комментариев »

20 декабря 2008

Запуск web сервера apache2 в среде chroot в Debian и Ubuntu.

vault-bank-backup-safe.jpg

Для начала давайте разберемся что такое chroot и для чего оно нам надо. Обратимся в wikipedia для разъяснения.

chroot в Unix-подобных операционных системах — это операция изменения корневого каталога. Программа, запущенная с изменённым корневым каталогом, будет иметь доступ только к файлам, содержащимся в данном каталоге. Поэтому, если нужно обеспечить программе доступ к другим каталогам или файловым системам (например, /proc), нужно заранее примонтировать в целевом каталоге необходимые каталоги или устройства.

Изменение корневого каталога производится при помощи системного вызова chroot(2). Изменение корневого каталога затрагивает только текущий процесс (то есть процесс, сделавший системный вызов chroot(2)) и всех его потомков. Если требуется запустить некоторую программу с изменённым корневым каталогом, но в данной программе не предусмотрено выполнение вызова chroot(2), используют программу chroot(8). Эта программа принимает в качестве параметров новый корневой каталог и путь к программе. Она сначала сама выполняет вызов chroot(2) для изменения собственного корневого каталога на указанный, а затем запускает программу по заданному пути. Так как изменённый корневой каталог наследуется потомками процессов, программа запускается с изменённым корневым каталогом.

Сам по себе термин chroot может относиться или к концепции изменений корневого каталога, или к системному вызову chroot(2), или к программе chroot(8), что обычно понятно из контекста.

Программа, корень которой был перенесён в другой каталог, не может обращаться к файлам вне этого каталога. Это обеспечивает удобный способ помещения в «sandbox» («песочницу») тестовой, ненадёжной или любой другой потенциально опасной программы. Это также простой способ механизма «jail» («тюрьмы»). Но наиболее часто chroot используется для сборки дистрибутивов или отдельных программ как бы в «чистой» среде.

Теперь можно начинать настройку нашего вебсервера, помещение его в среду chroot мы будем делать при помощи mod_chroot.

Читать далее »

7 комментариев »



Server load average: 0.97, 1.03, 0.78
Server uptime: 60 days, 14:07
Your IP is: 35.172.223.30.