Бесплатные панели управления хостингом. Богиня Vesta

Когда ты работаешь в хостинг-компании большинство друзей и знакомых, все свои вопросы касательно хостинга решают через тебя. Это позволяет быть в тренде последних новинок, а также не только приумножать свои скиллы, но и держать их в тонусе. Как только спец. задачи ребят стало сложно решать на хостинг-сервере, как правило из-за отсутствия возможности установить необходимый софт для работы того или иного скрипта, я сразу подумал о недорогом виртуальном сервере, тем более они у нас появились. Также мы понимали, что работать с сервером будет проще через удобный веб-интерфейс, и хорошая панель управления будет, как-ни-как, кстати. А если она будет еще и бесплатной, то мы будем только в плюсе. Не долго думая, открыл браузер и начал гуглить бесплатные панели управления хостингом.
4db57cad40404deea2a72459ea457900.png
Понимая, что изучение каждой потребует время, я решил также спросить совета у нашего опытного администратора, на что получил короткий ответ:

Смотрите в сторону Vesta.

С моей стороны была попытка обратить его внимание на то, что есть и другие бесплатные продукты:

Да, слышал
, а вообще их достаточно: Ajenti, CentOS Web Panel и т.п.

Но руководитель тех. отдела дал довольно ожидаем ответ:

Эти не очень популярны в наших кругах.

Вот так произошло мое первое знакомство с одной из самых популярных бесплатных панелей управления хостингом в рунете — Vesta CP. Мне бы хотелось рассказать Вам, как решение поставленных задач приводит не только к написанию туториалов, но и позволяет познакомиться с интересными людьми, которые вкладывают свою душу в то дело, которые реально приносит им удовольствие. И как следствие, мы с Вами получаем замечательный программный продукт. Ну разве это не чудесно? Приятного и конструктивного Вам чтения…

Предисловие


Так как панель Vesta и в самом деле для меня была малознакома я начал собирать информацию. Нашел несколько неплохих публикаций, в том числе на ресурсе Хабрахабр, после чего даже задумался над тем, что же еще можно рассказать об этой панели, так как материала по ней в рунете реально достаточно. Но как же все может изменить один разговор?! После прочтения хорошей статьи я решил написать автору, и узнать его мнение не только о панели Vesta, но и в целом о нише бесплатных панелей управления хостингом. На мое удивление ответ не заставил себя долго ждать, а сам диалог продолжает длиться и сейчас… Много чего удалось обсудить, но это была лишь малая часть того, о чем еще предстоит поговорить. Да, скорей всего это материал для отдельной статьи, но не будем забегать наперед и вернемся к самой панели Vesta.

Установка


Не буду изменять своим привычкам — установлю на виртуальный сервер CentOS (также панель имеет поддержку Debian, Ubuntu) и подключусь к нему по SSH. Для этого, если Вы используете MacBook, запускаем Терминал и вводим следующую команду:

ssh root@xxx.xxx.xxx.xxx


Подтверждаем подключение, указываем пароль суперпользователя, и после всех этих действий мы попадаем в консоль. Если Вы пользователь Windows, то используйте для работы с сервером эмулятор терминала PuTTY.

Далее загружаем на сервер необходимые установочные файлы с помощью команды:

curl -O http://vestacp.com/pub/vst-install.sh


Перед тем, как приступить к самому процессу установки, хотелось бы сообщить, что установщик панели автоматически классифицирует серверы на следующие 4-е группы:

  • micro — менее 1 ГБ ОЗУ;
  • small — менее чем 3 ГБ ОЗУ;
  • medium — менее 7 ГБ ОЗУ;
  • large — более чем 7 ГБ ОЗУ.


В зависимости от технических характеристик Вашего сервера, в данном случае количества оперативной памяти, установщик автоматически произведет установку определенного набора пакетов и конфигов панели Vesta. Например, пакет антивирусов будет корректно работать (согласно рекомендаций разработчиков) начиная с версии medium, а поддержка php cgi, в свою очередь, доступна для всей группы серверов кроме micro. Но ничего не мешает Вам установить недостающее программное обеспечение вручную.

Продолжаем процесс установки панели, для этого запускаем скрипт с помощью команды:

bash vst-install.sh


На экране Вы должны получить следующее сообщение:

_|      _|  _|_|_|_|    _|_|_|  _|_|_|_|_|    _|_|
 _|      _|  _|        _|            _|      _|    _|
 _|      _|  _|_|_|      _|_|        _|      _|_|_|_|
   _|  _|    _|              _|      _|      _|    _|
     _|      _|_|_|_|  _|_|_|        _|      _|    _|

                                  Vesta Control Panel



