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

Докучаев Дмитрий 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 содержали опасную уязвимость.

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