Мини-хостинг в домашних условиях
Докучаев Дмитрий 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 и вовремя обновлять корявые модули.