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

Обзор развертывания ISPConfig на сервере

Предварительные требования

Для успешного развертывания панели управления ISPConfig на сервере необходимо выполнить следующие условия:

  • Операционная система: Ubuntu (поддерживаются версии, соответствующие кодовым именам, определяемым системой).
  • Права доступа: Требуется доступ к серверу с правами root или возможность выполнения команд через sudo.
  • Сетевые требования: Сервер должен иметь публичный IP-адрес и доступ в интернет для загрузки пакетов и образов Docker.
  • Установленный Docker: На сервере должен быть установлен и запущен демон Docker для работы прокси-сервера и базы данных.
  • Открытые порты: Брандмауэр должен разрешать входящие соединения на портах 22, 80, 443 и 8080.

FQDN итоговой панели

Панель управления доступна по следующему полному доменному имени (FQDN):

ispconfig<ID сервера>.hostkey.in:443

Где <ID сервера> заменяется на уникальный идентификатор конкретного сервера. Доступ осуществляется через HTTPS на стандартном порту 443.

Структура файлов и каталогов

Основные компоненты системы расположены в следующих директориях:

  • Интерфейс панели: /usr/local/ispconfig/interface
  • Конфигурация панели: /usr/local/ispconfig/interface/lib/config.inc.php
  • Временные файлы панели: /usr/local/ispconfig/interface/temp
  • Временные файлы PHPIDS: /usr/local/ispconfig/interface/lib/classes/IDS/tmp
  • Конфигурация Nginx (хост): /etc/nginx/sites-available/ispconfig.vhost
  • Конфигурация прокси (Docker): /root/nginx/compose.yml
  • Пользовательские конфиги прокси: /data/nginx/user_conf.d/
  • Сертификаты SSL: /etc/letsencrypt (монтируется в контейнер)

Процесс установки приложения

Установка производится с использованием автоматического установщика ISPConfig (версия ispconfig-ai) с минимальным набором компонентов. Процесс включает следующие этапы:

  1. Обновление репозиториев пакетов и установка базовых утилит (wget, curl, nginx, bind9, php-cli).
  2. Загрузка архива установщика ISPConfig в каталог /tmp/ispconfig-ai.
  3. Применение исправлений к скрипту установщика для корректной работы с версиями.
  4. Запуск установщика с флагами:
  5. --use-nginx: Использование Nginx в качестве веб-сервера.
  6. --no-roundcube: Отключение установки почтового клиента Roundcube.
  7. --no-mail, --no-dns, --no-ftp: Отключение модулей почты, DNS и FTP.
  8. --unattended-upgrades: Включение автоматических обновлений безопасности.
  9. --i-know-what-i-am-doing: Подтверждение действий.
  10. Установка образа базы данных MariaDB из корпоративного реестра (docker-srv.hostkey.com/docker-anonymous/bitnami/mariadb:latest).
  11. Настройка хоста и разрешения доменного имени в файле /etc/hosts.

Права доступа и безопасность

Безопасность системы обеспечивается следующими мерами:

  • Брандмауэр UFW: Включен и настроен на блокировку всех входящих соединений по умолчанию, за исключением разрешенных портов.
  • Разрешенные порты:
  • 22: SSH-доступ.
  • 80: HTTP (для работы Certbot).
  • 443: HTTPS (для доступа к панели).
  • 8080: Внутренний порт панели ISPConfig.
  • Пользователи:
  • Веб-сервер работает от имени пользователя www-data.
  • Файлы конфигурации панели принадлежат пользователю root и группе www-data.
  • Ограничения:
  • Доступ к файлу конфигурации /usr/local/ispconfig/interface/lib/config.inc.php разрешен только на чтение для группы www-data.
  • Временные директории панели имеют права 0770 для пользователя и группы www-data.

Базы данных

