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

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

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

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

  • Операционная система: Ubuntu (специфически jammy или совместимые версии, поддерживающие управление пакетами через apt).

  • Привилегии: Для установки пакетов, настройки межсетевого экрана и управления контейнерами Docker требуются права root или привилегии sudo.

  • Настройка домена: Сервер должен быть настроен для разрешения полного доменного имени (FQDN), определенного в процессе развертывания.

  • Порты: Следующие TCP-порты должны быть открыты и доступны:

  • 22: Доступ по SSH.

  • 80: HTTP (используется для валидации SSL-сертификатов).

  • 443: HTTPS (внешний доступ к панели управления).

  • 8080: Внутренний порт сервиса ISPConfig.

FQDN конечной панели

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

  • Формат: ispconfig<Server ID>.hostkey.in

  • Порт: 443 (HTTPS)

  • Пример: ispconfig123.hostkey.in

Имя хоста сервера автоматически устанавливается в соответствие с этим FQDN в процессе установки.

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

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

  • Интерфейс ISPConfig: /usr/local/ispconfig/interface

  • Конфигурация ISPConfig: /usr/local/ispconfig/interface/lib/config.inc.php

  • Временные файлы ISPConfig: /usr/local/ispconfig/interface/temp

  • Временные файлы PHPIDS: /usr/local/ispconfig/interface/lib/classes/IDS/tmp

  • Конфигурация прокси Nginx: /root/nginx

  • Конфигурация пользователя Nginx: /data/nginx/user_conf.d

  • Файл Docker Compose: /root/nginx/compose.yml

  • Журнал установки: /root/ispconfig-ai-run.log

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

Приложение ISPConfig устанавливается с использованием официального скрипта автоустановщика со специальными флагами для настройки минимальной конфигурации.

  • Источник установщика: Установщик загружается с https://www.ispconfig.org/downloads/ispconfig-ai.tar.gz.

  • Флаги установки:

  • --use-nginx: Включает Nginx в качестве веб-сервера.

  • --no-roundcube: Отключает установку веб-почты Roundcube.

  • --no-mail: Отключает настройку почтового сервера.

  • --no-dns: Отключает настройку DNS-сервера.

  • --no-ftp: Отключает настройку FTP-сервера.

  • --unattended-upgrades: Включает автоматические обновления безопасности.

  • --i-know-what-i-am-doing: Игнорирует интерактивные предупреждения.

  • Выполнение: Установщик выполняется командой php -q /tmp/ispconfig-ai/ispconfig.ai.php с перечисленными выше флагами.

  • Версия: Установка использует последнюю версию, доступную на момент выполнения скрипта, определяемую динамически установщиком.

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

Меры безопасности реализованы через межсетевой экран UFW и специфические права пользователей.

  • Межсетевой экран (UFW):

  • Сервис ufw включен.

  • Разрешенные TCP-порты: 22, 80, 443, 8080.

  • Права пользователей:

  • Пользователь веб-сервера установлен как www-data.

  • Файл config.inc.php принадлежит пользователю root с группой www-data и правами доступа 0640.

  • Временные каталоги принадлежат пользователю www-data с правами доступа 0770.

Базы данных

Приложение использует базу данных MariaDB для хранения конфигурации и данных.

  • Имя базы данных: dbispconfig

  • Хост базы данных: localhost

  • Порт базы данных: 3306

  • Пользователь базы данных: ispconfig

  • Пароль базы данных: admin123

  • Пользователь root: root

  • Пароль root: admin123

  • Место хранения: База данных размещена локально на сервере.

  • Образ: Развертывание использует корпоративный образ MariaDB из репозитория docker-srv.hostkey.com/docker-anonymous/bitnami/mariadb:latest.

Контейнеры Docker и их развертывание

Контейнер Docker развернут для обработки обратного проксирования и управления SSL-сертификатами.

  • Образ контейнера: jonasal/nginx-certbot:latest

  • Метод развертывания: Docker Compose

  • Расположение файла Compose: /root/nginx/compose.yml

  • Режим сети: host

  • Томы (Volumes):

  • nginx_secrets: Монтирован в /etc/letsencrypt (внешний том).

  • /data/nginx/user_conf.d: Монтирован в /etc/nginx/user_conf.d.

  • Переменные окружения:

  • CERTBOT_EMAIL: hkadm@hostkey.com

  • Политика перезапуска: unless-stopped

  • Команда: Контейнер запускается с помощью команды docker compose up -d в каталоге /root/nginx.

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

Nginx настроен как обратный прокси для обработки внешнего трафика и завершения SSL-соединений.

  • Конфигурация прокси:

  • Внешний трафик на порту 443 обрабатывается контейнером Docker Nginx-Certbot.

  • Прокси пересылает запросы во внутренний сервис ISPConfig по адресу http://127.0.0.1:8080.

  • SSL/TLS:

  • Управляется контейнером nginx-certbot.

  • Сертификаты хранятся в томе nginx_secrets в каталоге /etc/letsencrypt.

  • Внутренний Nginx:

  • Экземпляр Nginx на уровне хоста слушает порт 8080 без SSL.

  • Файл конфигурации: /etc/nginx/sites-available/ispconfig.vhost.

  • По умолчанию сайты и сайты ACME на хост-сервере Nginx удалены для предотвращения конфликтов.

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

Права доступа к файлам и каталогам строго установлены для обеспечения безопасности и корректной функциональности.

  • Каталоги:

  • /usr/local/ispconfig: 0755 (Владелец: root, Группа: root)

  • /usr/local/ispconfig/interface: 0755 (Владелец: root, Группа: root)

  • /usr/local/ispconfig/interface/lib: 0755 (Владелец: root, Группа: root)

  • /usr/local/ispconfig/interface/temp: 0770 (Владелец: www-data, Группа: www-data)

  • /usr/local/ispconfig/interface/lib/classes/IDS/tmp: 0770 (Владелец: www-data, Группа: www-data)

  • Файлы:

  • /usr/local/ispconfig/interface/lib/config.inc.php: 0640 (Владелец: root, Группа: www-data)

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

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

  • Основная конфигурация ISPConfig: /usr/local/ispconfig/interface/lib/config.inc.php

  • Конфигурация прокси Nginx: /root/nginx/compose.yml

  • Конфигурация пользователя Nginx: /data/nginx/user_conf.d/ispconfig<Server ID>.hostkey.in.conf

  • Конфигурация сайта хост-сервера Nginx: /etc/nginx/sites-available/ispconfig.vhost

  • Учетные данные базы данных: Хранятся внутри конфигурации ISPConfig и управляются через сервис MariaDB.

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

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

  • Порт 22: SSH (Secure Shell)

  • Порт 80: HTTP (Перенаправлен/Используется для валидации SSL)

  • Порт 443: HTTPS (Доступ к панели ISPConfig)

  • Порт 8080: Внутренний сервис ISPConfig (Не открыт напрямую для публичного интернета)

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

Управление службами осуществляется через Docker Compose для прокси и стандартные команды управления службами для компонентов хоста.

  • Сервис прокси Docker:

  • Запуск/Перезапуск: docker compose up -d (выполняется из каталога /root/nginx)

  • Остановка: docker compose down (выполняется из каталога /root/nginx)

  • Сервис Nginx хоста:

  • Перезагрузка конфигурации: systemctl reload nginx

  • Перезапуск: systemctl restart nginx

  • Обновления ISPConfig:

  • Обновления управляются через интерфейс ISPConfig или путем повторного запуска скрипта автоустановщика с флагами обновления.

  • Для системных пакетов включены автоматические обновления (unattended upgrades).

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