Обзор развертывания ISPConfig на сервере¶
Предварительные требования и базовые условия¶
Для развертывания панели ISPConfig на сервере должны быть соблюдены следующие требования к среде и конфигурации:
-
Операционная система: Ubuntu (в частности,
jammyили совместимые кодовые имена, определяемые черезansible_lsb.codename). -
Права доступа: Для установки пакетов, изменения файловой системы и управления службами требуется доступ с правами root или
sudo. -
Домен и DNS: Полное доменное имя (FQDN) должно быть настроено на разрешение в IP-адрес сервера. Формат:
ispconfig<Server ID>.hostkey.in. -
Порты: Следующие TCP-порты должны быть доступны и открыты в межсетевом экране (firewall):
-
22(SSH) -
80(HTTP) -
443(HTTPS) -
8080(Внутренний интерфейс ISPConfig)
-
-
Зависимости ПО: Процесс установки автоматически устанавливает следующие пакеты, если они отсутствуют:
php-cli,php-mbstring,curl,nginx,bind9,ufw,wget,tar,unzip,gnupgиca-certificates.
FQDN конечной панели¶
Полное доменное имя для доступа к панели ISPConfig в домене hostkey.in следует шаблону:
ispconfig<Server ID>.hostkey.in:443
Имя хоста конфигурируется через переменную ispconfig_fqdn и отображается в файле /etc/hosts на адрес IPv4 по умолчанию сервера.
Структура файлов и директорий¶
Приложение, файлы конфигурации и данные организованы в следующих местах:
-
Корневая директория установки:
/usr/local/ispconfig -
Веб-интерфейс:
/usr/local/ispconfig/interface -
Веб-корень:
/usr/local/ispconfig/interface/web -
Основной файл конфигурации:
/usr/local/ispconfig/interface/lib/config.inc.php -
Временные файлы:
-
ISPConfig Temp:
/usr/local/ispconfig/interface/temp -
PHPIDS Temp:
/usr/local/ispconfig/interface/lib/classes/IDS/tmp
-
-
Конфигурация Nginx:
-
Виртуальный хост:
/etc/nginx/sites-available/ispconfig.vhost -
Символическая ссылка (активирована):
/etc/nginx/sites-enabled/000-ispconfig.vhost
-
-
Конфигурация Docker Proxy:
-
Файл Docker Compose:
/root/nginx/compose.yml -
Директория конфигурации пользователя:
/data/nginx/user_conf.d
-
-
Логи: Логи установки сохраняются в
/root/ispconfig-ai-run.log.
Процесс установки приложения¶
Развертывание использует скрипт автоматической установки ISPConfig (ispconfig.ai.php), выполняемый с определенными флагами для неинтерактивной настройки среды.
-
Получение скрипта: Скрипт инсталлятора загружается с
https://www.ispconfig.org/downloads/ispconfig-ai.tar.gzв/tmp/ispconfig-ai. -
Флаги выполнения: Инсталлятор запускается со следующими параметрами конфигурации:
-
--use-nginx: Активирует Nginx в качестве веб-сервера. -
--no-roundcube: Отключает установку веб-почты Roundcube. -
--no-mail,--no-dns,--no-ftp: Отключает настройку служб почты, DNS и FTP. -
--unattended-upgrades: Активирует автоматические обновления безопасности. -
--i-know-what-i-am-doing: Подтверждает инсталлятору продолжение без интерактивных запросов.
-
-
Команда:
-
Версионирование: Инсталлятор пытается получить последнюю стабильную версию. Для обработки логики определения версии применяется патч скрипта к
/tmp/ispconfig-ai/lib/os/class.ISPConfigDebianOS.inc.php. -
Образ базы данных: Используется специфический корпоративный образ MariaDB:
docker-srv.hostkey.com/docker-anonymous/bitnami/mariadb:latest.
Права доступа и безопасность¶
На сервере применяются строгие правила межсетевого экрана и права пользователей для обеспечения безопасности среды.
-
Межсетевой экран: Установлена и включена служба
ufw(Uncomplicated Firewall).- Разрешенные TCP-порты:
22,80,443,8080.
- Разрешенные TCP-порты:
-
SSH: Доступ через порт
22явно разрешается перед активацией межсетевого экрана. -
Изоляция служб:
-
Удалены сайты по умолчанию Nginx (
default,999-acme.vhost). -
Все существующие контейнеры, привязанные к портам
80или443, останавливаются и исключаются из автозапуска для предотвращения конфликтов с настройкой прокси.
-
-
Пользователь веб-сервера: Процессы веб-сервера выполняются от имени пользователя
www-data.
Базы данных¶
Панель ISPConfig использует локальную базу данных MySQL/MariaDB для хранения конфигурации.
-
Имя базы данных:
dbispconfig -
Хост базы данных:
localhost -
Порт базы данных:
3306 -
Способ подключения: Локальное сокеты-подключение через Nginx/PHP-FPM.
-
Учетные данные пользователей:
-
Пользователь Root:
root -
Пользователь ISPConfig:
ispconfig -
Пароли: Определяются в переменных конфигурации (по умолчанию в источнике
admin123, но должны быть изменены в производственной среде).
-
-
Набор символов:
utf8
Контейнеры Docker и их развертывание¶
Для управления обратным прокси и обработки SSL-сертификатов развертывается конфигурация Docker Compose.
-
Имя контейнера:
nginx(часть стекаjonasal/nginx-certbot). -
Образ:
jonasal/nginx-certbot:latest -
Место развертывания:
/root/nginx -
Конфигурация: Определена в
/root/nginx/compose.yml. -
Тома (Volumes):
-
nginx_secrets: Монтирован в/etc/letsencrypt(внешний том). -
Конфигурация хоста:
/data/nginx/user_conf.dсмонтирован в/etc/nginx/user_conf.d.
-
-
Режим сети:
host -
Команда запуска:
выполняется в директории/root/nginx.
Прокси-серверы¶
Система использует контейнер Nginx в Docker с интеграцией Certbot для обработки SSL-терминации и маршрутизации трафика.
-
Тип прокси: Nginx через образ
jonasal/nginx-certbot. -
Конфигурация SSL: Автоматически управляется Certbot с использованием Let's Encrypt.
-
Настройка маршрутизации:
-
Прокси передает трафик с доменов
hostkey.inво внутреннюю службу ISPConfig, работающую на порту8080. -
Файл конфигурации:
/data/nginx/user_conf.d/ispconfig<Server ID>.hostkey.in.conf. -
Правило прокси:
proxy_pass http://127.0.0.1:8080;
-
-
Nginx хоста:
-
Нативный экземпляр Nginx на хосте слушает только порт
8080для интерфейса ISPConfig без SSL. -
Обработка SSL/TLS полностью делегирована Docker-прокси.
-
-
Email для Certbot:
hkadm@hostkey.com(настроен через переменную средыCERTBOT_EMAIL).
Настройки прав доступа¶
Права доступа к файлам и директориям настроены таким образом, чтобы веб-сервер мог выполнять скрипты, сохраняя при этом безопасность.
| Путь | Владелец | Группа | Режим | Описание |
|---|---|---|---|---|
/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 | Временное хранилище PHPIDS |
/root/nginx | root | root | 0644 | Директория Docker compose |
Расположение файлов конфигурации и данных¶
Ключевые файлы конфигурации и данные находятся в специфических директориях:
-
Виртуальный хост Nginx:
/etc/nginx/sites-available/ispconfig.vhost -
Docker Compose:
/root/nginx/compose.yml -
Переменные среды для прокси:
/data/nginx/nginx-certbot.env -
Конфиги прокси пользователя:
/data/nginx/user_conf.d/ispconfig<Server ID>.hostkey.in.conf -
Флаг установки:
/usr/local/ispconfig/interface/lib/config.inc.php -
База данных: Локальная база данных
dbispconfigнаlocalhost.
Доступные порты для подключения¶
Следующие порты настроены и открыты для внешнего доступа:
| Порт | Протокол | Служба | Описание |
|---|---|---|---|
22 | TCP | SSH | Удаленное администрирование |
80 | TCP | HTTP | Перенаправляется на HTTPS прокси |
443 | TCP | HTTPS | Защищенный доступ к панели ISPConfig |
8080 | TCP | HTTP | Прямой внутренний доступ к ISPConfig (без SSL) |
Запуск, остановка и обновление¶
Управление службами осуществляется через systemd для хоста и Docker для прокси.
-
Служба Nginx хоста:
-
Перезагрузка конфигурации:
-
Проверка валидности конфигурации:
-
-
Стек прокси Docker:
-
Запуск/Перезапуск:
-
Остановка:
-
-
Непрерывные обновления (Unattended Upgrades):
- Система настроена с включенной функцией
unattended-upgradesдля автоматической установки обновлений безопасности.
- Система настроена с включенной функцией
-
Управление пакетами:
-
Обновление кэша APT:
-
Исправление состояний пакетов:
-