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

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

  1. Установите зависимости: gnupg2, curl, wget и ufw.

  2. Добавьте GPG-ключ Webmin с адреса https://www.webmin.com/jcameron-key.asc.

  3. Добавьте репозиторий: deb [arch=amd64] http://download.webmin.com/download/repository sarge contrib.

  4. Обновите кэш пакетов.

  5. Установите пакет webmin.

Системы на базе RHEL:

  1. Скачайте скрипт настройки репозитория с адреса https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh.

  2. Выполните скрипт настройки для конфигурации репозитория webmin.

  3. Установите пакет 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/)

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