Мой блог
Автоматическая установка ISPConfig 3 на Debian и Ubuntu

Данный материал посвящен развертыванию единого сервера под управлением панели управления ISPConfig 3 с помощью официального автоматического установщика. Этот инструмент концептуально повторяет классические руководства Perfect Server, но отличается от них большей модульностью и простотой использования. Если вашей целью является создание многосерверной архитектуры с выделенными узлами под каждую отдельную службу, стоит обратиться к специализированному руководству по настройке мультисерверных систем. Рассматриваемая процедура полностью совместима с дистрибутивами Debian 12 и 13, а также с Ubuntu 22.04 и Ubuntu 24.04. На текущий момент поддерживаются аппаратные архитектуры процессоров x86_64, которые также известны как AMD64, и ARM64. В качестве примера в инструкции задействован хост-имя server1.example.com, которое потребуется изменить на ваши собственные данные при практической реализации. Главное условие для корректного запуска — использование чистой и незанятой базовой операционной системы без предварительно настроенных сторонних служб.
Предварительные требования и системные окружения
Прежде чем приступать к развертыванию, необходимо убедиться, что ваша инфраструктура соответствует базовым техническим критериям. Операционная система должна представлять собой свежую инсталляцию Debian версий 12 или 13, либо Ubuntu версий 22.04 или 24.04. Поддерживаются 64-битные процессорные архитектуры семейств Intel/AMD (x86_64) и ARM (ARM64). Обязательным условием является наличие стабильного подключения к интернету, так как в процессе работы скрипта через пакетный менеджер apt будут скачиваться и инсталлироваться необходимые компоненты и зависимости.
Система должна иметь прямой доступ из глобальной сети, поэтому не следует блокировать входящие и исходящие соединения с помощью брандмауэра. Особое внимание стоит уделить 80-му порту, который задействован для выпуска сертификатов Let’s Encrypt, и порту 8080 для доступа к интерфейсу ISPConfig, не говоря уже о портах для прочих используемых служб. Кроме того, сервер должен корректно разрешать доменные имена через DNS.
1. Авторизация на сервере с правами суперпользователя
Для выполнения дальнейших шагов необходимо зайти в систему под учетной записью root. На дистрибутивах Debian для этого используется команда su --login. Важно: следует применять именно варианты su --login или su -, но не простую команду su, иначе переменная окружения PATH в Debian будет сформирована некорректно. В окружении Ubuntu для получения аналогичных прав применяется команда sudo -s.
2. Настройка сетевого имени хоста и файла hosts
Сетевое имя вашего сервера должно быть оформлено в виде поддомена, например server1.example.com. Использование доменного имени первого уровня без поддомена вроде example.com в качестве hostname крайне не рекомендуется, поскольку в дальнейшем это неизбежно приведет к сбоям в работе служб.
Сначала проверьте конфигурацию в файле /etc/hosts и при необходимости отредактируйте ее. Строка с IP-адресом должна содержать полный хост с доменом, разделенный пробелами. Для нашего примера конфигурация будет выглядеть следующим образом:
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 server1.example.com server1
::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Затем перейдите к редактированию файла /etc/hostname с помощью команды nano /etc/hostname. В нем должно содержаться исключительно сокращенное имя поддомена, в нашем случае — server1. После этого перезагрузите сервер системной командой systemctl reboot, чтобы применить внесенные изменения.
После повторного входа в систему проверьте правильность применения имени с помощью утилит hostname и hostname -f. Корректный вывод должен выглядеть так: для первой команды — server1, для второй — server1.example.com. Дополнительно у вашего DNS-провайдера необходимо прописать соответствующую ресурсную запись, указывающую на публичный IP-адрес вашего сервера: обычно это A-запись и/или AAAA-запись для выбранного поддомена.
3. Обновление системных пакетов
Перед запуском установщика необходимо привести программное обеспечение операционной системы в актуальное состояние. Выполните стандартную команду обновления пакетов: apt update && apt upgrade.
4. Запуск автоматического установщика
Теперь можно переходить непосредственно к развертыванию с помощью скрипта автоматической установки. Базовый программный стек по умолчанию включает в себя следующие компоненты (а также все их программные зависимости): Apache2, интерпретатор PHP в версиях с 5.6 по 8.3 включительно, СУБД MariaDB, почтовый сервер Postfix, агент доставки почты Dovecot, фильтр спама Rspamd, DNS-сервер BIND, утилиту изолирования Jailkit, веб-интерфейс почты Roundcube, панель управления базами данных PHPMyAdmin, менеджер рассылок Mailman, а также статистические анализаторы Webalizer, AWStats и GoAccess.
Вы можете гибко управлять составом компонентов, исключая ненужные функции или добавляя дополнительные службы путем передачи соответствующих аргументов командной строки установщику.
Установка ISPConfig с веб-сервером Apache
Если вам требуется стандартная конфигурация на базе веб-сервера Apache, с заданным диапазоном портов для пассивного режима FTP и активированными автоматическими обновлениями безопасности, запустите скрипт следующей командой:
wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210 --unattended-upgrades
Установка ISPConfig с веб-сервером Nginx
Аналогично, если в качестве веб-сервера вы предпочитаете использовать Nginx, команда примет следующий вид:
wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --use-ftp-ports=40110-40210 --unattended-upgrades
Процесс работы автоустановщика
Спустя некоторое время после запуска скрипт выведет предупреждение о том, что данная процедура полностью переконфигурирует сервер, должна выполняться на чистой системе, а все текущие пользовательские настройки будут утеряны. Система запросит подтверждение: Type ‘yes’ if you really want to continue:. Введите yes и нажмите клавишу ввода.
По завершении работы установщик выведет на экран сгенерированные учетные данные: пароль администратора ISPConfig и пароль пользователя root для базы данных MySQL. Обязательно запишите эту информацию, так как она потребуется для дальнейшего администрирования.
5. Настройка встроенного брандмауэра
Заключительным этапом первичной настройки является конфигурация файрвола. Авторизуйтесь в графическом интерфейсе ISPConfig, перейдите в раздел System -> Firewall и нажмите кнопку создания новой записи брандмауэра. Для стандартной конфигурации список открытых портов выглядит следующим образом:
TCP: 20, 21, 22, 25, 80, 443, 40110:40210, 110, 143, 465, 587, 993, 995, 53, 8080, 8081
UDP: 53
Если рассматривать требования по службам детально, то для веб-сервера требуются порты 20, 21, 22, 80, 443 и диапазон 40110:40210 (только TCP), для почтовой службы — 25, 110, 143, 465, 587, 993 и 995 (только TCP), для службы DNS — порт 53 (TCP и UDP), а для панели управления — порты 8080 и 8081 (только TCP). После этого сервер считается полностью готовым к работе, и вы можете войти в панель по адресу https://server1.example.com:8080.
6. Расширенные параметры командной строки
Автоматический установщик располагает большим набором опций для точной настройки окружения под конкретные задачи. Полный список доступных аргументов можно запросить, выполнив команду: wget -O - https://get.ispconfig.org | sh -s -- --help.
Скрипт поддерживает следующие флаги и параметры:
--help— выводит справочную страницу.--debug— активирует подробное логирование с записью каждого выполненного шага и кода возврата.--channel=<stable|dev>— позволяет выбрать канал обновлений: стабильный релиз или последнюю версию для разработчиков из репозитория git.--lang=en|de— задает язык установки (на текущий момент поддерживаются английский и немецкий).--interactive— отключает неинтерактивный режим, необходимый для экспертной настройки, например, при подключении подчиненного сервера к существующей мультисерверной системе.--use-nginx— заменяет Apache на веб-сервер Nginx.--use-amavis— использует Amavis вместо Rspamd для фильтрации электронной почты.--use-unbound— заменяет Bind9 на Unbound для локального разрешения имен (допускается только при одновременном указании флага –no-dns).--use-php=...— позволяет указать конкретные версии PHP через запятую вместо установки полного набора (поддерживаются версии с 5.6 по 8.3). Опция--use-php=systemотключает сторонний репозиторий и устанавливает версию по умолчанию из репозиториев дистрибутива (ее нельзя использовать на Debian 13 из-за отсутствия пакета php imap). При указании флага без параметров устанавливаются все доступные версии.--use-ftp-ports=...— задает диапазон портов для пассивного режима сервера pure-ftpd через дефис, например--use-ftp-ports=40110-40210.--use-certbot— задействует Certbot вместо acme.sh для генерации сертификатов Let’s Encrypt (не рекомендуется, если только вы не мигрируете со старого сервера).--no-web— отключает управление настройками веб-сервера, не устанавливает веб-сервер и Pure-FTPd, а также исключает панель ISPConfig и приложения Roundcube с PHPMyAdmin.--no-mail— отключает почтовый функционал в панели, устанавливает Postfix исключительно для системной почты без Dovecot и Mailman.--no-dns— отключает управление зонами DNS в панели (Bind устанавливается только для локального кэширования и резолвинга).--no-local-dns— полностью отключает установку локального кэширующего DNS-сервера Bind.--no-firewall— отключает установку утилит UFW и управление брандмауэром со стороны ISPConfig.--no-roundcubeи--roundcube— управляют инсталляцией веб-почты Roundcube.--no-pma— предотвращает установку PHPMyAdmin.--no-mailman— отключает менеджер рассылок Mailman.--no-quota— деактивирует квотирование файловой системы.--no-ntp— отключает синхронизацию времени NTP.--no-jailkit— отключает установку Jailkit.--no-ftp— отключает FTP-сервер Pure-FTPd.--monitи--monit-alert-email— устанавливают систему мониторинга Monit для ключевых служб и настраивают отправку оповещений на указанный адрес электронной почты.- Опции
--ssh-port,--ssh-permit-root,--ssh-password-authenticationи--ssh-hardenпозволяют гибко настроить безопасность службы SSH. --unattended-upgrades— автоматизирует обновление системы с возможностью настройки автоматической очистки и перезагрузок.--i-know-what-i-am-doing— отключает запросы подтверждения перед переконфигурацией сервера.
Например, для развертывания конфигурации с веб-сервером Nginx без почтовых и DNS-служб используется команда: wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --no-dns --no-mail --use-ftp-ports=40110-40210 --unattended-upgrades.
7. Завершение работ и полезные материалы
Процесс установки успешно завершен. Поддержать проект ISPConfig можно путем приобретения официального руководства на сайте разработчиков. Для дальнейшего углубленного администрирования рекомендуется ознакомиться со специализированными материалами сообщества: инструкциями по настройке почтовых служб (rDNS, SPF, DKIM), тонкой настройке интерфейса Roundcube, автоматической конфигурации почтовых клиентов (autoconfig), а также методам повышения безопасности интерфейсов PHPMyAdmin и Rspamd. Исходный код и система отслеживания ошибок автоустановщика доступны в официальном репозитории проекта, а любые возникающие вопросы можно оперативно решить на профильном форуме сообщества.
8. Отладка возможных ошибок в процессе установки
Если в ходе инсталляции возникли непредвиденные сбои, процесс можно исследовать подробнее, добавив к команде запуска флаг --debug. Это действие запишет детальный лог-файл по пути /tmp/ispconfig-ai/var/log/ispconfig.log. Кроме того, выявление причин ошибки упрощает использование интерактивного режима с помощью флага --interactive.
9. Готовая виртуальная машина
Для подписчиков ресурса Howtoforge предусмотрена возможность загрузки готовой к работе виртуальной машины в форматах OVA и OVF, полностью совместимой с гипервизорами VMware и Virtualbox. Образ базируется на операционной системе Debian 12 и использует веб-сервер Apache. Учетные данные для доступа после импорта: пароль учетной записи root — howtoforge, пароль администратора панели ISPConfig — howtoforge, дополнительный системный пользователь administrator имеет пароль howtoforge, а пароль суперпользователя MySQL равен 7s8EtDL1QhorSaeHhnRh. Все указанные пароли настоятельно рекомендуется изменить сразу после первого входа в систему. IP-адрес виртуальной машины по умолчанию настроен как 192.168.0.100.
Источник: howtoforge.com

