Найти в Дзене
Тюнинг Админа

Собственный хостинг + почтовый сервер в компании на Ubuntu 22.04LTS + HestiaCP

HestiaCP - это бесплатная web панель управления сервером, предоставляющая возможность по облегченной настройке и администрированию web серверов. Содержание статьи Возможности и преимущества продукта Возможности продукта: Преимущества продукта: Системные требования Поддерживаемые операционные системы: Минимальные системные требования: Процессор: 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 Устанавливаем имя нашему серверу:
Оглавление

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 для управления виртуальной машиной:

-2

Я уже перезалил виртуальную машину тремя щелчками мышки.

-3
-4

Параметры тестовой виртуальной машины

-5

Всем советую эта машинка стоит всего 291руб/месяц

-6

Повышаем наши права в системе:

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
-7

Все основные настройки прописывает у провайдера в редакторе управления 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

Следуем инструкциям в процессе установки:

-8

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

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

-9
-10

Настройка панели управления

Первым делом меняем язык системы в профиле администратора, там же можно выбрать тему.

-11

Службы сервера и управление ими:

-12

Добавление пользователя и домена на сервере, настройка сайта и почты

Первым делом добавим пользователя для управлением нашим сайтом, нажимаем Добавить пользователя:

-13
-14

Перейдем в панель под именем пользователя:

-15
-16

В разделе WEB нажимаем Добавить домен:

-17

Указываем имя домена, IP адрес, включаем поддержку DNS и почты:

-18

После создания записи нажимаем на нее для продолжения редактирования:

-19

Включаем статистику и поддержку SSL, а также редирект запросов:

-20

Сертификат автоматом подцепится. В планировщике уже есть задание для обновления сертификатов.

-21

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

-22

Список скриптов на выбор, выбираем WordPress и нажимаем Настроить:

-23

Указываем учетные данные и нажимаем Установить:

-24

Идем проверять наш сайт:

-25
-26

Как видим сайт работает, административная часть которого доступна по адресу: https://tuning-admina.ru/wp-login.php

-27

Приступим к настройке почты

-28

Включаем поддержку SSL и Let's Encrypt

-29

Переходим в roundcube для проверки:

-30
-31

Можно добавлять пользователей и работать.

Необходимо установить антивирус в системе и прописать его в конфигурационных файлах.

Устанавливаем антивирус 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:

-32

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

-33

Настройка брандмауэра и 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