Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Apache в chroot окружении

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Сеть
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пт Окт 05, 2007 6:46 am    Заголовок сообщения: Apache в chroot окружении
Ответить с цитатой

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
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Сеть Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис