Мини-хостинг в домашних условиях
Докучаев Дмитрий aka Forb
Xakep, номер #060, стр. 060-074-1
(forb@real.xakep.ru)
Правильная установка web-сервисов
Представь себе такую картину: ты заходишь на свой сайт, чтобы полюбоваться на счетчик посещаемости. Но вместо приятного дизайна обнаруживаешь радостную надпись «defaced by sup3r-k4k3r t34m» :). И произошло все это лишь из-за того, что ты не уделил должного внимания сервисам, установленным на твоем сайте. В итоге хакер получил возможность ковыряться в недрах твоего проекта. Чтобы этого не произошло – читай статью дальше. Мы научимся секьюрно ставить нужные сервисы для сайта.
Подготовка к работе
Итак, ты обзавелся личным серваком, на котором пока не установлено никаких сервисов. Для нормальной работы любого сайта (или готовых движков, которых уже полно в инете) тебе потребуется наличие веб-сервера, демона mysqld и ряда других дополнительных модулей, встраиваемых непосредственно в Apache (mod_perl, mod_ssl и mod_php).
Web-основа
Для начала необходимо установить сам web-сервер. Я весьма рекомендую ставить Apache версии 1.3.28 из-за его стабильности. Второй апач я пока не ставил, т.к. он еще слишком сырой.
Поехали ставить. Для начала слей сам архив - apache.rinet.ru/dist/httpd/apache_1.3.28.tar.gz. Далее создавай временный каталог, например, soft. Скопируй туда скачанный архив. Распакуй его. На этом пока можешь остановиться. Прямо сейчас мы не будем собирать web-сервер – нам еще нужно сынтегрировать его с остальными модулями.
Поднимаем базу данных
Теперь перейдем к mysql. Последовательность установки выбрана не случайно, потому что последующий проект будет зависеть от предыдущего. В нашем случае, библиотеки mysql необходимы для модуля php, но я забегаю немного вперед.
В общем, скачивай свежую версию БД с официального сайта mySQL (mysql.tsuren.net/Downloads/MySQL-3.23/mysql-3.23.58.tar.gz) и распаковывай ее в папку soft. Далее идет стандартная операция конфигурирования: ./configure --prefix=/usr/mysql (префикс может быть другой, но я использую именно этот путь).
После успешной конфигурации можно компилировать исходники. Делается это стандартными командами make и make install. Теперь попробуем запустить mysqld – на этом этапе у многих возникают проблемы, потому что перед стартом сервиса необходимо еще проставить права на datadir пользователю mysql. Этот юзер также должен быть добавлен в систему:
# cd /usr/mysql/bin && mysql_install_db
# groupadd mysql
# useradd mysql -s /dev/null -g mysql -d /usr/mysql/data
Первой командой ты проинсталлируешь настройки mysql (без нее сервис не запустится), затем добавишь группу mysql и создашь пользователя с тем же именем. Новый юзер будет иметь акцес к каталогу /usr/mysql/data. Остался последний штрих – запустить сервис. Переходим в папку /usr/mysql/bin и выполняем команду:
# ./mysqld_safe –-user=mysql &
Если все сделано верно, то демон запустится и уйдет в бэкграунд. Проверить его работу можно командой mysql, которая сконнектит тебя с базой данных.
Теперь нам необходимо ее немного обезопасить. Во-первых, установи пароль на root, который по умолчанию вообще отсутствует. Я лично встречал серверы с такой дефолтовой настройкой mysqld. Взламываются они всего за пару минут. Так что меняй пасс: