Перейти к содержанию

Обзор развертывания 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

  1. Создание каталога /root/nginx и переменных окружения.
  2. Генерация файла compose.yml из шаблона.
  3. Запуск через docker compose up -d в каталоге /root/nginx.
cd /root/nginx
docker compose up -d

Сервис сразу начинает слушать запросы, используя 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 updateapt install webmin

  • CentOS/Rocky/AlmaLinux:

  • Скачать и выполнить скрипт установки репозиториев.
  • yum install webmin

Пакет сам создаёт сервис webmin.service и запускает его.

Запуск/остановка

systemctl start webmin      # запустить
systemctl stop webmin       # остановить
systemctl restart webmin    # перезапустить

Обновление

apt update && apt upgrade webmin   # Debian/Ubuntu
yum update webmin                 # RHEL‑основанные

Учет безопасности

  • После установки порт 10000 добавляется в межсетевой экран.
  • Для Ubuntu используется ufw allow 10000/tcp.
  • Для RHEL‑основанных используется firewall-cmd --add-port=10000/tcp --permanent.

При соблюдении всех пунктов, описанных выше, Webmin будет доступен по HTTPS, а запросы к нему будут перенаправляться через Nginx‑certbot, обеспечивая безопасное и удобное управление сервером.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×