HestiaCP - это бесплатная web панель управления сервером, предоставляющая возможность по облегченной настройке и администрированию web серверов.
Содержание статьи
- Возможности продукта
- Системные требования
- Подготовка сервера
- Регистрация домена у провайдера и проброс портов маршрутизатора
- Установка HestiaCP
- Настройка панели управления
- Добавление пользователя и домена на сервере, настройка сайта и почты
- Резервное копирование
- Настройка брандмауэра и Fail2ban
- Вывод
Возможности и преимущества продукта
Возможности продукта:
- Создание и управление DNS-записями, пользователями, FTP ресурсами, базами данных, почтовыми ящиками
- Поддержка SSL-сертификатов Let's Encrypt
- Наличие файлового менеджера
- Планировщик заданий Cron
- Поддержка быстрого способа установки популярных веб-приложений: WordPress, Drupal, Joomla, Opencart, Prestashop, Laravel и Symfony
- Резервное копирование
Преимущества продукта:
- Удобный и функциональный интерфейс
- Большое сообщество пользователей и разработчиков продукта
- Регулярные обновления и устранение багов
Системные требования
Поддерживаемые операционные системы:
- Debian 9
- Debian 10
- Debian 11
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
Минимальные системные требования:
Процессор: 1-но ядерный от 1Ггц
Оперативная память: от 512МБ
Жёсткий диск: от 5ГБ
Подготовка сервера
Устанавливаем сервер минимальной конфигурации, либо контейнер LXC с системой из шаблона на гипервизоре.
Тестовую установку я проводил на vds хостинге firstvds.ru
Интерфейс VMnanager для управления виртуальной машиной:
Я уже перезалил виртуальную машину тремя щелчками мышки.
Параметры тестовой виртуальной машины
Всем советую эта машинка стоит всего 291руб/месяц
Повышаем наши права в системе:
sudo -s
Обновляем систему:
apt update && apt upgrade -y
Устанавливаем дополнительные компоненты:
apt install mc nano wget net-tools -y
Устанавливаем имя нашему серверу:
hostnamectl set-hostname tuning-admina.ru
Устанавливаем временную зону:
timedatectl set-timezone Europe/Moscow
Устанавливаем службу синхронизации времени:
apt install chrony
Добавляем службу в автозагрузку:
systemctl enable chrony
Перед тем как продолжить перезагрузим систему:
reboot
Регистрация домена у провайдера и проброс портов маршрутизатора
Советую Питерского регистратора доменных имён Nethouse.ru, очень быстрый и качественный сервис, с моментальным обновлением DNS записей и приемлемой стоимостью доменных имён, в зоне ru - 150руб.
После покупки прописываем в разделе управления доменом dns записи:
- Запись типа А со значением белого ip адреса нашего маршрутизатора или виртуальной машины на vds хостинге, как в моем случае.
- Запись типа А с именем mail и значением нашего белого ip адреса
- МХ запись типа - @ mx mail.tuning-admina.ru
Все основные настройки прописывает у провайдера в редакторе управления DNS записями.
На маршрутизаторе необходимо пробросить порты в зависимости от их в дальнейшем использования:
- 80, 443, 8083 - доступ к сайтам и панели управления
- 25,110,143,465,587,993,995 - порты для хождения почты
Установка HestiaCP
Добавляем ключ для доступа к репозиторию разработчиков:
wget -qO - https://gpg.hestiacp.com/deb_signing.key | apt-key add -
Скачиваем установочный скрипт:
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install-ubuntu.sh -O hst-install-ubuntu.sh
Список доступных установочных опций:
-a yes //Установка Apache
-w yes //Установка PHP-FPM
-o yes //Установка Multi-PHP
-v yes //Установка Vsftpd
-j yes //Установка ProFTPD
-k yes //Установка Bind
-m yes //Установка MariaDB
-g yes //Установка PostgreSQL
-x yes //Установка Exim
-z yes //Установка Dovecot
-Z yes //Установка Sieve
-c yes //Установка ClamAV
-t yes //Установка SpamAssassin
-i yes //Установка Iptables
-b yes //Установка Fail2ban
-q //Квота файловой системы
-d //Активация API
-r Порт web интерфейса, по умолчанию 8083
-l //Язык системы
-y //Интерактивная установка
-s //Указываем имя хоста
-e //Указываем почту админа
-p //Указываем пароль админа
-f //Форсированная установка
-h //Выводим справку
Запускаем скрипт для установки продукта:
bash hst-install-ubuntu.sh --force
Следуем инструкциям в процессе установки:
Would you like to continue with the installation? [Y/N]: Y
Please enter admin email address: admin@tuning-admina.ru
Please enter FQDN hostname [tuning-admina.ru]: Enter
[ ! ] IMPORTANT: The system will now reboot to complete the installation process.
Press any key to continue
Для завершения процесса установки необходимо перезагрузить сервер, нажимаем enter.
После перезагрузки сервера открываем браузер и идём по адресу:
https://tuning-admina.ru:8083
Вводим имя администратора и пароль и нажимаем Войти. Если вы не записали пароль администратора, проморгав этот момент, то его можно задать вручную:
Настройка панели управления
Первым делом меняем язык системы в профиле администратора, там же можно выбрать тему.
Службы сервера и управление ими:
Добавление пользователя и домена на сервере, настройка сайта и почты
Первым делом добавим пользователя для управлением нашим сайтом, нажимаем Добавить пользователя:
Перейдем в панель под именем пользователя:
В разделе WEB нажимаем Добавить домен:
Указываем имя домена, IP адрес, включаем поддержку DNS и почты:
После создания записи нажимаем на нее для продолжения редактирования:
Включаем статистику и поддержку SSL, а также редирект запросов:
Сертификат автоматом подцепится. В планировщике уже есть задание для обновления сертификатов.
После сохранения настроек, нажимаем установить приложение для выбора стандартного скрипта из списка:
Список скриптов на выбор, выбираем WordPress и нажимаем Настроить:
Указываем учетные данные и нажимаем Установить:
Идем проверять наш сайт:
Как видим сайт работает, административная часть которого доступна по адресу: https://tuning-admina.ru/wp-login.php
Приступим к настройке почты
Включаем поддержку SSL и Let's Encrypt
Переходим в roundcube для проверки:
Можно добавлять пользователей и работать.
Необходимо установить антивирус в системе и прописать его в конфигурационных файлах.
Устанавливаем антивирус Clamav:
apt install clamav clamav-daemon
Добавляем службу в автозагрузку:
systemctl enable clamav-daemon
Запускаем службу антивируса:
systemctl start clamav-daemon
Добавляем строчку с антивирусом в конфигурационный файл hestiaCP:
nano /usr/local/hestia/conf/hestia.conf
ANTIVIRUS_SYSTEM='clamav-daemon'
Убираем комментарий с параметра CLAMD в файле exim4:
nano /etc/exim4/exim4.conf.template
CLAMD = yes
Перезапустить сервисы почты и панели Hestia:
systemctl restart exim4 hestia
Результат установки антивируса на скриншоте:
Резервное копирование
По умолчанию в планировщике заданий уже создано правило по бэкапу пользователей Hestia:
В разделе Backup можно скачать бэкап и посмотреть состав, под каждым пользователем свой бэкап и свое содержимое, согласно настройкам:
Настройка брандмауэра и Fail2ban
В качестве брандмауэра используется iptables, настройки по умолчанию, проверяем:
iptables -nL -v
Chain INPUT (policy DROP 5350 packets, 235K bytes)
pkts bytes target prot opt in out source destination
2582 633K fail2ban-HESTIA tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8083
2221 140K fail2ban-MAIL tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 25,465,587,110,995,143,993
320 14290 fail2ban-FTP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
11903 1383K fail2ban-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
36126 38M fail2ban-RECIDIVE tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 1:65535
27666 38M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
133 7980 ACCEPT all -- * * 149.154.71.196 0.0.0.0/0
603 41707 ACCEPT all -- * * 127.0.0.1 0.0.0.0/0
680 42342 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
673 40179 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443
41 1688 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 21,12000:12100
230 17376 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
6 344 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
50 2820 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 25,465,587
4 200 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 110,995
6 328 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 143,993
115 5800 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8083
1104 39785 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 33987 packets, 17M bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-FTP (1 references)
pkts bytes target prot opt in out source destination
320 14290 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-HESTIA (1 references)
pkts bytes target prot opt in out source destination
2582 633K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-MAIL (1 references)
pkts bytes target prot opt in out source destination
2221 140K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-RECIDIVE (1 references)
pkts bytes target prot opt in out source destination
241 14460 REJECT all -- * * 206.189.143.67 0.0.0.0/0 reject-with icmp-port-unreachable
1713 103K REJECT all -- * * 141.98.11.112 0.0.0.0/0 reject-with icmp-port-unreachable
34172 38M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-SSH (1 references)
pkts bytes target prot opt in out source destination
24 1892 REJECT all -- * * 84.53.228.192 0.0.0.0/0 reject-with icmp-port-unreachable
22 1680 REJECT all -- * * 112.198.43.130 0.0.0.0/0 reject-with icmp-port-unreachable
18 1300 REJECT all -- * * 103.87.102.235 0.0.0.0/0 reject-with icmp-port-unreachable
9184 1190K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain hestia (0 references)
pkts bytes target prot opt in out source destination
Fail2ban настроен с фильтрами на всё встроенные приложения, единственное, что рекомендую редактировать, так это количество ложных срабатываний в определённой временной дельте и время блокировки злоумышленника.
Вывод
Замечательное решение для небольших компаний с маленькой аудиторией и небольшим почтовым трафиком или в качестве тестовой среды для разработчиков.
Проект HestiaCP хорошо документирован и находится в стадии активной разработки и поддержки сообществом.
Статья дописывается, будет вставлен расширенный блок настроек DNS и описание настроек файрволла, публикую заранее по причине того, что сам по себе материал уже пригоден в качестве инструкции к применению.
Пока материал дописывается, ресурсы панели доступны по адресам:
- https://tuning-admina.ru сайт на WordPress
- https://tuning-admina.ru/wp-login.php админка WordPress
- https://mail.tuning-admina.ru пользовательский web интерфейс Roundcube нашего почтового сервера
- https://tuning-admina.ru:8083 web панель управления HestiaCP