Kiev1.org Карта сайта Файлы Фотографии Киева
  
Реклама:






Разделы
 
 Sysadmin
 Антиглобалисты
 Ереси и секты
 Катастрофы
 Компьютерные новости
 Непроверенное
 О проекте
 О фотогалерее
 Политика и власть
 Православие
 Предприятия Украины
 Протесты Людей против нового мирового концлагеря
 Разное
 Россия
 Старец Паисий 1924-1994
 Стояние за Истину
 Суды в Украине
 Тайна беззакония
 экуменизм


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться - самое главное думать своей головой и не верить легкомысленно всему что говорят, особенно советское телевидение
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"

Запуск Apache в jail environment под FreeBSD



В данной статье будет рассмотрена установка Apache в jail на примере порта apache13
Запуск Apache в jail environment под FreeBSD
В данной статье будет рассмотрена установка Apache в jail на примере порта apache13-modssl. На момент написания статьи это была версия apache+mod_ssl-1.3.28+2.8.15.

1. Читаем man jail(8) до полного понимания, что же jail из себя представляет.
# man jail
2. Создаем директорию, которая будет корнем файловой системы jail environment:
# mkdir -p /usr/jails/apache
3. Устанавливаем apache13-modssl из портов в эту директорию:
# cd /usr/ports/www/apache13-modssl
# make PREFIX=/usr/jails/apache install clean
4. Редактируем конфигурационный файл /usr/jails/apache/etc/apache/httpd.conf. Необходимо понимать, что корнем файловой системы для процессов в jail будет каталог /usr/jails/apache, и соответственно поправить все нужные пути. Например, вместо директивы
ServerRoot "/usr/local"
необходимо написать
ServerRoot "/"
, а вместо
DocumentRoot "/usr/local/www/data"
ввести
DocumentRoot "/www/data"
Автоматизировать этот процесс можно при помощи потокового редактора sed(1), например, так:
# cat /usr/jails/apache/etc/apache/httpd.conf | sed -e 's//usr/local////g' > temp.conf
# mv temp.conf /usr/jails/apache/etc/apache/httpd.conf
5. Создаем необходимые для работы каталоги.
# cd /usr/jails/apache
# mkdir -p dev usr/libexec usr/lib var/log var/run
6. Необходимо скопировать в jail environment все необходимые исполняемому файлу httpd библиотеки. Определить нужные помогут утилита strings(1). Утилита strings выводит все текстовые строки из указанного файла. Поскольку нас интересуют только shared library, используем grep(1) для отсечения лишних строк:
# strings /usr/jails/apache/sbin/httpd | grep ".so"
Вывод команды будет примерно таким:
/usr/libexec/ld-elf.so.1
libcrypt.so.2
libmm.so.13
libc.so.4
Найдя в системе при помощи find(1) или locate(1) эти библиотеки, скопируем их в каталоги jail environment:
# cd /usr/jails/apache
# cp /usr/libexec/ld-elf.so.1 usr/libexec
# cp /usr/lib/libcrypt.so.2 usr/lib
# cp /usr/local/lib/libmm.so.13 usr/lib
# cp /usr/lib/libc.so.4 usr/lib
Если Вы намерены использовать OpenSSL, понадобятся также следующие библиотеки:
# cp /usr/lib/libssl.so.3 usr/lib
# cp /usr/lib/libcrypto.so.3 usr/lib
7. Копируем нужные файлы из каталога /etc:
# cd /usr/jails/apache
# cp /etc/passwd /etc/group /etc/spwd.db etc
# cp /etc/resolv.conf etc
8. Чтобы иметь доступ к jail, назначим на один из ip-интерфейсов alias командой ifconfig(8):
# ifconfig xl0 alias 10.0.0.10/32
Пропишем этот IP в /usr/jails/apache/etc/hosts, дабы избежать лишних запросов к DNS:
# echo "10.0.0.10 test.mydomain.org" > /usr/jails/apache/etc/hosts
9. Запускаем Apache в jail:
# jail /usr/jails/apache test.mydomain.org 10.0.0.10 /sbin/httpd -DSSL -f /etc/apache/httpd.conf
Проверяем, запустился ли httpd:
# ps x | grep httpd
результат должен быть примерно таким:
20617 ?? SsJ 0:00,07 /sbin/httpd -DSSL -f /etc/apache/httpd.conf
Флаг J указывает на то, что процесс запущен в jail.
Проверяем доступность HTTP-сервера:
# telnet 10.0.0.3 80
Trying 10.0.0.3...
Connected to 10.0.0.3.
Escape character is '^]'.
Если процессы httpd по какой-то причине не запустились, причину следует искать в логе (по умолчанию в нашем примере это файл /usr/jails/apache/var/log/httpd-error.log).
10. Осталось настроить запуск jailed-httpd при загрузке системы. Можно создать простой скрипт /usr/local/etc/rc.d/apache.sh (не забыть сделать chmod +x на него):
<_CUT_>
#!/bin/sh
IFACE=xl0 # Jail IP interface name
case "$1" in
start)
ifconfig $IFACE alias 10.0.0.10/32
jail /usr/jails/apache test.mydomain.org 10.0.0.10 /sbin/httpd -DSSL -f /etc/apache/httpd.conf && echo -n ' apache'
;;
stop)
ifconfig $IFACE -alias 10.0.0.10
kill `cat /usr/jails/apache/var/run/httpd.pid` && echo -n ' apache'
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
;;
esac
exit 0
<_CUT_>

--
Читать: man: jail(8), chroot(2), httpd(8), grep(1), find(1), strings(1), rc.conf(5);
Apache documentation.
--

(c) Sergey V. Belov (aka Argail) 2003 mailto: argail@csite.ru

argail.csite.ru/unixdocs/freebsd/Apache_in_jail_on_FreeBSD.html





 Policy-Based Routing в os FreeBSD через ipfw
 Руководство по URL преобразованиям
 Описание синтаксиса и примеры работы с .htaccess
 Сервер удаленного доступа + callback на FreeBSD
 Очистка портов во FreeBSD, portupgrade
 Аутентификация на SSH сервере с использованием ключей
 Запуск Apache в chroot окружении


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"