ispCP: решение для управления доступными ресурсами и сетевыми сервисами
Сергей «grinder» Яремчук (grinder@ua.fm)
Управление хостингом даже при тщательно спланированной архитектуре и кропотливом выборе компонентов только на первый взгляд может показаться простым. По мере увеличения виртуальных пользователей следить за всем будет на порядок труднее и все больше времени придется тратить на администрирование. Специализированные решения вроде ispCP помогут упростить эту задачу.
Содержание:
- Панель управления хостингом ispCP
- Установка ispCP
- Веб-интерфейс ispCP
- Заключение
- Врезка: Проект DTC
- Врезка: Модуль Virtualmin
- Врезка: Проект System Control Panel (SysCP)
- Боковые выносы
Панель управления хостингом ispCP
Хостинг хостингу рознь, но только поначалу раздача места на сервере может показаться стандартной и решаемой ручной правкой конфигов или с помощью скриптов. Задач у хостера много: необходимо выделять и квотировать место на FTP- и Web-серверах, управлять субдоменами и DNS-записями, следить за использованием трафика и установленными лимитами, создавать учетные записи почтового сервера, администрировать базы данных. Также нужно не забыть про резервное копирование, борьбу со спамом и вирусами. Да, конечно, шаблоны и скрипты могут упростить работу, но каждое изменение конфигурации, например добавление еще одного почтового адреса для субдомена, потребует вмешательства специалистов, время которых стоит дорого. Выход из этой ситуации один – использование программ, упрощающих управление виртуальным хостингом. Такие решения имеют понятный графический интерфейс и ориентированы на обычного юзера. Администратор или менеджер создает новых реселлеров и пользователей, параллельно активируя нужные им ресурсы: объем места под сайт и FTP, количество поддоменов, почтовых адресов, СУБД. Остальными параметрами (логины, пароли и т.д) управляют уже сами пользователи, которым предлагается упрощенная панель.
По запросу «hosting» на сайте нам предложат 170 ссылок. Однако под нашу задачу подходит всего пара десятков проектов, из которых только несколько обновляются регулярно. Тем не менее, оптимальную панель управления хостингом можно найти. Среди коммерческих – CPanel, DirectAdmin, Plesk. Присутствуют и свободные продукты, доступные бесплатно. Кроме лицензии, при выборе следует внимательно ознакомиться с поддерживаемыми сервисами, которыми можно управлять при помощи этой панели. К сожалению, универсального решения на все случаи жизни не существует. Опыт показывает, чем больше проект поддерживает сервисов, тем больше вероятность того, что с его установкой придется порядочно повозиться. Еще один момент, на который следует обратить внимание – доступность локализованного интерфейса. На момент написания этих строк проблем с локализацией не было в SysCP, DTC, VHCS, ispCP. Есть средства для локализации в ISPConfig, но в последней стабильной версии 2.2.25 русификации придется уделить несколько больше времени, чем конкурентам. Третья ветка ISPConfig, находящаяся в стадии активной разработки, с великим и могучим пока не дружит. Хотя система предлагает удобный интерфейс для локализации, и при знании базового английского, потратив всего пару часов, легко это сделать самостоятельно. По моему мнению, самым простым в установке и настройке является ispCP, поэтому далее речь пойдет именно о нем.
Проект ispCP (isp Control Panel, ) возник в марте 2007 года как форк VHCS (Virtual Hosting Control Panel, ). Последний представляет собой довольно мощное и удобное в работе решение, но, к сожалению, давно не обновлялся и содержит множество ошибок, в том числе связанных с безопасностью, поэтому использовать его не стоит. Тем более что ему есть замена в виде ispCP. Кстати, настройки VHCS можно перенести в ispCP, правда, вручную.
Задача ispCP аналогична родительскому – предоставить администраторам удобный интерфейс для управления виртуальными узлами. Используя эту хостинг-панель, можно управлять настройками Apache2 с PHP5, Bind9, MySQL, Courier, Procmail, Postfix, Postgrey, ProFTPd, AWStats, iptables, Sasl, rkhunter и некоторыми другими.
Поддерживается три вида учетных записей (традиционных для подобных инструментов): администраторы, реселлеры и пользователи. Интерфейс администраторов позволяет создавать новые учетные записи, указывать квоты, доступные ресурсы и т.д. Реселлер может создавать пользователей и передавать (если быть точнее, то продавать) им часть «своих» ресурсов.
Исходный код доступен под лицензией GNU GPL v2. Для локализации используется GNU gettext. Интерфейс в настоящее время переведен на 28 языков, в том числе и русский, текущее состояние перевода можно узнать по адресу . Документацией проект еще только начинает обрастать, но достаточно потратить на изучение ispCP час, как необходимость в ней уже отпадает.
Минимальные требования значатся как: компьютер с процессором класса Pentium III 500 МГц, ОЗУ 256 Мб, 100 Мб свободного места на диске для установки. В процессе инсталляции понадобится подключение к интернет. Последняя версия (на момент написания статьи – 1.0.0 RC6) без проблем ставится на CentOS, RedHat, Fedora, Debian, Ubuntu, SUSE, openSUSE, Slackware, Gentoo, FreeBSD и OpenBSD. Для этих систем в подкаталоге ./docs/$YourSystem/$System-packages, в архиве с исходными текстами, уже есть готовые установочные скрипты. Вполне вероятно, ispCP можно заставить работать и в других дистрибутивах, это займет лишь чуть больше времени.
Сам процесс упрощен даже по сравнению с VHCS. Обновляем систему:
$ apt-get update && apt-get upgrade
Установку лучше производить на чистую систему, присутствие «лишних» сервисов (например Sendmail, Exim и т.д.) вызовет конфликт, что приведет к остановке процесса. Устанавливаем пакеты для компиляции, MySQL и задаем пароль администратора:
$ sudo apt-get install mysql-client mysql-server build-essential $ mysqladmin -u root password password
Скачиваем архив с сайта проекта и распаковываем его:
$ tar xjvf ispcp-omega-1.0.0-rc6.tar.bz2 $ cd ./ispcp-omega-1.0.0
Для Ubuntu 8.04 LTS используем такую команду:
$ sudo apt-get install $(cat ./docs/Ubuntu/ubuntu-packages-hardy)
В процессе установки пакетов будут запрашиваться параметры отдельных сервисов:
- при установке Courier на вопрос «Create directories for web-based administration?» отвечаем «No»;
- при установке Postfix выбираем «Интернет сайт»;
- при установке ProFTPd выбираем «Standalone»;
- при установке rootkithunter везде выбираем «yes».
Опционально можно заглянуть в файл configs/ubuntu/ispcp.conf и подправить ряд переменных. Хотя в большинстве случаев можно поинтересоваться им уже после установки и настройки.
Компилируем:
$ sudo make install
Копируем все файлы из временного каталога в корень:
$ sudo cp -Rv /tmp/ispcp/* /
Далее нам понадобится рутовский терминал, через sudo выполнить следующие команды нельзя:
$ sudo -s # cd /var/www/ispcp/engine/setup
И ставим:
# perl ispcp-setup
Установочный скрипт начнет последовательно задавать вопросы, в квадратных скобках будут предлагаться значения по умолчанию. Сначала создается аккаунт для ftp-пользователя. Нажимаем <Enter>, пароль генерируется автоматически:
Please enter ispCP ftp SQL user password. [auto generate]:
ispCP ftp SQL user password set to: ecCKC78aM,wqolI7(
Теперь отвечаем на вопрос о названии учетной записи phpMyAdmin и пароле для нее, затем указываем логин (по умолчанию admin), пароль и email администратора ispCP, IP-адрес второго DNS-сервера и активацию AWStats. На этом установка закончена, не забываем удалить временные файлы.
Регистрируемся в системе, используя логин admin и пароль, указанный при установке.
По умолчанию язык интерфейса английский. Для локализации переходим в Setting – Internationalization и нажатием кнопки Browse в поле Install new language указываем на файл russian, находящийся в каталоге language-file установочного архива. После этого нажимаем кнопку Install. Новый язык появится в поле Installed languages, отмечаем его как Default и нажимаем кнопку Save. При необходимости аналогичным образом устанавливаем другие языки, пользователи затем сами смогут выбрать себе предпочитаемый вариант.
Интерфейс визуально разделен на 3 части. Вверху располагаются 6 кнопок для доступа к основным настройкам, их назначение понятно из названия: Общая информация, Управление пользователями, Системные инструменты, Статистика и Служба поддержки и Настройки. Выбор любого из них откроет специфические меню в левой колонке, все настройки производятся в центре окна.
После установки следует перейти в меню «Общая информация» – «Статус сервера» и убедиться, что все сервисы запущены и работают нормально. Также стоит удостовериться, что все они настроены на автозапуск. Проще это сделать, перезагрузив сервер и вернувшись в это окно посмотреть еще раз статистику. Если все работает, значит, можно не беспокоиться, иначе правим стартовые скрипты. Перейдя в подпункт «Лог админа», можно просмотреть все события, связанные с работой ispCP (регистрация, создание пользователей, ошибки входа и т.д.). Изменить порт любого сервиса на нестандартный можно в «Настройки» – «Порты сервера». Информация о параметрах системы, меню для обновления ispCP и мускула находятся в меню «Системные инструменты».
Если ошибиться при вводе пароля, в первый раз будет введена задержка в 15 секунд, затем в 30, а после третьей неудачной попытки IP блокируется на полчаса. Это поведение можно изменить в меню «Настройки». В подпункте «Общие настройки» в поле «Password settings» выставляется минимальная длина пароля и (де)активируется режим строго пароля. Режимы блокировки входа при неудачных попытках выставляются в поле «Определение атаки-перебора».
Кроме стандартных возможностей, заложенных в интерфейсе, в пункте «Персональное меню» можно создать свою кнопку, назначив ей определенное действие и уровень, на котором она будет доступна (администратор, реселлер или пользователь).
По умолчанию всем пользователям будет доступен только один IP-адрес и домен, указываемый при установке. Если сервер имеет несколько сетевых интерфейсов или обслуживает несколько доменов, информация о них указывается в разделе «Управление IP-адресами», а при создании новой учетной записи реселлера или пользователя отмечаются доступные ему домены. Если трафик не безлимитный, стоит зайти в «Настройка трафика сервера» и установить предупреждения и лимиты. В общем, управление сервером в ispCP довольно простое, все работает после установки в режиме по умолчанию. В конфигурационные файлы придется заглядывать только при необходимости тонкой настройки под экзотическую ситуацию.
После установки в системе присутствует только одна учетная запись со статусом администратора. Добавить другие, можно перейдя в меню «Управление учетными записями». В ispCP, в отличие от некоторых других решений, администратор сам не может отдавать отдельным пользователям запрашиваемые ресурсы. Эта функция возложена на реселлеров, роль которых могут играть менеджеры. Поэтому в этом меню администратор может создавать только других администраторов и реселлеров, а также переназначить реселлера или пользователя другому админу или реселлеру. Здесь же можно просматривать список активных пользовательских сессий и при необходимости завершать их. В пункте «Почтовая рассылка» можно набрать сообщение и отправить его выбранной группе пользователей. Эту возможность обычно используют для оповещения об акциях, новых тарифах и т.д.
Интерфейс реселлера несколько отличается от админского. Здесь уже появились меню «Управление хостинг планами» и «Управление заказами». В первом настраиваются шаблоны хостинга под разные условия (лимиты места на диске, трафика, поддоменов, почтовых ящиков, стоимость и т.д.). Во втором устанавливаются шаблоны заказов хостинга и показываются новые заказы. Пользователи и псевдонимы доменов создаются в меню «Управление пользователями». При выборе пункта нас встречает пошаговый мастер, который поможет быстро настроить все параметры. При создании пользователя следует учитывать свои лимиты. То есть если лимит места на диске у реселлера 1 Гб, то при попытке дать пользователю больше места, получим ошибку. Так же как и администратор, реселлер может рассылать сообщения, но только «своим» пользователям. Это можно сделать в меню почтовая рассылка.
Панель пользователя имеет все необходимое для управления доступными SQL-базами, доменами и псевдонимами, почтовыми ящиками, учетными записями FTP. Доступен и веб-интерфейс, позволяющий работать с электронной почтой прямо из браузера. Встроенный net2ftp обеспечивает доступ к файлам на FTP через браузер. При необходимости можно активировать защищенные зоны на веб-сервере или настроить Catch-all, то есть перехватывать всю почту, идущую в домен. По умолчанию ispCP создает резервные копии ежедневно, доступ для восстановления информации можно получить из меню «Веб-инструменты» – «Ежедневный бэкап».
Как видишь, установка и настройка ispCP не сильно отличается от установки стандартной связки серверов. Но зато если часто возникает необходимость в создании виртуальных серверов и почтовых аккаунтов, с установкой различных ограничений и работой с DNS, ispCP и подобные решения на порядок упрощают жизнь администратору.
Одной из наиболее функциональных хостинг-панелей является Domain Technologie Control (DTC). Поддерживает: Bind 8/9 (или совместимый), MySQL, Apache 1/2, PHP 4/5, Qmail, Postfix, Courier, Cyrus, Dovecot, ProFTPd, Pure-ftpd, NCFTP, Webalizer, Awstat, Amavis, Clamav, SpamAssassin, гипервизор Xen и некоторые другие. Список официально поддерживаемых систем, приведенный на сайте, небольшой: FreeBSD, RedHat, Debian, Gentoo и Mac OS X. Есть сведения о работе в NetBSD. DTC присутствует в репозитариях некоторых других дистрибутивов. Например, есть в Ubuntu, однако не самая последняя версия, поэтому подключают альтернативный дебиановский репозитарий «deb ftp://ftp.gplhost.com/debian/stable main». Хотя это и упрощает установку в Ubuntu, работать DTC в некоторых конфигурациях отказывается (причем по разным причинам). Приходится тратить время на поиск и устранение проблемы. В остальном, это очень удобное в работе решение, также поддерживающее несколько типов учетных записей. Интерфейс локализован. Домашняя страница проекта – .
Всем, кто пользуется Webmin, можно предложить , который позволяет через единый интерфейс управлять множеством виртуальных узлов Apache, BIND, баз MySQL и почтовых ящиков Sendmail или Postfix. Для каждого виртуального сервера создается новый пользователь, который может в дальнейшем самостоятельно администрировать свой участок. Для настройки используются имеющиеся для этих серверов стандартные модули, куда добавляются новые возможности, поэтому Virtualmin будет работать в большинстве конфигураций. Существуют две версии: GPL и коммерческая Pro (). В последней дополнительно доступны HTML-редактор, настройка антиспам и антивирусной проверки, поддержка реселлеров и некоторые другие возможности.
Врезка: Проект System Control Panel (SysCP)
Одно из самых популярных решений, которое используется многими хостерами. Начало разработок датировано ноябрем 2003 года, первый релиз под лицензией GNU GPL был представлен общественности в июне 2004. Написан на PHP, для хранения информации используется MySQL. Как и прочие решения, позволяет создавать зоны в BIND, поддомены, учетные записи, управлять почтовыми адресами и пересылкой писем и многое другое. Поддерживаются: BIND или PowerDNS, Apache 1/2, PHP 4/5, Postfix, Courier, Dovecot, ProFTPd, Pureftp, Webalizer, аутентификация Cyrus-sasl. Опционально могут быть установлены: Maildrop, ClamAV и Spamassassin, PHPmyAdmin и SquirrelMail. Доступны 3 вида учетных записей: администраторы, реселлеры и пользователи. Интерфейс локализован. Установка последних версий очень проста. Домашняя страница проекта –
DVD
-
На прилагаемом к журналу диске ты найдешь файл локализации интерфейса ISPConfig 3.
INFO
-
ispCP 1.0.0 RC6 без проблем ставится на CentOS, RedHat, Fedora, Debian, Ubuntu, SUSE, openSUSE, Slackware, Gentoo, FreeBSD и OpenBSD.
-
Используя хостинг-панель ispCP, можно управлять настройками Apache2 с PHP5, Bind9, MySQL, Courier, Procmail, Postfix, Postgrey, ProFTPd, AWStats, iptables, Sasl, rkhunter и некоторыми другими.
WWW
- Сайт проекта ispCP находится по адресу
WARNING
-
Перед выбором хостинг-панели следует четко определиться с требованиями, в частности с сервисами, которые нужно поддерживать.
Статья опубликована в октябрьском номере журнала «Xakep» за 2008 год.





