Мини-хостинг в домашних условиях
Докучаев Дмитрий aka Forb
Xakep, номер #060, стр. 060-074-2
# mysqladmin –u root password “пароль”
Но и это еще не все. Для собственной безопасности разрешим руту заходить только с localhost (все движки используют локальный хост для коннекта). Для этого немного скорректируй таблицу user в базе mysql:
# mysql –u root –p
Password: новый пароль
mysql> \u mysql
mysql> update user set host=”localhost” where user=”root”
И, наконец, закроем порт фаерволом, чтобы хакеры вообще не знали о наличии сервиса:
# iptables –j REJECT –s ! 127.0.0.1 –p tcp –-dport 3306 –A INPUT
# service iptables save
PHP – рай для дизайнера
После того как база mysql установлена, можно приступать к модулю php. Помнишь, я говорил, что тебе потребуются сорсы апача? Они нужны именно для mod_php. Скачивай php по адресу ru2.php.net/distributions/php-4.3.3.tar.bz2 и запускай конфигурационный скрипт:
# ./configure --with-apache=../apache_1.3.28 --enable-mod_charset --with- mysql=/usr/mysql
# make && make install
После этого mod_php скомпилится с поддержкой mysql (будут доступны функции mysql_connect и прочие). Теперь отредактируем файл /usr/local/lib/php.ini (если он отсутствует – перенеси конфиг из установочного каталога). В нем необходимо изменить некоторые переменные. Одна из них - register_globals - по умолчанию отключена. Включение этой директивы приведет к автоматическому преобразованию всех параметров скрипта в переменные php. В свежих версиях php довольно сложно переполнить буфер через подбор длины параметра, поэтому для удобства программирования можно включить эту опцию.
Если ты хочешь узнать полный список переменных, которые тебе следует включить/выключить, почитай статью «Песнь о багах в PHP или админ в шкуре скрипт-кидди» (02.2003).
А как же Perl?
Нет, я не забыл про Perl-программистов. Специально для cgi-сценариев мы установим mod_perl. Этот модуль ощутимо поднимет производительность работы скриптов - скрипт будет интерпретироваться самим web-сервером, а не передаваться бинарнику /usr/bin/perl (так происходит при отсутствии mod_perl).
Перед скачиванием модуля убедись, что в системе уже установлен Perl. Если все перловые бинарники и либы находятся на своих местах, то сливай mod_perl (perl.apache.org/dist/mod_perl-1.0-current.tar.gz).
Внутри архива ты найдешь стандартный Makefile.PL, генерирующий Makefile-скрипт. Обработаем этот скрипт перлом с параметрами APACHE_SRC=../apache_1.3.28/src DO_HTTPD=1 USE_APACI=1 EVERYTHING=1. После этого сценарий создаст Makefile, который можно скормить утилите make. И, наконец, make install’ом завершим установку модуля.
Mod_perl довольно надежный модуль (по крайней мере, в последних его версиях багов не обнаружено), поэтому никаких конфигов, а тем более сорсов мы править не будем.
Шифруемся по полной
Последним модулем, который мы установим, будет mod_ssl. Он позволяет создавать шифрование всего трафика, проходящего через веб. Я думаю, ты знаешь, когда применяется SSL. Например, при исполнении секьюрных php/cgi скриптов: оплата счетов, заполнение секретных форм и т.д. Короче говоря, этот модуль нам совсем не помешает. Главное взять самую свежую версию, т.к. предыдущие модификации openssl содержали опасную уязвимость.