Обзор развертывания Webmin на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Debian, Ubuntu, CentOS, Rocky Linux или AlmaLinux.
-
Права доступа: Права суперпользователя (root) для установки пакетов и настройки системных служб.
-
Порты:
-
10000/tcp— внутренний порт приложения Webmin. -
443/tcp— внешний порт для доступа через HTTPS (через прокси).
FDQN итоговой панели на домене hostkey.in¶
Для обеспечения работы SSL-сертификатов используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | webmin |
| Домен | hostkey.in |
| Полный шаблон | webmin{Server_ID_from_Invapi}.hostkey.in |
Процесс установки приложения¶
Процесс развертывания зависит от используемой операционной системы:
Для систем на базе Debian/Ubuntu:
-
Удаляются конфликтующие старые источники и ключи Docker, если они присутствуют в системе.
-
Устанавливаются необходимые зависимости:
gnupg2,curl,wget. -
Добавляется официальный GPG-ключ Webmin.
-
Подключается репозиторий Webmin.
-
Выполняется обновление кэша пакетов и установка приложения
webmin.
Для систем на базе RHEL (CentOS, Rocky, AlmaLinux):
-
Загружается установочный скрипт репозитория с официального ресурса Webmin.
-
Скрипт выполняется для автоматической настройки источников пакетов.
-
Устанавливается пакет
webminчерез менеджер пакетовyum.
После установки основного приложения выполняется настройка конфигурационного файла /etc/webmin/miniserv.conf:
-
Отключается встроенный SSL (
ssl=0). -
Настраивается параметр
host, соответствующий публичному FQDN сервера, чтобы избежать ошибок отображения имени хоста. -
Сервис Webmin перезапускается для применения изменений.
Права доступа и безопасность¶
Для защиты сервера настраиваются сетевые экрары:
-
UFW (для Ubuntu): Разрешается входящий трафик на порт
10000/tcp. -
Firewalld (для RHEL/CentOS): Создается постоянное правило для порта
10000/tcpв зонеpublic.
Контейнеры Docker и их запуск¶
Для обеспечения работы прокси-сервера и автоматического получения SSL-сертификатов используется контейнерная среда.
Контейнер Nginx с Certbot:
-
Образ:
jonasal/nginx-certbot:latest -
Режим сети:
host(для прямого взаимодействия с портами хоста). -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— для хранения SSL-сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— для конфигурационных файлов проксирования. -
Переменные окружения:
-
CERTBOT_EMAIL=hkadm@hostkey.com -
Политика перезапуска:
unless-stopped.
Контейнер запускается из директории /root/nginx с использованием файла compose.yml.
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Настройка проксирования Nginx: В конфигурационные файлы в директории
/data/nginx/user_conf.d/вносятся изменения для перенаправления трафика с порта 443 на локальный порт127.0.0.1:10000. -
Корректировка заголовков: Для корректной работы Webmin через прокси добавляются заголовки
HostиX-Forwarded-Proto, чтобы приложение понимало, что запрос пришел по протоколу HTTPS.
Инструкция по обновлению приложения¶
Обновление основного приложения выполняется стандартными средствами пакетного менеджера вашей операционной системы:
Для Debian/Ubuntu:
Для RHEL/CentOS/Rocky/AlmaLinux: