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