Установка и настройка Hestia CP на VPS
Панель управления HestiaCP распространяется под лицензией GPL v3 и основана на проекте VestaCP, который давно не поддерживается. Hestia CP позволяет добавлять новые сайты, работать с почтой и базами данных, cron, обновления, файловый менеджер, возможность добавить SSL .
В статье Обзор ТОП 10 Панелей Управления Хостингом VPS я кратко рассказываю об известных мне хостинг панелях.
Системные требования Hestia:
Панель управления сервером (web server control panel) Hestia поддерживает только 64 битные операционные системы Linux: Debian 9, Debian 10, Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, Ubuntu 22.04 LTS. Дистрибутивы CentOS не поддерживаются.
Плюсы Hestia CP:
- Панель переведена на украинский и русский языки;
- Встроенная система бекапов локально, которая сразу начинает работать после установки вебпанели и можно настроить резервное копирование на внешний FTP сервер;
- Расширенная настройка Fail2ban.
- Поддержка бесплатных SSL сертификатов Lets Encrypt для сайтов
Минусы Hestia CP:
- Нет поддержки IPv6 и когда будет не известно ветка на GitHub мертвая.
Шаг 1 - выбор VPS для Hestia
Мой выбор в сфере VPS-хостинга пал на PQ Hosting, Aeza (AÉZA) и DigitalOcean. Приятно, что эти провайдеры ценят своих клиентов и сохраняют выгодные условия даже при изменении базовых тарифов. Они предлагают широкий выбор конфигураций, что позволяет подобрать оптимальный вариант под любые нужды. Кроме того, у них часто проводятся акции и действуют специальные предложения для постоянных клиентов, что позволяет значительно сэкономить на аренде сервера. У них отличная техническая поддержка, которая всегда готова помочь с любыми вопросами.
Операционные системы, которые использовались для написание этого обзора установки Hestia: Ubuntu 20 LTS, Ubuntu 22 LTS.
Шаг 2 - Войдите как системный пользователь (root)
Вам нужно будет подключиться к вашему серверу как root, либо напрямую с консоли, либо удаленно с помощью SSH.
Обновите операционную систему, проверьте имя компьютера, локаль, время. Обычно достаточно просто обновить дистрибутив командами:
# apt update; apt upgrade
и добавить несколько системных утилит:
# apt install lsb-release htop net-tools
Также проверьте имя компьютера командой hostname с ключом f. Имя сервера должно соответствовать FQDN, говоря по простому если вы можете используя имя сервера (а не его IP) получить доступ используй протокол SSH - то ОК. Безусловно, если вы планируете использовать полноценный почтовый сервер вам требуется сделать дополнительные проверки - изучите чек лист по настройке VPS/VDS, выделенного сервера Linux с нуля.
Шаг 3 - Установка Hestia
Недавно на сайте Hestia появился конфигуратор установщика. Очень удобно! Поэтому я переписал эту часть и привожу скриншот выбора моих настроек. Например, я отключаю установку поддержки iptables (чтобы спокойно использовать UFW), не устанавливаю Fail2Ban так как SSH порт у меня открыт только для моих VPN, а для других блокировок Fail2Ban не эффективен (особенно весело смотреть когда на слабой VPS Fail2Ban выжирает все ресурсы).
cd /root; wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
Для запуска установщика с параметрами по умолчанию используйте команду:
# bash hst-install.sh Welcome to the Hestia Control Panel installer!
Запуска установщика Hestia с параметрами из конфигуратора установщика:
bash hst-install.sh --apache no --iptables no --fail2ban no
Если по каким-то причинам вам нужно изменить параметры по умолчанию, вы можете воспользоваться такой командой
bash hst-install.sh -f -y no -e email@domain.tld -p p4ssw0rd -s hostname.domain.tld
Шаг 4 - Nginx без Apache
Скрипт ручного обновления с Nginx + Apache2 + PHP-FPM до Nginx + PHP-FPM.
Шаг 5 - Вопросы установщика
После запуска установщика на Шаг 4, я получил предупреждение, что Hestia не хочет работать с iptables для начинающих: Простое управление брандмауэром с UFW.
Я соб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:
- NGINX Web / Proxy Server
- Apache Web Server (as backend)
- PHP-FPM Application Server
- DNS сервер BIND DNS Server
- Dovecot POP3/IMAP Server
- MariaDB Database Server
- Firewall (Iptables) + Fail2Ban Access Monitor
======================================================================== 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)
Шаг 5 - Настройка Hestia CP
Переходим по ссылке Admin URL, указываем логин и пароль. И попадаем в такой интерфейс.
И сразу выключаем автоматической обновление панели Hestia, ибо последствия неконтролируемого обновления, без бекапа можно разгребать долго. Для этого переходим в меню Server → Updates и нажимаем кнопку Automatic Updates, должно получиться как на скриншоте.
Шаг 6 - Настройка безопасного фаервола Hestia CP
Безопасный фаервол - это фаервол в котором по умолчанию все запрещено.
Напомню, что ранее 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
Поле этого входящие пакеты по умолчанию стали блокироваться и загрузились дополнительные правила. Перезагружаем сервер и видим, что восстановились небезопасные разрешающие правила!
Лайфхак
При установке Hestia, отключите отключите поддержку модулей iptable и Fail2Ban и далее спокойно используйте UFW.
Шаг 7 - Hestia CP переключение версии PHP
Функция переключения версии 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.
Шаг 8 - Hestia CP Работа с базами данных, phpMyAdmin
Управлять базами данных можно в одноименном разделе — DВ. Для создания базы данных нажмите «Добавить БД». Панель предложит заполнить поля:
- База данных — имя базы данных. К введенному значению автоматически добавится префикс admin_
- Аккаунт
- Пароль — можно ввести вручную или генерировать
- Остальное можно не трогать
Сохраните изменения кнопкой в правой части строки операций.
Если вы хотите подключаться к базе данных удаленно, например, со своего компьютера, разрешите соединения на 3306 порт в файрволе панели и отредактируйте файл /etc/mysql/mariadb.conf.d/50-server.cnf, заменив значение в строке bind-address на 0.0.0.0.
FAQ 1 - Изменение максимального размера закачиваемого файла upload_max_filesize в панели управления Hestia CP
Обычно, без использования панелей управления сервером, лимиты меняют в php.ini любым удобным вам консольным редактором, например Nano, vim.
Но у нас панель, давайте найдем, как увеличить максимальный размер закачиваемого файла по HTTP с помощью PHP в Hestia CP.
- Переходим во вкладку «Server» ("Настройки"), выбираем пункт веб сервер «apache2» и нажимаем на кнопку «Редактировать».
- Дальше нажимаем кнопку «Configure PHP» ("Настроить PHP").
- В появившихся полях будет строчка «upload_max_filesize», вместо 2M можно поставить любой желаемый размер.
Не забываем нажать кнопку сохранения "Save". В данном примере, я разрешил загружать файлы до 25 Мегабайт.
FAQ 2 - Как редактировать php.ini в панели управления Hestia CP
Для редактирования php.ini в панели управления Hestia CP смотрите пример выше. Там на последнем скриншоте, в самом низу страницы, расположена кнопка "Advanced Options". При нажатии на которую откроется для редактирования файл php.ini.
FAQ 3 - Как настроить удаленное резервное копирование по FTP в Hestia CP
Для того чтобы хранить данные на удаленном сервере Hestia поддерживает резервное копирование на внешний FTP сервер.
- На пером шаге настраиваем доступ к внешнему FTP серверу, для этого переходим в Верхнем меню Server → Configure → Backups («Настройки сервера → Настроить → Резервные копии»). Здесь же находится вкладка для настроек Локального хранения резервных копий.
- Переходим в меню и открываем вкладку "Remote backup (Удалённый бекап) и заполняем все поля: «Протокол» – выбираем протокол, настроенный на вашем сервере резервного копирования - ftp или sftp (по умолчанию ftp). «Хост» – адрес ftp сервера. «Порт» – порт ftp сервера. «Аккаунт» – имя пользователя ftp сервера. «Пароль» – пароль пользователя. «Каталог» – указать адрес папки куда сохранять бэкапы сервера (адрес указываем от корня сервера, на например как в Vesta /home/backup/).
- Что бы резервное копирование выполнялось автоматически, необходимо настроенное задание в CRON. По умолчанию резервное копирование происходит в 5:10 утра по времени вашего сервера. Но если вы хотите поменять настройки запуска, вам следует на странице CRON найти скрипт v-backup-users и нажать кнопку конфигурирования.
Рекомендую создавать резервную копию в ночное время, при создании копии увеличивается нагрузка на сервер, из-за чего сайты могут открываться с задержкой.
Бэкап сайта в Hestia CP состоит из:
- Исходников сайтов, сертификатов к ним, конфигураций Nginx и самой панели управления Hestia к каждому домену.
- Конфигурационных файлов системного профиля на сервере.
- Дампа mysql баз и системных настроек для них.
- Cron файла пользователя.
Если выполнять вход в панель управления под Admin, то по умолчанию резервные копии будут производиться для всех пользователей, созданных в панели управления.
Для того что бы производить резервные копии только необходимых параметров, необходимо выбираем вкладку Исключения. Далее выбираем вкладку Редактирование исключений бэкапа. Заполняем появившиеся поля и указываем необходимые исключения, это означает что указанные папки, базы данных и т.д. не будут занесены в резервную копию. Для применения настроек нажимаем на кнопку Сохранить.
Далее для создания резервной копии с заданными параметрами нажимаем на кнопку Создать бэкап.
Для восстановления информации из резервной копии, во вкладке Backup напротив нужной резервной копии нажимаем кнопку Восстановить. В открывшемся окне выбираем необходимые пункты для восстановления или выбираем Восстановить все нажав на соответствующую кнопку.
FAQ 4 - Создание FTP-пользователей в Hestia CP
Hestia CP как и Vesta CP) использует сервер vsFTPd для настройки FTP соединении.
- Зайдите в панель под пользователем, которому принадлежит нужный домен.
- Перейдите в раздел WEB, наведите курсор на поле с доменом и нажмите Редактировать.
- В списке настроек поставьте галочку в пункте Additional FTP account(s) (Дополнительный ftp) и внесите данные:
- Нажмите Сохранить.
- Аккаунт - логин создаваемого пользователя, с которым он будет подключаться по FTP.
- Пароль - введите или сгенерируйте пароль доступа для создаваемого пользователя.
- Путь - директория, которой будет ограничен доступ для создаваемого пользователя. По умолчанию будет предоставлен доступ к домашней директории текущего домена, и в этом случае прописывать путь не нужно. Если необходимо дать доступ к другой директории, путь к ней необходимо указать относительно домашней директории сайта: например, для выдачи доступа к /home/user1/web/mydomain.com/public_html укажите в этом поле /public_html.
- Отправить данные ftp аккаунта по адресу - можно сразу выслать логин и пароль нового пользователя на его почту. Необязательно для заполнения.
GnuTLS -15 в gnutls_record_recv: An unexpected TLS packet was received
При подключении клиентом 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. Все можно работать!
FAQ 5 - Как сбросить пароль в Hestia и Vesta
Иногда, возникает задача сбросить пароль доступа к панели Hestia или Vesta.
- Для сброса пароля Vesta используйте команду:
/usr/local/vesta/bin/v-change-user-password USER PASSWORD
- Для сброса пароля Hestia используйте команду:
/usr/local/hestia/bin/v-change-user-password USER
FAQ 6 - Как добавить самоподписанный SSL сертификат в панели управления Hestia CP
Создание самоподписанного сертификата с помощью openssl
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 365 -subj '/CN=localhost'
где
- -newkey rsa:4096 Создать 4096-битный RSA ключ.
- -keyout key.pem Сохранить ключ в файл key.pem.
- -out cert.pem Сохранить сертификат в файл cert.pem.
- -nodes Не защищать приватный ключ паролем.
- -days 365 Количество дней валидности сертификата.
- -subj '/CN=localhost' Используйте эту опцию, чтобы избежать вопросов о содержимом сертификата. Замените localhost на доменное имя.
Для настройки SSL сертификата переходим во вкладку «WEB». В новом окне находим пункт «Поддержка SSL» вводим данные от сертификата который создали с помощью openssl. В первое окно содержимое файла cert.pem, во второе окно содержимое файла key.pem.
FAQ 7 - Установка IonCube Loader на Hestia
IonCube Loader часто требуемое расширение PHP и подробно описана в статье Установка и включение IonCube в PHP на хостинг. Разработчики Hestia упростили задачу установки IonCube на свою панель и создали простой bash скрипт автоматизирующий процесс. Для использования и запуска скрипта используйте команды:
wget https://raw.githubusercontent.com/jaapmarcus/ioncube-hestia-installer/main/install_ioncube.sh chmod +x install_ioncube.sh ./install_ioncube.sh
Заключение
Hestia очень качественная, простая и к тому же бесплатная панель. Чтобы не выводить в отдельные шаги, несколько замечаний при работе с HestiaCP:
- Обновляем операционную систему стандартными методами, через консоль утилитой apt.
- Не забудьте настроить безопасный SSH. У меня есть правило запрещать доступ пользователю root. В принципе, в Хестия правильно настроен fail2ban и если у вас хороший пароль, можно не трогать настройки демона SSH.
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах