|
Автор |
Сообщение |
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Apache в chroot окружении
Немного о протоколе http
Протокол http (Hyper Text Transfer Protocol), разработанный в 1993 году, изначально служил для пересылки небольших текстовых файлов, сейчас же он используется для пересылки больших двоичных файлов, изображений и т.д. На сегодняшний день действует стандарт HTTP/1.1, поддерживающий обьединение нескольких одновременных запросов в один поток.
Установка сервера
Для начала необходимо скачать последнюю стабильную версию сервера с apache.org в исходных кодах. Выбор опреционной системы зависит от вас, так как Apache может быть скомпилирован практически на любой из существующих на сегодня. В статье пойдет речь об установке и настройке сервера под Unix-like системы.
Перед компиляцией желательно создать UID/GID для Apache, иначе он будет запускаться с правами пользователя nobody и root для главного процесса.
Для FreeBSD:
~# pw groupadd apache
~# pw useradd apache -d /dev/null -g apache -s /sbin/nologin
Для Linux:
~# groupadd apache
~# useradd apache -d /dev/null -g apache -s /sbin/nologin
Компиляция производится под root'ом:
~# su
~# ./configure --prefix=/usr/local/apache --server-uid=apache --server-gid=apache \
--disable-module=all --enable-module=access --enable-module=dir \
--enable-module=mime --enable-module=auth \
--enable-module=log_config
~# make
~# make install
~# chown -R root:sys /usr/local/apache
Apache установлен в каталог /usr/local/apache со следующими модулями:
- acces - для разрешения или запрещения доступа
- dir - для работы сервера с index файлами
- mime - для заголовка Content-Type
- auth - аутентификация пользователей с использованием текстовых
файлов
- log_config - для ведения log журналов.
Создание chroot окружения
Далее необходимо создать chroot окружение:
~# mkdir -p /chroot/httpd/etc
~# mkdir -p /chroot/httpd/dev
~# mkdir -p /chroot/httpd/www
~# mkdir -p /chroot/httpd/var/run
~# mkdir -p /chroot/httpd/usr/lib
~# mkdir -p /chroot/httpd/usr/libexec
~# mkdir -p /chroot/httpd/usr/local/apache/bin
~# mkdir -p /chroot/httpd/usr/local/apache/logs
~# mkdir -p /chroot/httpd/usr/local/apache/conf
~# chown -R root:sys /chroot
Домашним каталогом сервера будет устройство /dev/null, поэтому создадим его:
~# mknod /chroot/httpd/dev/null c 2 2
~# chown root:sys /chroot/httpd/dev/null
~# chmod 666 /chroot/httpd/dev/null
Для правильной работы сервера необходимо создать сокет для syslogd (/chroot/httpd/dev/log). Как это сделать, читайте man syslogd.
Теперь скопируем все необходимые для работы сервера файлы в chroot, включая конфиг файл(httpd.conf), mime.types и index.html. В httpd.conf нужно изменить DocumentRoot на /www, так как каталог /chroot/httpd для нашего сервера будет корневым. Чтобы узнать какие файлы нужны, воспользуемся командами ldd, strings, strace(или truss для FreeBSD), в качестве параметра - /usr/local/apache/bin/httpd. При использовании truss и strace обратите внимание на функции open(). Получив список файлов, копируем их в соответствующие каталоги в chroot. Создадим базу данных паролей в каталоге /chroot/httpd/etc/.
Для FreeBSD:
~# touch /chroot/httpd/etc/pass
~# echo "nobody:*:65534:65534::0:0:none:/nonexistent:/sbin/nologin" >> /chroot/httpd/etc/pass
~# echo "www:*:80:80::0:0:www:/nonexistent:/sbin/nologin" >> /chroot/httpd/etc/pass
~# pwd_mkdb -d /chroot/httpd/etc pass
~# rm /chroot/httpd/etc/master.passwd
Для Linux:
~# touch /chroot/httpd/etc/passwd
~# echo "nobody:x:65534:65534:none:/:/sbin/nologin" >> /chroot/httpd/etc/passwd
~# echo "www:x:80:80:www:/:/sbin/nologin" >> /chroot/httpd/etc/passwd
~# touch /chroot/httpd/etc/group
~# echo "nobody:x:65534:"
~# echo "www:x:80:"
Все готово для запуска:
~# /usr/sbin/chroot /chroot/httpd /usr/local/apache/bin/httpd
Что почитать.
Apache-Overview-HOWTO - обзор
www.apache.org - официальный сайт.
Автор: Geksagen |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
|
|
 Главная страница сайта
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|