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