База данных для панели ISPConfig работает в контейнере Docker.

  • Образ: docker-srv.hostkey.com/docker-anonymous/bitnami/mariadb:latest.
  • Хост подключения: localhost.
  • Порт: 3306.
  • Имя базы данных: dbispconfig.
  • Пользователь root: root с паролем admin123.
  • Пользователь ISPConfig: ispconfig с паролем admin123.
  • Характеристика кодировки: utf8.

Контейнеры Docker и их запуск

Для обеспечения работы панели и получения SSL-сертификатов используются следующие контейнеры:

  • Прокси-сервер с Certbot:
  • Образ: jonasal/nginx-certbot:latest.
  • Режим сети: host.
  • Точки монтирования:
    • nginx_secrets (внешний том) в /etc/letsencrypt.
    • /data/nginx/user_conf.d в /etc/nginx/user_conf.d.
  • Файл конфигурации: /root/nginx/compose.yml.
  • Команда запуска: docker compose up -d в директории /root/nginx.

Контейнер базы данных MariaDB запускается отдельно и не управляется через docker compose в данном сценарии, но является обязательным компонентом.

Прокси серверы

Внешний доступ к панели осуществляется через контейнер Nginx с Certbot, который обрабатывает SSL-шифрование и пересылает запросы на внутренний порт панели.

  • Домен: ispconfig<ID сервера>.hostkey.in.
  • Порт входа: 443 (HTTPS).
  • Порт выхода (upstream): 8080 (HTTP).
  • Путь пересылки: / -> http://127.0.0.1:8080.
  • Конфигурация пересылки: Находится в файле /data/nginx/user_conf.d/ispconfig<ID сервера>.hostkey.in.conf.
  • Сертификаты: Генерируются автоматически через Let's Encrypt с использованием адреса hkadm@hostkey.com.

Настройки прав

Права на файлы и директории настроены следующим образом:

Путь к файлу или директории Владелец Группа Права
/usr/local/ispconfig root root 0755
/usr/local/ispconfig/interface root root 0755
/usr/local/ispconfig/interface/lib root root 0755
/usr/local/ispconfig/interface/lib/config.inc.php root www-data 0640
/usr/local/ispconfig/interface/temp www-data www-data 0770
/usr/local/ispconfig/interface/lib/classes/IDS/tmp www-data www-data 0770
/root/nginx root root 0644
/root/nginx/compose.yml root root 0644

Расположение конфигурационных файлов и данных

Ключевые файлы конфигурации и данные хранятся в следующих местах:

  • Конфигурация веб-сервера (хост): /etc/nginx/sites-available/ispconfig.vhost.
  • Ссылка на активный конфиг: /etc/nginx/sites-enabled/000-ispconfig.vhost.
  • Конфигурация прокси (Docker): /root/nginx/compose.yml.
  • Пользовательские настройки прокси: /data/nginx/user_conf.d/ispconfig<ID сервера>.hostkey.in.conf.
  • Файл флага установки: /usr/local/ispconfig/interface/lib/config.inc.php.
  • Логи установки: /root/ispconfig-ai-run.log.

Доступные порты для подключения

Следующие порты открыты для входящих соединений:

  • 22: SSH (управление сервером).
  • 80: HTTP (перенаправление на HTTPS и работа ACME challenge).
  • 443: HTTPS (доступ к панели ISPConfig).
  • 8080: HTTP (внутренний порт панели ISPConfig, доступен только локально или через прокси).

Запуск, остановка и обновление

Управление сервисами осуществляется следующими командами:

  • Запуск прокси-сервера:
    cd /root/nginx
    docker compose up -d
    
  • Остановка прокси-сервера:
    cd /root/nginx
    docker compose down
    
  • Перезагрузка веб-сервера Nginx (хост):
    systemctl reload nginx
    
  • Проверка конфигурации Nginx:
    nginx -t
    
  • Обновление базы данных (через контейнер):
    docker restart <имя_контейнера_mariadb>
    

Для обновления самой панели ISPConfig необходимо повторить процесс установки с использованием флага обновления в скрипте ispconfig.ai.php, однако в текущей конфигурации это не автоматизировано.

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