Following software will be installed on your system:
   - Nginx Web Server
   - Apache Web Server (as backend)
   - Bind DNS Server
   - Exim mail server
   - Dovecot POP3/IMAP Server
   - MySQL Database Server
   - Vsftpd FTP Server
   - Iptables Firewall + Fail2Ban


Would you like to continue [y/n]:


Подтверждаем свои действия с помощью клавиши y (yes). Далее необходимо будет указать свой email:

Please enter admin email address: xxxxxxxxxx@domain.com


После чего установщик может запросить ввести имя хоста:

Please enter FQDN hostname [XXXX1669]: xx1669.ua-hosting.company


Сам же процесс установки может занят около 15 минут. Немного забегая вперед, хотелось бы сказать, что если Вы устанавливаете панель Vesta на один сервер, то ввод всех необходимых данных во время установки не должен занять много времени. Но если же Вам необходимо подготовить несколько десятков серверов с данной панелью, совсем недавно один из наших клиентов поставил такую задачу, то советуем запустить установочный скрипт с ключом h (help):

bash vst-install.sh -h


И ознакомиться с полным списком доступных опций:

Usage: vst-install-rhel.sh [OPTIONS]
  -a, --apache            Install Apache        [yes|no]  default: yes
  -n, --nginx             Install Nginx         [yes|no]  default: yes
  -w, --phpfpm            Install PHP-FPM       [yes|no]  default: no
  -v, --vsftpd            Install Vsftpd        [yes|no]  default: yes
  -j, --proftpd           Install ProFTPD       [yes|no]  default: no
  -k, --named             Install Bind          [yes|no]  default: yes
  -m, --mysql             Install MySQL         [yes|no]  default: yes
  -g, --postgresql        Install PostgreSQL    [yes|no]  default: no
  -d, --mongodb           Install MongoDB       [yes|no]  unsupported
  -x, --exim              Install Exim          [yes|no]  default: yes
  -z, --dovecot           Install Dovecot       [yes|no]  default: yes
  -c, --clamav            Install ClamAV        [yes|no]  default: yes
  -t, --spamassassin      Install SpamAssassin  [yes|no]  default: yes
  -i, --iptables          Install Iptables      [yes|no]  default: yes
  -b, --fail2ban          Install Fail2ban      [yes|no]  default: yes
  -r, --remi              Install Remi repo     [yes|no]  default: yes
  -q, --quota             Filesystem Quota      [yes|no]  default: no
  -l, --lang              Default language                default: en
  -y, --interactive       Interactive install   [yes|no]  default: yes
  -s, --hostname          Set hostname
  -e, --email             Set admin email
  -p, --password          Set admin password
  -f, --force             Force installation
  -h, --help              Print this help


Которые, в свою очередь, позволят произвести установку «под себя», а также помогут ускорить процесс настройки целого «автопарка машинок». Самый простой способ пропустить ввод дополнительных данных во время установки панели — это деактивировать интерактивный режим, как следствие запустить установочный скрипт с ключом y (interactive) и параметром no.

bash vst-install.sh -y no


Если есть еще и желание самостоятельно задать пароль доступа к панели, то добавьте ключ p (password) со своим вариантом пароля:

bash vst-install.sh -y no -p xxxxxxxxx


Для тех пользователей кому не в кайф проводить «разбор полетов» в консоли разработчики сделали удобный веб-конфигуратор опций, что значительно упрощает процесс кастомной установки. Просто в секции Advanced Install Settings задаем необходимые параметры, после чего нажимаем кнопку Generate Install Command и вставляем уже готовую команду в консоль. Как Вам такой вариант установки?

После завершения установки на экран выведется следующее сообщение:

 _|      _|  _|_|_|_|    _|_|_|  _|_|_|_|_|    _|_|   
 _|      _|  _|        _|            _|      _|    _| 
 _|      _|  _|_|_|      _|_|        _|      _|_|_|_| 
   _|  _|    _|              _|      _|      _|    _| 
     _|      _|_|_|_|  _|_|_|        _|      _|    _| 


Congratulations, you have just successfully installed Vesta Control Panel

    https://xxx.xxx.xxx.xxx:8083
    username: admin
    password: xxxxxxxxxx


Веб-интерфейс


Ну что, Вы готовы к встрече с «богиней»? Тогда открываем браузер и авторизируемся в панели. Обращаю Ваше внимание на то, что имя пользователя — admin.

