Бесплатная панель управления сервером Hestia

Домашняя страница: HestiaCP.

Панель управления Hestia находится под лицензией GPL v3 и основана на проекте VestaCP, который давно не поддерживается. Hestia CP позволяет добавлять новые сайты, работать с почтой и базами данных, cron, обновления, файловый менеджер, возможность добавить SSL .

В статье Обзор и выбор панели управления хостингом я кратко рассказываю об известных мне хостинг панелях.

Системные требования Hestia:

Панель управления сервером (web server control panel) Hestia поддерживает только 64 битные операционные системы Linux: Debian 9, Debian 10, Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS. Дистрибутивы CentOs не поддерживаются.

Плюсы Hestia CP:

Минусы Hestia CP:

Задача: экономить, экономить и еще раз экономить, но диски большие нужны и быстрый.

И вы знаете нашел и я рекомендую если нужен быстрый VDS/VPS с большими дисками заказывайте у Zomro.

Я выбрал конфигурацию:

Операционную система установил Ubuntu 20.04.2 LTS.

Вам нужно будет подключиться к вашему серверу как root, либо напрямую с консоли, либо удаленно с помощью SSH.

Обновите операционную систему, проверьте имя компьютера, локаль, время. Обычно достаточно просто обновить дистрибутив командами:

# apt update
# apt list --upgradable
# apt upgrade

и добавить несколько системных утилит:

# apt install lsb-release htop net-tools

Также проверьте имя компьютера командой hostname с ключом f. Имя сервера должно соответствовать FQDN, говоря по простому если вы можете используя имя сервера (а не его IP) получить доступ используй протокол SSH - то ОК. Безусловно, если вы планируете использовать полноценный почтовый сервер вам требуется сделать дополнительные проверки - изучите чек лист по настройке VPS/VDS, выделенного сервера Linux с нуля.

root@vps100:~# cd /root
root@vps100:~# wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh

Для запуска установщика с параметрами по умолчанию используйте команду:

# bash hst-install.sh
Welcome to the Hestia Control Panel installer!

Если по каким-то причинам вам нужно изменить параметры по умолчанию, вы можете воспользоваться такой командой

bash hst-install.sh -f -y no -e email@domain.tld -p p4ssw0rd -s hostname.domain.tld

После запуска установщика на Шаг 4, я получил предупреждение, что Hestia не хочет работать с UFW (Uncomplicated Firewall) настройка.

Я собcвенно привык работать напрямую с iptables, поэтому я подтверждаю удаления пакета ufw. WARNING: The following packages are already installed ufw* Would you like to remove the conflicting packages? [y/n] y

