Сергей Яремчук
Панель управления хостингом ISPConfig
Управление хостингом никогда не являлось простой задачей. Здесь на помощь приходят специальные инструменты, называемые панелями управления хостингом. Одним из таких решений является ISPConfig.
В журнале уже шла речь об одной из панелей управления хостингом – SysCP [1]. Недавнее знакомство с этим продуктом показало, что за прошедший год мало что изменилось, номер версии далеко вперед не ушел (сегодня актуальна 1.2.19). Но анализ ссылок по запросу «hosting» на сайте freshmeat.net показал, что расклад среди свободных решений стал несколько иной. Из всего списка постоянно обновляются всего десяток проектов. На момент написания этих строк проблем с локализацией не было в SysCP, DTC, VHCS, ispCP. Проект VHCS (Virtual Hosting Control Panel) [6] уже практически два года не обновлялся и содержит несколько критических ошибок. Учитывая, что некоторые разработчики на его основе создали ispCP, использовать VHCS не стоит.
Есть средства для локализации и в ISPConfig [2], о котором речь пойдет дальше, но в последней стабильной версии 2.2.25 этому вопросу приходится уделять несколько больше времени, чем в остальных продуктах. Тем более что здесь небольшая путаница. В описании на сайте сказано, что русский язык поддерживается изначально, но в процессе установки и работы он не предлагается вообще (см. рис. 1), хотя языковые файлы присутствуют (не для всех меню). Отдельно файлы локализации можно скачать по адресу [3]. В версии 3, находящейся в стадии активной разработки, русский интерфейс пока недоступен. Но система имеет удобный интерфейс для его локализации, и при знании базового английского, потратив несколько часов, легко это сделать самостоятельно. Готовый на 80% файл доступен на странице «Исходный код» сайта журнала [4] и отправлен авторам ISPConfig, по завереням которых будет в ближайшем времени выложен на SVN.
Рисунок 1. В интерфейсе ISPConfig русский язык не предлагается
В остальном функции проектов схожи, и, выбрав любой, можно:
- управлять веб-сервером (обычно Apache 1.x/2.x), создавать виртуальные серверы;
- редактировать DNS-записи (A, CNAME, MX, иногда SPF) на поддерживаемом DNS-сервере, создавать домены и субдомены;
- управлять базами и пользователями MySQL (другие почему-то мне не встречались, по крайней мере в списке основных);
- управлять виртуальными почтовыми серверами и ящиками пользователей;
- управлять почтовыми фильтрами, автоответчиками, антиспам- и антивирус-проверками, работать с почтой через веб-интерфейс;
- устанавливать дисковые квоты и лимиты трафика;
- управлять виртуальными FTP-серверами и пользователями;
- управлять SSL-сертификатами, использованием PHP и CGI;
- несколько уровней доступа в зависимости от задач: администратор сервера, реселлер, пользователь (ресурсов сервера). Некоторые решения предоставляют и возможность доступа к почтовым ящикам и обычным пользователям;
- собирать статистику по всем вопросам;
- отслеживать обращения в техподдержку (ticket system).
Все эти функции есть и ISPConfig. Отличия лишь в серверах, которые поддерживает та или иная панель. Если места для веб и СУБД традиционно заняты Apache и MySQL (альтернативы для них предлагаются реже), то для организации SMTP/POP3/IMAP может быть задействовано любое из доступных сегодня свободных решений. Поэтому при выборе хостинг-панели следует внимательно присмотреться к требованиям. Но, например, Domain Technologie Control (DTC) [5], который на сегодня поддерживает самое большое количество серверов, из-за своей функциональности не так прост в установке. Не спасает и то, что он есть в репозитариях многих дистрибутивов (например, в отличие от остальных решений он единственный присутствует в Ubuntu).
Официально ISPConfig поддерживает все популярные сегодня дистрибутивы: Mandrake 8.1 – 10.2, Mandriva от 2006, Red Hat Linux 7.3 – 9.0, Fedora (Core) от 1, CentOS 4.1 до 5.2, SuSE Linux 7.2 – 11.0, OpenSuSE от 5.2, Debian от 3.0 и Ubuntu от 5.04. Хотя, вероятно, будет работать и в других решениях, для которых доступны:
- Apache 1.3.х или / 2.х;
- Sendmail или Postfix;
- ProFTPd и Pure-FTPd как (standalone) или vsftpd как (inetd/xinetd/standalone);
- PHP 4.0.5 и выше;
- MySQL 4/5;
- POP3/IMAP, поддерживающий форматы – традиционный Unix-Mailbox (gnu-pop3d, qpopper, ipop3d, popa3d или vm-pop3d) или Maildir (Courier-IMAP, Dovecot);
- BIND 8/9 для ISPConfig 2 или MyDNS для ISPConfig 3;
- phpMyAdmin, Webalizer, Quota, iptables или ipchains.
И некоторые другие приложения. На странице закачки можно найти ссылки на некоторые дополнительные инструменты, расширяющие стандартные возможности ISPConfig. Распространяется ISPConfig по BSD-лицензии.
Установка ISPConfig
Как уже говорилось, на данный момент развиваются две версии: стабильная 2.2.25 и тестовая 3.0.0.6 Beta. Их интерфейс, а также процесс установки и локализации отличаются. Например, в версии 3 для установки компонентов используются программы из репозитария дистрибутива, а в версии 2 некоторые приложения (Apache 1.3.41, ClamAV 0.93.3, PHP 5.2.6 и некоторые другие) компилируются из исходных текстов. Все программы, которые нужно компилировать, включены в архив, поэтому и размер его почти 45 Мб. Даже при соблюдении всех инструкций компиляция иногда заканчивается неудачей, и установочные скрипты по разным причинам (чаще несовместимость библиотек) отказываются дальше работать. Скрипты рассчитаны именно на такую установку, к ним привязаны и инструкции. Если, к примеру, необходим Apache2, процесс установки несколько усложняется.
Так как в будущем, вероятно, версия 3 будет основной, о ней и пойдет речь дальше. Хотя, сравнивая возможности интерфейса, версия 3 на данный момент проигрывает 2. Например, возможности реселлера пока реализованы не полностью, поэтому грань между ним и пользователем практически отсутствует. Но для организации хостинга без реселлеров того, что есть, вполне достаточно. Также будем учитывать, что перед нами все-таки бета, и в дальнейшем все может измениться.
В качестве системы для установки рекомендованы Debian 4.0 или Ubuntu 7.10. Я использовал Ubuntu 8.04 LTS, проблем в работе замечено не было. Инструкции по установке найдете на сайте проекта и внутри архива.
Вначале обновляем систему:
$ sudo apt-get update
$ sudo apt-get -u upgrade
Приступаем к установке компонентов будущей системы, если какие-то из пакетов уже в системе присутствуют, их установку можно пропустить. Устанавливаем Postfix, Courier, Saslauthd, MySQL, phpMyAdmin:
$ sudo apt-get install postfix postfix-mysql mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop \
courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4
В процессе установки приложений мастер настройки пакетов будет задавать вопросы по конфигурации. При установке Courier на вопрос «Create directories for web-based administration?» отвечаем «No». При установке Postfix на вопрос «General type of configuration?» выбираем «Internet site». Далее вводим имя почтового домена и на вопрос «SSL certificate required» выбираем «Ok».
Пароль для пользователя root в MySQL по умолчанию отсутствует. Его нужно добавить.
$ mysqladmin -u root password password
Теперь очередь Amavisd-new, Spamassassin и Clamav:
$ sudo apt-get install amavisd-new spamassassin clamav clamav-daemon zoo nomarch lzop cabextract apt-listchanges libnet-ldap-perl \
libauthen-sasl-perl daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl libnet-dns-perl
Дальше Apache2, PHP5 и phpMyAdmin:
$ sudo apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common \
php5-gd php5-mysql php5-imap phpmyadmin php5-cli
После установки веб-сервера следует активировать некоторые модули:
$ sudo a2enmod suexec
$ sudo a2enmod rewrite
$ sudo a2enmod ssl
$ sudo a2enmod fastcgi
Далее для работы потребуется модуль capability. В версии 8.04 он вкомпилирован в ядро:
$ grep -i capabilities /boot/config-2.6.24-16-generic
CONFIG_SECURITY_CAPABILITIES=y
Иначе его следует загружать в виде модуля:
$ sudo modprobe capability
$ sudo echo 'capability' >> /etc/modules
Ставим пакеты Pure-FTPd и quota:
$ sudo apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Отключаем определение имен узлов в журнале Pure-FTPd, при этом записи станут менее информативными, но зато будет требоваться меньше ресурсов:
$ sudo sh -c 'echo 'yes' > /etc/pure-ftpd/conf/DontResolv'
Для третьей версии ISPConfig в качестве DNS-сервера рекомендуется MyDNS. На вопрос «Почему?» ответа не получил. Все стартовые скрипты рассчитаны именно на него, а не BIND. В репозитарии Ubuntu MyDNS нет, поэтому его нужно скомпилировать. Ставим пакеты, необходимые для сборки:
$ sudo apt-get install build-essential libmysqlclient15-dev
Скачиваем и устанавливаем MyDNS обычным образом:
$ wget http://mydns.bboy.net/download/mydns-1.1.0.tar.gz
$ tar xvfz mydns-1.1.0.tar.gz
$ cd mydns-1.1.0
$./configure
$ make
$ sudo make install
И, наконец, средства анализа файлов журналов vlogger и Webalizer.
$ sudo apt-get install vlogger webalizer
С установкой зависимостей закончили. Теперь скачиваем архив с ISPConfig, распаковываем и ставим:
$ wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.6-beta.tar.gz
$ tar xvfz ISPConfig-3.0.0.6-beta.tar.gz
$ cd ispconfig3_install/install/
$ sudo php -q install.php
После запуска установочный скрипт будет задавать ряд вопросов (см. рис. 2).
Рисунок 2. Работа установочного скрипта
Здесь ничего необычного. В квадратных скобках предлагаются ответы по умолчанию, если он не подходит, вводим свое значение. После установки информацию можно найти в журнале /var/log/ispconfig_install.log:
- Select language (en,de) [en]: – выбираем язык;
- Installation mode (Standard,Expert) [Standard]: – вариант установки.
В варианте Expert скрипт будет задавать чуть больше вопросов по настройке конкретного сервиса, обычно необходимости прибегать к нему нет.
- Full qualified hostname (FQDN) of the server, eg foo.example.com [example.com]: – вводим полное имя сервера;
- MySQL server hostname [localhost]: – параметры для доступа к MySQL.
Если MySQL принимает подключения не на стандартном порту, придется подправить команду подключения внутри установочного скрипта.
- MySQL root username [root]: – имя root;
- MySQL root password []:password – пароль для root;
- MySQL database to create [dbispconfig]: – создание базы данных.
Далее скрипт создаст базы данных и таблиц, и будет сгенерирован сертификат, в процессе создания которого будут заданы традиционные вопросы (страна, город, организация и так далее) и предложено указать порт для подключения к ISPConfig. По умолчанию – 8080, если этот порт уже занят, меняем его, введя новое значение.
Затем будут созданы пользователь и группа ispconfig, установлены задания для crontab и запущены все сервисы.
Веб-интерфейс ISPConfig
После установки набираем в браузере http://hostname:8080, для регистрации используем учетную запись – admin и пароль – admin (пароль после регистрации не забываем сменить). Интерфейс визуально разделен на три поля и стандартен для такого рода программ (см. рис. 3). Вверху находится основное меню, открывающее доступ к определенным настройкам: System, Client, Email, Monitor, Sites, DNS. Плюс по умолчанию отключенный модуль BE Designer (включается в настройках учетной записи). При выборе любого пункта слева будет доступна группа меню, относящаяся к нему. Все настройки производятся в центре страницы. Чтобы разобраться с возможностями интерфейса, достаточно потратить полчаса времени, все находится на своих местах и там, где ожидаешь. Сюрпризов не возникает. На создание новой DNS-записи, домена, субдомена, виртуального почтового или веб-сервера, почтового ящика и прочего уходит 1-2 минуты. Заполняем предложенные поля и следуем указаниям системы, в случае проблем появится предупреждающая надпись.
Рисунок 3. Интерфейс администратора ISPConfig
При создании учетной записи нового пользователя доступные ему пункты меню реализуются при помощи подключения модулей. Последняя функция очень удобна, так как пользователю можно дать именно такой интерфейс, который полностью подходит для выбранной задачи. Ни больше ни меньше. Например, можно создать несколько записей с правами администратора, передав им часть функций по управлению. Меню BE Designer позволяет редактировать меню, убирать или добавлять новые пункты. При создании клиентской учетной записи есть возможность установки разнообразных лимитов.
Интерфейс версии 3 переведен на 6 языков, русского в этом списке нет. Но разработчики предоставили удобный инструмент, чтобы сделать это самостоятельно.
В меню System находится отдельный пункт Language Editor. Есть, как минимум, два варианта работы с ним. Для начала создаем новый язык, выбрав New Language, затем в поле Select language basis указываем язык, используемый в качестве базового, и вводим название из двух букв, в New language (в нашем случае ru). Теперь, перейдя в меню Languages, выбираем в списке Select language свой язык и получаем возможность редактирования отдельных файлов при помощи веб-интерфейса (см. рис. 4). Но удобнее экспортировать языковый файл, выбрав в меню Export язык. Созданный файл сохраняем на жесткий диск, в дальнейшем его можно редактировать при помощи любого текстового редактора, поддерживающего юникод. По окончании импортируем его через меню Import.
Рисунок 4. Редактирование языкового файла
Несмотря на то что перед нами пока еще версия ISPConfig, находящаяся в разработке, она полностью справляется со своими задачами. Если часто необходимо редактировать DNS-записи, создавать виртуальные серверы, стоит присмотреться к этому решению.
- Яремчук С. Панель управления хостингом SysCP. //Системный администратор, №8, 2007 г. – С. 74-79.
- Сайт проекта ISPConfig – http://www.ispconfig.org.
- Файл локализации для версии 2.x – http://www.wifi-ufa.ru/ispconfig.ru.lng.zip.
- http://www.samag.ru/source.
- Сайт проекта Domain Technologie Control – http://www.gplhost.com/software-dtc.html.
- Сайт проекта VHCS – http://vhcs.net.