e9354efe9bbe465e8c935bdd71380a33.png

Сразу после входа мы попадаем на страничку USER и видим информацию пока что о единственном пользователя admin с правами системного администратора. Если кому-то более приятно работать с русским интерфейсом, то открываем настройки пользователя admin и в поле Language выбираем необходимый язык. Не забываем нажать кнопку Save, чтобы сохранить изменения.

21c69690940e406885ffbec74fcd8351.png

Также в работе с панелью очень помогают горячие клавиши (SHORTCUTS), которые упрощают навигацию по меню и позволяют производить управления с помощью клавиатуры. Для открытия списка всех доступных SHORTCUTS воспользуйтесь клавишей h на клавиатуре или одной из кнопок в правом нижнем углу экрана.

20f64cbc43bb4ceebfdc5ac3fc56ee9a.png

Пользователи


Для повышения безопасности разработчики не рекомендуют осуществлять управление сайтами из под пользователя admin, потому давайте создадим нового юзера. Переходим в меню USER и нажимаем зеленую круглую кнопку с плюсом (ДОБАВИТЬ АККАУНТ). Не забываем, что это также можно делать с помощью горячих клавиш, предыдущий скриншот должен подсказать, что в этом нам поможет клавиша — a.

0398df96c09e42bbb2112a6877846603.png

Здесь Вы можете указать язык интерфейса для пользователя, а также его почтовый ящик, на который будут отправлены доступы. После заполнения необходимых полей нажимаем кнопку «Добавить». Как следствие в меню USER у нас будет уже два пользователя и воспользовавшись клавишей ВОЙТИ КАК мы можем авторизироваться под нужным нам юзером. Стоит добавить, что разработчики позаботились о «большой миграции народов» и предоставили возможность переноса пользователей с одного сервера на другой.

c64d0c34b40f4d92a0db1979e9fe4339.png

Домены


Теперь можем добавлять свой сайт. Для этого переходим в меню WEB и с помощью клавиши n вызываем окно в котором заполняем необходимые данные.

1206ecc42d9f4cdbb78ac40f24e92ce8.png

Сразу рекомендую раскрыть ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и активировать дополнительный FTP-аккаунт заполнив соответствующие поля. А для любителей статистики есть также возможность подключения Вашего ресурса к Webalizer или AWStats.

a9675037e7b047cc9c45145afa29d708.png

Базы данных


Пришла очередь создать базу данных (БД) для Вашего проекта. Все довольно просто — идем в меню DB и снова с помощью горящей клавиши n вызываем окно, где заполняем необходимые поля.

c4f1c5c11f0a48e4bb7a43dfe2c4fbbc.png

Не забываем все внесенные данные сохранить с помощью кнопки «Добавить». Далее можете спокойно заливать на хостинг нужную CMS или скрипт на котором будет «крутиться» Ваш проект, и проводить дополнительную настройку для выпуска сайта в продакшн.

Администрирование СУБД MySQL осуществляется с помощью веб-приложения phpMyAdmin кнопка запуска которого появится в меню DB сразу после создания хоть одной БД.

12624e7ad5fd434c8b6f87145e32900b.png

Также панель Vesta позволяет размещать БД на удаленном сервере, как вариант можно построить решение из нескольких веб-сервером и осуществлять их обслуживание с помощью одного более производительного сервера.

Почта


Вот на дополнительной настройке можно остановиться более подробно, и пожалуй начнем мы с почты, а точнее — с настройки почтового домена. Если мы перейдем в меню MAIL, то увидим, что у нас уже есть почтовый домен, который создался автоматически вместе с добавлением самого домена в панель.

35b0074e289a4bd68a0b74429889cc9c.png

При редактировании данных этого домена обратите пожалуйста внимание, что в поле «Ловушка почты» Вы по желанию можете указать почтовый аккаунт (не обязательно локальный) куда будет перенаправляться почта с несуществующих аккаунтов. По умолчанию там указан файл /dev/null, что означает лишь одно — вся поступающая почта должна удаляться.

Поехали дальше, настала очередь создать почтовый ящик. Выбираем необходимый почтовый домен и нажимаем кнопку ДОБАВИТЬ АККАУНТ.

56474a851d134008b8a1f85c0ffa981a.png

Здесь можете раскрыть вкладку ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и указать квоту по размеру почтового ящика в МБ, а также аккаунт для переадресации почты. Как обычно сохраняем указанные данные с помощью кнопки «Добавить».

6c2f207c6ae641b3a74cf1e92073f38f.png

