Мини-хостинг в домашних условиях

Докучаев Дмитрий aka Forb

Xakep, номер #060, стр. 060-074-3


Последняя версия на момент написания статьи - openssl-0.9.6k.tar.gz. Берем ее с официального сайта www.openssl.org и устанавливаем. В инсталляции SSL нет ничего сложного – это стандартные команды конфигурирования и компилирования.

Намного интереснее проходит установка самого модуля mod_ssl. Забираем его по адресу ftp.cvut.cz/mod_ssl/source/mod_ssl-2.8.15-1.3.28.tar.gz и распаковываем скачанный архив. Далее запустим configure со следующими параметрами:

# ./configure --with-apache=../apache_1.3.28 --with-ssl=../openssl-0.9.6k --prefix=/usr/apache --activate-module=src/modules/php4/libphp4.a

Теперь перейдем в каталог apache_1.3.28 и завершим сборку командами make, make certificate и make install. При выполнении второй команды у тебя спросят секретную фразу. Относительно нее будет сгенерирован ключ по алгоритму DSA или RSA. Запомни этот пароль – у тебя его еще спросят при запуске Apache.

Шлифуем httpd.conf

Перед тем как запустить веб-сервер, необходимо немного подправить его конфиг (каталог /usr/apache/conf). Что мы будем менять? Во-первых, следует записать директиву AddType для того, чтобы сервер распознавал php-скрипты:

AddType application/x-httpd-php .php .php3 .phps .phtml

Затем включим поддержку SSI в .shtml файлах:

AddType text/html .shtml

AddHandler server-parsed .shtml

И в заключение поправим пару опций, относящихся к модулю mod_ssl. Дело в том, что при старте апач спрашивает пароль. Я думаю, такой интерактивный запуск тебя не обрадует. Для того чтобы сервер стартовался молча, в httpd.conf добавим следующую строку:

SSLPassPhraseDialog exec:/usr/apache/bin/password.pl,

Затем напишем простенький скрипт:

#!/usr/bin/perl

print “passphrase\n”;

Где passphrase – пароль, который ты задавал во время выполнения make certificate. По секьюрным соображениям на скрипт устанавливается атрибут 700, чтобы злобный хакер не оказался в шоколаде.

Все! Можешь запускать сервер командой /usr/apache/bin/apachectl startssl. Если все было сделано правильно, то сценарий запустит апач с поддержкой SSL, а также с двумя дополнительными модулями: mod_perl и mod_php.

Слово о безопасности

При наличии запароленных зон, храни аккаунт к www в зашифрованном виде с обязательным атрибутом 400 на файл. Очень часто хакер узнает пароль системного пользователя чтением именно этих файлов. Также используй метод шифрования MD5, а не DES, т.к. последний довольно легко поддается дешифрации тем же John The Ripper’ом. Также регулярно читай логи апача. В них много интересной информации. По крайней мере, по ним ты сможешь узнать, кто же тебя пытается поломать.

Кстати, о багах. Не думай, что веб-сервер, построенный на основе этой статьи, будет абсолютно защищенным. Каждый день обнаруживаются новые ошибки в программном обеспечении (а как следствие – к ним появляются эксплоиты), через которые любой хакер сможет порулить твоей системой. Так что я рекомендую тебе подписаться на рассылку Bugtraq и вовремя обновлять корявые модули.

Назад на стр. 060-074-2  Содержание  Вперед на стр. 060-074-4