Статья для журнала
Управление хостингом даже при тщательно спланированной архитектуре и кропотливом выборе компонентов только на первый взгляд может показаться простым. По мере увеличения виртуальных пользователей следить за всем будет на порядок труднее и все больше времени придется тратить на администрирование. Специализированные решения вроде 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 года как форк (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 RC7) без проблем ставится на 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-rc7.tar.bz2
$ cd ./ispcp-omega-1.0.0
Смотрим, что есть в docs:
$ ls docs
CentOS Fedora Gentoo OpenBSD README Slackware Ubuntu Debian FreeBSD OpenSuse RedHat SuSE VHCS_CHANGELOG LICENSE-LGPL2.1 LICENSE-GPL2 LICENSE-MPL1.1
В любом из этих дистрибутивов установка не вызовет проблем, особенности смотри внутри соответствующего подкаталога. Для 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 и подобные решения на порядок упрощают жизнь администратору.
7 Комментариев к ispCP: решение для управления виртуальными сервисами
Июнь 15th, 2009 | 22:28
спасибо за статью! Поставил, но видимо что-то с хостами напортачил, подскажите, по какому адресу панель будет доступна?
Тестирую на локальном компе, также интересно что нужно прописать в /etc/hosts и в hostname
Июнь 15th, 2009 | 23:08
Точнее не встала, а после ответа на все вопросы говорит:
Starting Installation…
ERROR: Can’t open file |/var/cache/bind/debian.script.db| for writing: Нет такого файла или каталога
Июнь 16th, 2009 | 8:39
На локальном, можно и через локалхост
Октябрь 28th, 2009 | 19:35
Большой минус isp-cp (который меня оттолкнул) – отсутствие средств управления DNS сервером. Насколько я понял, для DNS прийдется прикручивать еще один интерфейс. Средствами isp-cp управления нет.
Ноябрь 10th, 2009 | 22:08
У меня к вам просьба вы бы не могли дать прямую силку на скачку архива… очень хотелбы поставить себе эту панельку..
Январь 24th, 2010 | 8:38
Мда, установка этой панели все таки сложновата.
Февраль 25th, 2010 | 15:20
Все очень доступно описано. Но….
Документация все время обновляется и за свеженькой лучше идти на сайт разработчиков http://isp-control.net/ – там есть русский форум, или на недавно созданный http://www.isp-control.ru/ – сайт русской поддержки для тех, кто боится читать документацию на английском.