Обзор развертывания 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) с минимальным набором компонентов. Процесс включает следующие этапы:
- Обновление репозиториев пакетов и установка базовых утилит (
wget,curl,nginx,bind9,php-cli). - Загрузка архива установщика ISPConfig в каталог
/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: Подтверждение действий.- Установка образа базы данных MariaDB из корпоративного реестра (
docker-srv.hostkey.com/docker-anonymous/bitnami/mariadb:latest). - Настройка хоста и разрешения доменного имени в файле
/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, доступен только локально или через прокси).
Запуск, остановка и обновление¶
Управление сервисами осуществляется следующими командами:
- Запуск прокси-сервера:
- Остановка прокси-сервера:
- Перезагрузка веб-сервера Nginx (хост):
- Проверка конфигурации Nginx:
- Обновление базы данных (через контейнер):
Для обновления самой панели ISPConfig необходимо повторить процесс установки с использованием флага обновления в скрипте ispconfig.ai.php, однако в текущей конфигурации это не автоматизировано.