Для работы с электронной почтой используется клиент Roundcube, кнопка которого (ОТКРЫТЬ ВЕБ-ПОЧТУ) становиться доступной в меню MAIL сразу после заведения в панель хотя бы одного почтового домена.

DNS


Наверное одним из самых сложных моментов работы с панелью управления хостингом для начинающих пользователей есть настройка DNS. Но и здесь команда разработчиков попыталась максимально упростить задачу, создав шаблон. После того, как мы произведем нужные настройки на стороне регистратора доменного имени, необходимо в меню DNS для конкретного домена нажать кнопку РЕДАКТИРОВАТЬ.

a0f6ea1e2e344f298a487d88b1690f4f.png

И в поле Шаблон выбрать child-ns, а затем сохранить изменения.

8a2034a3109d495397c4493d353a084d.png

После чего с под пользователя admin зайти в меню Пакеты.

0d27314e1d2145dbb459f2922f499fdf.png

И редактировать пакет default, указав при этом серверы имен своего домена.

72ec4466e6f14d5e95660b8831dffc0c.png

Также одной из возможностей панели есть создание DNS кластера, что позволит зонам автоматически копироваться на другие серверы.

Cron


В разделе меню CRON можно ознакомиться со всем списком заданий и в случае необходимости внести в него изменения (добавить/удалить/заблокировать задание).

566be9a151e94ff387655ebdd5d62fbd.png

Резервное копирование


Панель управления Vesta имеет удобный веб-интерфейс для настройки резервного копирования на удаленный FTP/ SFTP сервер. Для этого переходим в меню BACKUP и с помощью клавиши n запускаем создание нового архива, на экране выведется следующее сообщение:

d2c4558f392744fc80ce3b3ea9917759.png

После того, как Вы получите уведомление на свой почтовый ящик, вернитесь в данное меню и с помощью кнопки СКАЧАТЬ сохраните бэкап на локальном компьютере. Также данный функционал доступен из консоли.

c8553261e22a4f8a95f626e2aca7a1b3.png

Безопасность


Как Вы может уже заметили панель имеет фаервол, а также поддержку Fail2ban, который автоматически будет пресекать подбор паролей по разным протоколам (FTP, SSH), и в том числе к самой панели Vesta. Для настройки фаервола необходимо с под пользователя admin выбрать соответствующий пункт меню.

3231241026a448379dadb33a67f89d19.png

Где с помощью доступного функционала есть возможность провести необходимую настройку, в том числе и для Fail2ban.

42a2a8ed32c64899ab3c74d2ae35381c.png

Отчеты


В панеле управления Vesta очень хорошо реализован сбор статистики и разных данных, которые могут помочь Вам в анализе работы Вашего сервера. Например в меню Сервер Вы можете посмотреть какой объем оперативной памяти потребляет тот или иной процесс.

04accb81876f45688ad0d9a6da7f817b.png

Также, если Вы захотите изучить показатели процессора (ов), памяти, сети, диска (ов) и т.п., то сможете получить более развернутые данные по разным параметрам: технические характеристики сервера, какие запросы отправляются на веб-сервер и в БД, есть возможность сделать отчет по отправленным письмам и многое другое.

8ccc6e04aa9a46c3bcc8095bf108997c.png

Не стоит забывать о графиках нагрузки, которые также могут помочь Вам в анализе работы сервера.

ee05daef8e7c40cfa73c3b2e4a7918a8.png

А для тех, кому этого недостаточно, есть возможность просмотра логов доменов вживую — меню WEB, кнопка ПОСМОТРЕТЬ ЛОГИ.

ca46730f1a274ce2b4762fdc3dfc4c20.png

API


В панели Vesta есть API, который можно использовать в качестве фреймворка для создания собственных интерфейсов. Например Вы можете создать площадку блогов или интернет магазинов. Как сообщили мне разработчики, несколько их крупных клиентов используют панель именно таким образом.

Обновления


Обновления панели управления Vesta могут проходить автоматически, но эта функция по умолчанию отключена. Все управление обновлениями осуществляется через соответствующее меню.

f04186be1615457092400e3f51714358.png

Когда выходит обновление, пакеты в данном разделе меню начинают подсвечиваться красным, а также появляется кнопка Обновить. При необходимости Вы делаете один клик и все готово.

Немного терпения и я вместе с Вами загляну в ближайшее будущее «богини». Вы ведь хотите увидеть какие «плюшки» готовят для Вас разработчики в ближайшем релизе панели Vesta?

Плюшки