На следующем шаге будет показано какие компоненты Hestia автоматически установит. Ознакомьтесь с ними и подтвердите, нажав Y.

         _   _           _   _        ____ ____
               | | | | ___  ___| |_(_) __ _ / ___|  _ \
               | |_| |/ _ \/ __| __| |/ _` | |   | |_) |
               |  _  |  __/\__ \ |_| | (_| | |___|  __/
               |_| |_|\___||___/\__|_|\__,_|\____|_|

                          Hestia Control Panel
                                  1.3.2
                            www.hestiacp.com

========================================================================

Thank you for downloading Hestia Control Panel! In a few moments,
we will begin installing the following components on your server:
  1. NGINX Web / Proxy Server
  2. Apache Web Server (as backend)
  3. PHP-FPM Application Server
  4. Exim Mail Server + ClamAV + SpamAssassin
  5. Dovecot POP3/IMAP Server
  6. MariaDB Database Server
========================================================================


Would you like to continue with the installation? [Y/N]: Y
  • На следующем шаге введите email администратора (Please enter admin email address)
  • Введите имя компьютера (Please enter FQDN hostname)

В конце скрипт выведет ссылку (Admin URL), логин и пароль на управление панелью. И предложит перегрузить сервер. Копируем данный для доступа и перегружаем сервер.

Все! Установка Hestia CP завершена. Дальнейшее управление веб панелью Hestia CP происходит при помощи вебинтерфейса (Admin URL), с использованием порта 8083.

Проверить работу демона hestia можно командой lsof:

# lsof -i:8083
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
hestia-ng 522  root    6u  IPv4  19159      0t0  TCP *:8083 (LISTEN)
hestia-ng 523 admin    6u  IPv4  19159      0t0  TCP *:8083 (LISTEN)

Переходим по ссылке Admin URL, указываем логин и пароль. И попадаем в такой интерфейс.

И сразу выключаем автоматической обновление панели Hestia, ибо последствия неконтролируемого обновления, без бекапа можно разгребать долго. Для этого переходим в меню Server → Updates и нажимаем кнопку Automatic Updates, должно получиться как на скриншоте.

Безопасный фаервол - это фаервол в котором по умолчанию все запрещено.

Напомню, что ранее Hestia злостно:) удалила UFW и я наделся что будет из коробки настроен iptables правильно. Но нет, были прописаны правила для определённых портов и настроен fail2ban, но правила по умолчанию открыты. Правила брандмауэра по умолчанию, после установки Hestia, посмотрим командой iptables с ключами -nL -v:

iptables -nL -v
Chain INPUT (policy ACCEPT 7166 packets, 1063K bytes)
 pkts bytes target     prot opt in     out     source               destination
 3325  773K fail2ban-HESTIA  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8083
   21  1324 fail2ban-MAIL  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 25,465,587,110,995,143,993
    0     0 fail2ban-FTP  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21
  928  101K fail2ban-SSH  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
 7476 1220K fail2ban-RECIDIVE  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 1:65535
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 
Chain OUTPUT (policy ACCEPT 7858 packets, 6693K bytes)
 pkts bytes target     prot opt in     out     source               destination

После изучения файлов с настройками фаервола /etc/iptables.rules и /usr/local/hestia/data/firewall/rules.conf я пришел к выводу, что настройки правильные, но они погрузились только частично. Используя команду iptables-restore перегружаем правила из файла /etc/iptables.rules.

# iptables-restore /etc/iptables.rules

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

Функция переключения версии PHP для конкретного сайта должна быть в каждой панели для управления хостингом. Ибо каждая CMS выдвигает свои требования для версии интерпретатора PHP.

Итак, проверим работает ли переключатель PHP в Hestia CP. После установки Hestia, я загрузил файл phpinfo. PHPinfo показал, что у меня установлен PHP версии 7.4.15.

Теперь я хочу установить поддержку PHP например версии 7.3, которую требует например движок DataLife Engine (DLE) (на php 7.4 DLE не работает).

Перехожу в меню Server → Configure → Web server, пролистываю до раздела Enabled PHP versions и ставлю галочку напротив нужно мне версии PHP. Нажимаю кнопку Save. Разработчики предупреждают: "Сохранение изменений может занять несколько минут. Дождитесь завершения процесса и не обновляйте страницу."

Ждем какой-то время за чашкой чая. Страница обновляется. Переходим в настройки тестового сайта и в разделе "Backend Template PHP-FPM" выбираем нужную версию PHP.

Жмем кнопку Save. И обновляем страницу выводимую файлом phpinfo.

И таки да!!! Я вижу версию PHP Version 7.3.27-2+ubuntu20.04.1+deb.sury.org+1. Слава богу! Я действительно не просто потерял время на изучение этой панели и могу сказать панель HestiaCP пригодна к работе и является хорошим продуктом. Рекомендую к использованию на VDS/VPS Zomro.

Обычно, без использования панелей управления сервером, лимиты меняют в php.ini любым удобным вам консольным редактором, например Nano, vim.

Но у нас панель, давайте найдем, как увеличить максимальный размер закачиваемого файла по HTTP с помощью PHP в Hestia CP.

  1. Переходим во вкладку «Server» ("Настройки"), выбираем пункт веб сервер «apache2» и нажимаем на кнопку «Редактировать».
  2. Дальше нажимаем кнопку «Configure PHP» ("Настроить PHP").
  3. В появившихся полях будет строчка «upload_max_filesize», вместо 2M можно поставить любой желаемый размер.

Не забываем нажать кнопку сохранения "Save". В данном примере, я разрешил загружать файлы до 25 Мегабайт.

Для редактирования php.ini в панели управления Hestia CP смотрите пример выше. Там на последнем скриншоте, в самом низу страницы, расположена кнопка "Advanced Options". При нажатии на которую откроется для редактирования файл php.ini.

Для того чтобы хранить данные на удаленном сервере Hestia поддерживает резервное копирование на внешний FTP сервер.

  1. На пером шаге настраиваем доступ к внешнему FTP серверу, для этого переходим в Верхнем меню Server → Configure → Backups («Настройки сервера → Настроить → Резервные копии»). Здесь же находится вкладка для настроек Локального хранения резервных копий.
  2. Переходим в меню и открываем вкладку "Remote backup (Удалённый бекап) и заполняем все поля: «Протокол» – выбираем протокол, настроенный на вашем сервере резервного копирования - ftp или sftp (по умолчанию ftp). «Хост» – адрес ftp сервера. «Порт» – порт ftp сервера. «Аккаунт» – имя пользователя ftp сервера. «Пароль» – пароль пользователя. «Каталог» – указать адрес папки куда сохранять бэкапы сервера (адрес указываем от корня сервера, на например как в Vesta /home/backup/).
  3. Что бы резервное копирование выполнялось автоматически, необходимо настроенное задание в CRON. По умолчанию резервное копирование происходит в 5:10 утра по времени вашего сервера. Но если вы хотите поменять настройки запуска, вам следует на странице CRON найти скрипт v-backup-users и нажать кнопку конфигурирования.

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

Hestia CP как и Vesta CP) использует сервер vsFTPd для настройки FTP соединении.

  1. Зайдите в панель под пользователем, которому принадлежит нужный домен.
  2. Перейдите в раздел WEB, наведите курсор на поле с доменом и нажмите Редактировать.
  3. В списке настроек поставьте галочку в пункте Additional FTP account(s) (Дополнительный ftp) и внесите данные:
  4. Нажмите Сохранить.
  • Аккаунт - логин создаваемого пользователя, с которым он будет подключаться по FTP.
  • Пароль - введите или сгенерируйте пароль доступа для создаваемого пользователя.
  • Путь - директория, которой будет ограничен доступ для создаваемого пользователя. По умолчанию будет предоставлен доступ к домашней директории текущего домена, и в этом случае прописывать путь не нужно. Если необходимо дать доступ к другой директории, путь к ней необходимо указать относительно домашней директории сайта: например, для выдачи доступа к /home/user1/web/mydomain.com/public_html укажите в этом поле /public_html.
  • Отправить данные ftp аккаунта по адресу - можно сразу выслать логин и пароль нового пользователя на его почту. Необязательно для заполнения.

При подключении клиентом Filezilla полученного доступа получаем ошибку

Ошибка:	Ошибка GnuTLS -15 в gnutls_record_recv: An unexpected TLS packet was received.

Гуглим, читаем и не понимаем :)

Много ругани на то что сервер FTP vsftpd ничего не пишет в логах, да и вообще с логами он не дружит (Как посмотреть ошибки логирования пользователей на FTP сервере vsftpd?). В чем-то ругальщики правы и vsftpd действительно не балует логами.

Выход один отключаем информационную соску в виде запросов к Google и включаем здравый смысл. На предыдущем шаге я созда FTP пользователя, но НЕ в стандартной директории, а в поддиректории. Смотрим настройки моего FTP пользователя в /etc/passwd:

# nano /etc/passwd
admin_ftpdan30:x:1000:1000::/home/admin/web/vps100.mirax-hotel.com/dan30:/usr/sbin/nologin

Видим chroot настроен на директорию /home/admin/web/vps100.mirax-hotel.com/dan30. Проверяем а существует ли эта директория командой ls:

# ls /home/admin/web/vps100.mirax-hotel.com/dan30
ls: cannot access '/home/admin/web/vps100.mirax-hotel.com/dan30': No such file or directory

Видим, что директория не создана, то есть HestiaCP как и Vesta не создает директорию. Значит создаем нужную директорию вручную, задаем нужные права chown admin:admin dan30. Все можно работать!

Hestia очень качественная, простая и к тому же бесплатная панель. Чтобы не выводить в отдельные шаги, несколько замечаний при работе с HestiaCP:

  1. Обновляем операционную систему стандартными методами, через консоль утилитой apt.
  2. Не забудьте настроить безопасный SSH. У меня есть правило запрещать доступ пользователю root. В принципе, в Хестия правильно настроен Fail2ban и если у вас хороший пароль, можно не трогать настройки демона SSH.
  • Крупнейшая в Европе школа английского языка

    Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!

    skyeng.ru
  • Английский для IT‑специалистов по Skype

    Персональные занятия по разумным ценам. Длительность курса: 50 уроков по 50 минут. Управляй расписанием занятий через мобильное приложение!

    englex.ru