Обзор развертывания Webmin на сервере¶
Предпосылки и предварительные требования¶
- Сервер должен работать на одной из следующих дистрибутивов:
- CentOS, Rocky Linux, AlmaLinux (Red Hat‑основанные)
- Ubuntu, Debian (Debian‑основанные)
- Установлен Docker. При первом подключении к клиенту система автоматически устанавливает его, если он отсутствует.
- Для работы веб‑панеля требуется порт 10000/tcp. Он открывается в межсетевом экране, используя
firewall‑cmd(для RHEL‑основанных) либоufw(для Ubuntu). - В настройках домена прописан префикс, идентификатор сервера и зона (
prefix,server_id,zone). Путь к конфигурации Nginx создаётся по шаблонуprefix + server_id + ".hostkey.in.conf".
Структура файлов и каталогов¶
/root/nginx/ # корень проекта с Docker‑композом
├── compose.yml # сгенерированный docker‑compose файл
└── nginx-certbot.env # переменные окружения (показаны в шаблоне)
/data/nginx/user_conf.d/ # пользовательские конфиги Nginx
prefixserver_id.hostkey.in.conf # файл с настройками прокси для Webmin
compose.ymlсоздаётся из шаблонаcompose.yml.j2. В нём описывается сервис nginx‑certbot, который запускается в режиме host‑network и монтирует томnginx_secretsдля хранения сертификатов.- Конфиг Nginx содержит строку
proxy_pass http://127.0.0.1:10000;, перенаправляющую запросы к Webmin.
Права доступа и безопасность¶
- Все управляемые файлы находятся в владении пользователя
rootи имеют права0644(для файлов) и0755(для каталогов). - Docker‑контейнер nginx‑certbot работает в режиме host‑network, но сам сервис слушает только локальный порт 10000, который уже открыт в файерволе.
- Веб‑панель Webmin устанавливается через пакетный менеджер (
apt/yum), при этом используется официальное репозитории, ключи GPG добавляются автоматически. - Для HTTPS сертификаты выдаются через Certbot, используя сервис
jonasal/nginx-certbot. Сами сертификаты сохраняются в томеnginx_secrets, который объявлен как external и не создаётся автоматически, его необходимо создать заранее (или подключить к существующему).
Базы данных¶
Webmin не требует отдельной базы данных при стандартной установке. Вся конфигурация хранится в файловой системе пакета.
Контейнеры Docker и их запуск¶
Запуск контейнера Nginx‑certbot¶
- Создание каталога
/root/nginxи переменных окружения. - Генерация файла
compose.ymlиз шаблона. - Запуск через
docker compose up -dв каталоге/root/nginx.
Сервис сразу начинает слушать запросы, используя HTTPS и выдаёт сертификаты от Let’s Encrypt.
Управление¶
- Запуск:
docker compose up -d - Остановка:
docker compose down - Обновление:
docker compose pull+docker compose up -d
Прокси‑серверы (Nginx)¶
- В конфигурации Nginx для конкретного домена прописывается
proxy_pass http://127.0.0.1:10000;. - Если в пользовательском файле уже есть строка
proxy_pass, она удаляется, после чего добавляется новая. - Это обеспечивает, что все запросы к домену перенаправляются на Webmin, обслуживаемый на порту 10000.
Настройки прав, запуск, остановка и обновление (Webmin)¶
Установка¶
- Debian/Ubuntu:
apt install gnupg2 curl wget- Добавить GPG‑ключ Webmin.
- Добавить репозиторий.
-
apt update→apt install webmin -
CentOS/Rocky/AlmaLinux:
- Скачать и выполнить скрипт установки репозиториев.
yum install webmin
Пакет сам создаёт сервис webmin.service и запускает его.
Запуск/остановка¶
systemctl start webmin # запустить
systemctl stop webmin # остановить
systemctl restart webmin # перезапустить
Обновление¶
Учет безопасности¶
- После установки порт 10000 добавляется в межсетевой экран.
- Для Ubuntu используется
ufw allow 10000/tcp. - Для RHEL‑основанных используется
firewall-cmd --add-port=10000/tcp --permanent.
При соблюдении всех пунктов, описанных выше, Webmin будет доступен по HTTPS, а запросы к нему будут перенаправляться через Nginx‑certbot, обеспечивая безопасное и удобное управление сервером.