Думаю, практически каждый программный продукт имеет свои особенности. О некоторых из них мы уже упомянули ранее, а вот есть те, которые я специально оставил на «десерт».

В свое время ребята выпустили несколько платных расширений, что б хоть как-то покрыть расходы по поддержке и разработке данной панели.

Первый из них — это волшебный, другим словом я просто не смогу передать удобство его UI, файловый менеджер. Как только Вы активируете плагин, появится пункт меню Файлы, при переходе на которое откроется следующее окно:

34418dc2641c4c53a69447e0854129fe.png

Согласен, что первое впечатление может быть немножко преувеличено, но Вы ведь еще не видели набор доступных SHORTCUTS и даже не начали работать с самим менеджером файлов, правда?

701ec62dac37462f9a31bb2788002695.png

Команда разработчиков и не скрывает, что горячие клавиши были заимствованы из великолепного файл менеджера GNU Midnight Commander. Ну правда, а почему не приметь то, что реально удобно? И поверьте мне, у Вас будет возможность убедится в этом самостоятельно.

Вторым платным расширением является SFTP Chroot. Этот плагин может быть более интересен тем из Вас, кто предоставляет услуги хостинга, а также делит свой сервер с другими пользователями. Далее мне бы хотелось привести цитату самого разработчика, касательно данной дополнительной «фичи» для повышения безопасности:

FTP протокол небезопасен, поскольку все пароли передаются в чистом виде без шифрования. Сидя в кафе на публичном Wi-Fi, есть риск, что данные кто-то перехватит. Чтобы включить SFTP, нужно выдать пользователю системный шелл, однако, это позволит юзеру просматривать не только его собственные каталоги, но и системные, вроде /etc, /sbin или /bin. Это не проблема, если сервер используется 2–3 разработчиками. А вот когда уже идет речь о том, чтобы выдать доступ людям, к которым нет полного доверия, появляется дилемма. Модуль SFTP Сhroot помогает ее решить. Если модуль активирован, то на всех аккаунтах без реального шелла (/sbin/nologin), включается особый режим SFTP соединения. Такие аккаунты могут увидеть файлы только в своей домашней директории и все.

После активации данного расширения необходимо для конкретно взятого пользователя в настройках аккаунта выбрать из выпадающего списка нужный параметр, как показано на скриншоте ниже:

b0c2909560374578ab79ec36294e9fb9.png

Вы еще думаете над тем, какую панель выбрать? Тогда я продолжаю, и перехожу к самым «вкусным плюшкам» ближайшего релиза панели Vesta.

Появятся дополнительные горячие клавиши, которые позволят полностью управлять панелью с помощью клавиатуры — это ведь круто.

5f2362a48cbe4b5691491bdb4086766f.png

Также появится возможность получить бесплатный SSL сертификат от проекта Let’s Encrypt буквально в один клик. И как заверил меня сам skid это функционал уже на финальной стадии тестирования.

Не стану раскрывать всех деталей грядущего релиза, а лучше оставлю немного «пищи для размышлений» Вам, дорогие наши читатели. Все детали в конце публикации.

В качестве благодарности хочу перечислить по имени каждого из команды разработчиков этой «богини»:

  • Дмитрий Наумов — UI, тот самый интерфейс, который мы все любим: простота и удобство;
  • Дмитрий Малышев — JS, то без чего взаимодействие с интерфейсом не было бы интерактивным;
  • Антон Реутов — поддержка пользователей, тестирование, разбор и сортировка багов;
  • Павел Галкин — поддержка пользователей, тестирование;
  • Сергей Родин — человек, который поведал мне все «тайны» этого замечательного программного продукта.


А также сообщить, что в разработке данного продукта принимают участие люди из разных уголков мира, о чем свидетельствует количество языковых версий панели, а также статистика аккаунта на проекте GitHub. Да и сами разработчики признают, что приятно удивлены интересом и желанием некоторых пользователей поддержать их проект.

Так держать, ребята!

P.S. Чтобы поддержать проект со своей стороны мы совместно с командой разработчиков решили предоставить каждому нашему клиенту, который арендует услугу облачный VPS возможность разово активировать оба платных расширения совершенно бесплатно для одной услуги с доступом суперпользователя. Для этого после проведения заказа просто создайте тикет в отдел продаж и мы активируем для Вас плагин (ы).

P.P. S. Разработчики же со своей стороны решили также провести акцию и предоставить Вам возможность при заказе вечных версий лицензий получить дополнительно 30% скидки. При оформлении заказа просто используйте купон HABR, который будет действовать до 15-го января.

© Habrahabr.ru