Обзор развертывания Webmin на сервере¶
Предварительные требования и базовые условия¶
Перед развертыванием Webmin должны быть выполнены следующие требования:
-
Операционная система: дистрибутивы на базе Debian, Ubuntu или RHEL.
-
Привилегии: Для установки и конфигурации требуются права root или привилегии
sudo. -
Домен: Сервер должен быть связан с зоной
hostkey.in. -
Порты: Порт
10000(TCP) необходим для внутреннего взаимодействия Webmin. Порт443(TCP) используется для внешнего доступа через прокси-сервер Nginx.
FQDN конечной панели¶
Приложение доступно по Полному доменному имени (Fully Qualified Domain Name, FQDN), сформированному следующим образом:
webmin<ServerID>.hostkey.in:443
Замените <ServerID> на конкретный идентификатор хоста.
Структура файлов и каталогов¶
В процессе развертывания создаются специальные директории для хранения конфигурации, логов и SSL-сертификатов:
-
/etc/webmin/: Стандартное место хранения файлов конфигурации Webmin. -
/usr/libexec/webmin/: Расположение бинарных файлов и модулей Webmin. -
/var/webmin/: Каталог данных и логов Webmin. -
/root/nginx/: Каталог для файлов Docker Compose прокси-сервера Nginx. -
/data/nginx/user_conf.d/: Место для пользовательских конфигураций прокси-сервера Nginx. -
/data/nginx/nginx-certbot.env: Файл окружения для контейнера Nginx-Certbot. -
/etc/letsencrypt/: Хранилище SSL-сертификатов (монтируется внутри контейнера Nginx).
Процесс установки приложения¶
Webmin устанавливается с помощью нативного менеджера пакетов, специфичного для операционной системы. Процесс установки включает добавление официального GPG-ключа и репозитория Webmin.
Системы Debian/Ubuntu:
-
Установите зависимости:
gnupg2,curl,wgetиufw. -
Добавьте GPG-ключ Webmin с адреса
https://www.webmin.com/jcameron-key.asc. -
Добавьте репозиторий:
deb [arch=amd64] http://download.webmin.com/download/repository sarge contrib. -
Обновите кэш пакетов.
-
Установите пакет
webmin.
Системы на базе RHEL:
-
Скачайте скрипт настройки репозитория с адреса
https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh. -
Выполните скрипт настройки для конфигурации репозитория
webmin. -
Установите пакет
webminс помощьюyum.
Права доступа и безопасность¶
Правила межсетевого экрана (firewall) настраиваются для разрешения необходимого трафика при обеспечении безопасности:
-
UFW (Ubuntu/Debian): Межсетевой экран настраивается для разрешения TCP-трафика на порту
10000. Межсетевой экран перезагружается для применения изменений. -
FirewallD (RHEL): В зону
publicдобавляется постоянное правило для разрешения TCP-трафика на порту10000. -
Аутентификация: Для доступа к панели Webmin требуются действительные административные учетные данные.
Контейнеры Docker и их развертывание¶
Для обработки обратного проксирования и завершения SSL-соединений развертывается Docker-контейнер, использующий образ jonasal/nginx-certbot:latest.
-
Имя контейнера:
nginx(как определено в сервисе Compose). -
Политика перезапуска:
unless-stopped. -
Режим сети: Используется режим хоста (host mode) для прямого доступа к портам.
-
Окружение:
-
CERTBOT_EMAIL: Установлено значениеhkadm@hostkey.com. -
env_file: Указывает на/data/nginx/nginx-certbot.env. -
Томы (Volumes):
-
nginx_secrets(внешний том) смонтирован в/etc/letsencrypt. -
Директория хоста
/data/nginx/user_conf.dсмонтирована в/etc/nginx/user_conf.d.
Управление контейнером осуществляется через команду docker compose, файл которой расположен в /root/nginx/compose.yml.
Серверы прокси-маршрутизации¶
Nginx действует как обратный прокси-сервер с завершением SSL-соединений с использованием Let's Encrypt через контейнер Certbot.
-
Цель проксирования: Трафик, полученный на порту
443, перенаправляется наhttp://127.0.0.1:10000. -
Файл конфигурации:
/data/nginx/user_conf.d/webmin<ServerID>.hostkey.in.conf. -
Обработка SSL: Автоматизирована контейнером
nginx-certbotс использованием протокола Let's Encrypt. -
Пользовательский домен: Прокси настроен специально для зоны
hostkey.inс использованием префиксаwebmin.
Настройки прав доступа¶
Следующие права доступа установлены для директории конфигурации прокси:
-
Директория:
/root/nginx -
Владелец:
root -
Группа:
root -
Режим:
0755(rwxr-xr-x) -
Файл Compose:
/root/nginx/compose.yml -
Владелец:
root -
Группа:
root -
Режим:
0644(rw-r--r--)
Стандартные системные права доступа применяются к каталогам Webmin (/etc/webmin, /var/webmin) в соответствии с управлением нативного установщика.
Расположение файлов конфигурации и данных¶
| Компонент | Путь | Описание |
|---|---|---|
| Конфигурация Webmin | /etc/webmin/ | Основные файлы конфигурации Webmin |
| Данные/Логи Webmin | /var/webmin/ | Данные пользователей и логи |
| Конфигурация прокси Nginx | /data/nginx/user_conf.d/ | Специфичные для сервера конфигурации Nginx |
| Docker Compose | /root/nginx/compose.yml | Файл оркестрации контейнеров |
| Файл окружения Certbot | /data/nginx/nginx-certbot.env | Переменные окружения для SSL |
Доступные порты для подключения¶
Следующие порты настроены для приложения:
-
Порт 10000 (TCP): Внутренний порт для прямого доступа к сервису Webmin (разрешен через межсетевой экран).
-
Порт 443 (TCP): Внешний порт для безопасного доступа через обратный прокси-сервер Nginx.
Запуск, остановка и обновление¶
Управление сервисом Webmin:
-
Запуск:
systemctl start webmin -
Остановка:
systemctl stop webmin -
Перезапуск:
systemctl restart webmin -
Включение при загрузке:
systemctl enable webmin
Управление прокси-сервером Nginx (Docker):
-
Запуск/Обновление:
docker compose up -d(выполняется из/root/nginx/) -
Остановка:
docker compose down(выполняется из/root/nginx/)