ISPConfig 3 — бесплатная панель управления хостингом с открытым кодом под лицензией BSD. Она управляет веб-сервером (Apache или Nginx), PHP-FPM, базами MariaDB, почтой на Postfix и Dovecot, DNS на BIND, FTP и SSH-доступом клиентов. Главная особенность — управление несколькими серверами из одной панели и три уровня доступа: администратор, реселлер, клиент.
Коротко: на чистом Debian 12/13 или Ubuntu 24.04 ISPConfig ставится официальным автоинсталлятором одной командой wget -O - https://get.ispconfig.org | sh -s -- параметры. За 15–30 минут он сам подключит репозитории, поставит и настроит весь стек и выведет пароль администратора. Панель откроется на https://имя-сервера:8080.
Старый способ — ставить пакеты вручную по многостраничному руководству «The Perfect Server» и потом запускать install.php — для Debian и Ubuntu больше не нужен. Ниже — требования, параметры автоинсталлятора, первый вход, создание сайта, почты и DNS-зоны, обновление и защита панели. Проверено на ISPConfig 3.3.2; новости выпусков и документация — на ispconfig.org.
Что умеет ISPConfig и кому подходит
Когда-то я ставил ISPConfig клиентам на VDS за то, что в ней есть всё необходимое для хостинга без излишеств. Это по-прежнему так:
- сайты на Apache или Nginx, несколько версий PHP-FPM одновременно, Let’s Encrypt, поддомены, алиасы, перенаправления;
- почта: виртуальные домены и ящики, алиасы, пересылки, DKIM, спам-фильтр Rspamd, антивирус ClamAV, веб-почта Roundcube;
- DNS-зоны на BIND с шаблонами и мастером создания;
- базы MariaDB, phpMyAdmin;
- FTP (Pure-FTPd) и SSH-доступ клиентов в chroot через jailkit;
- клиенты, реселлеры, лимиты, шаблоны тарифов;
- несколько серверов: веб, почта и DNS на разных машинах, зеркалирование;
- русский перевод интерфейса.
Если вы ещё выбираете панель, сравните ISPConfig с HestiaCP, CloudPanel и Virtualmin в обзоре бесплатных панелей управления сервером. Коротко: ISPConfig выигрывает там, где нужны несколько серверов и клиенты с реселлерами, и проигрывает Hestia в простоте.
Требования
| Параметр | Что нужно |
|---|---|
| ОС | Чистая минимальная установка Debian 12 (bookworm), Debian 13 (trixie), Ubuntu 22.04 или 24.04 LTS. Ubuntu 26.04 поддерживается с ISPConfig 3.3.2 |
| Архитектура | 64-бит |
| Память | Для полного стека с почтой и ClamAV — от 4 ГБ. Без почты (--no-mail) хватит 1–2 ГБ |
| Диск | От 20 ГБ под систему, плюс место под сайты, почту и бэкапы |
| Сеть | Статический IPv4, PTR-запись (обратная зона) на имя сервера — для почты обязательно |
| Имя хоста | FQDN, например server1.example.com, с A-записью в DNS |
| Доступ | root по SSH |
«Чистая» — значит без предустановленного веб-сервера, MySQL, почтового сервера и других панелей. Автоинсталлятор перенастраивает систему целиком и при запуске прямо предупреждает: вся существующая конфигурация будет потеряна. Многие хостеры кладут в образы лишнее ПО — берите минимальный образ.
AlmaLinux и Rocky Linux автоинсталлятор не поддерживает: он работает только с apt. Сама ISPConfig 3.3 на RHEL-ветке (включая версии 10) работает, но ставится вручную по руководствам проекта. Для новой установки проще взять Debian.
Подготовка сервера
Обновите систему:
apt update && apt -y upgrade
reboot
Задайте полное имя хоста:
hostnamectl set-hostname server1.example.com
В /etc/hosts должна быть строка с реальным IP сервера и полным именем:
127.0.0.1 localhost
203.0.113.30 server1.example.com server1
Проверьте:
hostname
hostname -f
Первая команда должна вывести server1 или полное имя, вторая — строго server1.example.com. Если hostname -f выдаёт короткое имя, автоинсталлятор остановится с ошибкой Host name is no FQDN.
Заранее создайте A-запись server1.example.com на IP сервера и попросите хостера настроить PTR на это же имя. Тогда автоинсталлятор сразу получит для панели сертификат Let’s Encrypt, а почта не будет уходить в спам из-за отсутствия обратной записи.
Установка автоинсталлятором
Автоинсталлятор — PHP-скрипт ispconfig.ai.php, который загружается через короткую обёртку с get.ispconfig.org. Если PHP в системе нет, обёртка сама поставит php-cli. Сначала посмотрите список параметров:
wget -O - https://get.ispconfig.org | sh -s -- --help
Без параметров ставится всё: Apache, MariaDB, Postfix, Dovecot, Rspamd с Redis, ClamAV, BIND, Pure-FTPd, Roundcube, phpMyAdmin, Mailman (кроме Debian 13), jailkit, квоты, fail2ban, ufw и все версии PHP от 5.6 до 8.5 из стороннего репозитория. Последнее почти никому не нужно: лишние версии PHP занимают место, требуют обновлений и увеличивают поверхность атаки.
Основные параметры
| Параметр | Что делает |
|---|---|
--use-nginx | Nginx вместо Apache. Без поддержки .htaccess |
--use-php=8.2,8.3,8.4 | Только указанные версии PHP. --use-php=system — только версия из дистрибутива |
--use-ftp-ports=40110-40210 | Диапазон пассивных портов Pure-FTPd |
--no-mail | Не настраивать почту (Postfix останется только для системных писем) |
--no-dns | Не управлять DNS-зонами; BIND останется как локальный кэширующий резолвер |
--no-mailman, --no-pma, --no-roundcube, --no-ftp | Не ставить списки рассылки, phpMyAdmin, веб-почту, FTP |
--unattended-upgrades | Включить автоматические обновления безопасности; =autoclean,reboot — с очисткой и перезагрузкой |
--ssh-harden, --ssh-permit-root=without-password, --ssh-password-authentication=no | Ужесточить SSH. Последние два — только если вход по ключу уже настроен |
--monit, --monit-alert-email=admin@example.com | Мониторинг служб через Monit с оповещениями |
--interactive | Задавать вопросы установщика ISPConfig вместо ответов по умолчанию |
--i-know-what-i-am-doing | Не спрашивать подтверждение (нужно при запуске без терминала) |
Типовые варианты запуска
Сервер для сайтов с почтой и DNS на Apache, PHP 8.2–8.4:
wget -O - https://get.ispconfig.org | sh -s -- --use-php=8.2,8.3,8.4 --use-ftp-ports=40110-40210 --no-mailman --unattended-upgrades
Только сайты на Nginx, почта у внешнего провайдера:
wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --use-php=8.3,8.4 --no-mail --no-dns --unattended-upgrades
Скрипт выведет предупреждение о том, что сервер будет перенастроен, и попросит ввести yes. Дальше он работает сам. Ход установки видно на экране, полный лог пишется в каталог /root/ispconfig-install-log/.
В конце скрипт выводит пароли примерно так:
[INFO] Your ISPConfig admin password is: xxxxxxxxxxxx
[INFO] Your MySQL root password is: xxxxxxxxxxxx
Сохраните их в менеджер паролей. Пароли остаются и в логе установки, поэтому после сохранения ограничьте доступ к каталогу лога или удалите его.
Отличия Debian и Ubuntu
- Репозиторий PHP. На Debian несколько версий PHP ставятся из репозитория packages.sury.org, на Ubuntu — из PPA ondrej/php. Это сторонние, но широко используемые репозитории того же сопровождающего.
- Системная версия PHP. Debian 12 — 8.2, Ubuntu 24.04 — 8.3, Debian 13 — 8.4. На Debian 13 вариант
--use-php=systemавтоинсталлятор сам заменяет на 8.4 из sury, потому что в штатном репозитории нет модуляphp8.4-imap. - Mailman. На Debian 13 Mailman 2 в репозиториях нет, а Mailman 3 ISPConfig пока не поддерживает — списки рассылки не ставятся.
- fail2ban. На Ubuntu 22.04 и новее fail2ban после установки пакета по умолчанию выключен; автоинсталлятор его включает на любой системе.
Что где лежит
/usr/local/ispconfig/— сама панель:interface/(веб-интерфейс) иserver/(скрипты, которые применяют изменения);/usr/local/ispconfig/server/conf-custom/— сюда кладут свои шаблоны конфигов, чтобы обновления их не затирали;/var/www/clients/clientN/webN/— сайты;/var/www/example.com— символическая ссылка на каталог сайта;/var/vmail/— почтовые ящики;/var/log/ispconfig/— логи панели, в том числеauth.log(входы в панель) иcron.log;/etc/apache2/sites-available/ispconfig.vhostили/etc/nginx/sites-available/ispconfig.vhost— vhost самой панели на порту 8080; на 8081 работает служебный vhost приложений.
Изменения из панели применяет не веб-интерфейс, а скрипт /usr/local/ispconfig/server/server.sh, который запускается из crontab root каждую минуту. Поэтому новый сайт появляется на диске не мгновенно, а в течение минуты.
Первый вход и базовая настройка
Откройте https://server1.example.com:8080, логин admin, пароль из вывода установщика. Сразу сделайте следующее:
- Tools → User Settings — смените пароль администратора и, если нужно, язык интерфейса на русский. Автоинсталлятор ставит панель на английском или немецком, другие языки выбираются здесь.
- Там же, в User Settings, в поле Two Factor Authentication включите второй фактор (в ISPConfig 3.3 — код по email; используйте ящик на внешнем сервисе, а не на этом же сервере).
- System → Server Config — проверьте настройки сервера: имена, пути, параметры почты и веба. Значения по умолчанию разумные, менять их без нужды не стоит.
- System → Firewall — проверьте список открытых портов (подробнее в разделе о безопасности).
- Monitor — убедитесь, что все службы в статусе Online.
Создание сайта
Сначала заведите клиента: Client → Add Client — контакты, логин и пароль для его входа в панель, лимиты. Можно работать и без клиентов, но тогда все сайты будут принадлежать администратору, а это неудобно при росте.
Затем Sites → Website → Add new website:
- Client — владелец сайта;
- Domain —
example.com; поле Auto-Subdomain —www., чтобы сайт отвечал и на www; - PHP —
PHP-FPM, версия — из установленных; - SSL и Let’s Encrypt SSL — отметить. Домен к этому моменту уже должен указывать на сервер, иначе сертификат не выпустится.
Через минуту проверьте, что каталог и vhost созданы:
ls -l /var/www/example.com/web/
apachectl -S | grep example.com # для Apache
nginx -T | grep server_name # для Nginx
curl -I https://example.com
База данных создаётся в два шага: Sites → Database Users (пользователь), затем Sites → Databases (база с этим пользователем). Для загрузки файлов — Sites → FTP-Accounts или Shell-User с chroot-окружением jailkit. Для WordPress и других CMS права на файлы панель выставляет сама: владелец — пользователь сайта webN. Не меняйте права на 777, если CMS «не может записать файл»: проверьте владельца, а не открывайте каталог всем.
Если на одном сервере нужны разные версии PHP для разных сайтов, ISPConfig делает это штатно через выбор версии в настройках сайта. Как такая схема устроена под капотом, разобрано в статье несколько версий PHP и PHP-FPM на одном сервере.
Почта
- Email → Domain → Add new Domain — домен
example.com, клиент. На вкладке DKIM включите DKIM и нажмите генерацию ключа. Панель покажет TXT-запись для DNS. - Email → Email Mailbox → Add new Mailbox — ящик, пароль, квота.
- В DNS домена добавьте: MX на
server1.example.com, SPF (v=spf1 mx -allили с нужными отправителями), DKIM-запись из панели, DMARC.
Веб-почта Roundcube и phpMyAdmin доступны по путям /webmail и /phpmyadmin. Подключение почтовых клиентов: IMAP 993 и SMTP 587 или 465, логин — полный адрес ящика.
Проверка с сервера:
postqueue -p # очередь писем
tail -f /var/log/mail.log # лог доставки
doveadm user info@example.com # Dovecot видит ящик
Почта на своём сервере — самая трудоёмкая часть хостинга: репутация IP, PTR, SPF, DKIM, DMARC, блок-листы. Прежде чем включать её для клиентов, прочитайте статью о собственном почтовом сервере и о том, как не попасть в спам.
DNS
Удобнее всего мастер: DNS → Add DNS Zone. Выберите шаблон (Default), клиента, укажите домен, IP сервера, имена NS-серверов и email администратора зоны. Если отметить DKIM, мастер сразу добавит в зону DKIM-запись из почтового домена.
Проверьте, что BIND отдаёт зону:
dig @127.0.0.1 example.com SOA +short
dig @127.0.0.1 example.com MX +short
named-checkconf
Чтобы зона заработала в интернете, у регистратора нужно указать NS-серверы. Большинство регистраторов требуют минимум два NS на разных IP. Один сервер с ISPConfig этого требования не выполняет — варианты: второй сервер ISPConfig в режиме зеркала DNS, вторичный DNS у хостера или регистратора, либо держать зоны у регистратора или во внешнем DNS-сервисе, а DNS в ISPConfig не использовать (--no-dns).
Обновление ISPConfig
Система обновляется обычным apt upgrade (или автоматически, если указан --unattended-upgrades). Сама панель обновляется отдельно, командой:
ispconfig_update.sh
Скрипт задаёт вопросы. Безопасные ответы для рабочего сервера:
Select update source—stable. Вариантыnightlyиgit-developтолько для тестовых серверов;Shall the script create a ISPConfig backup in /var/backup/ now?—yes;Reconfigure Permissions in master database?—noна одиночном сервере;Reconfigure Services?—yes: конфиги служб будут перегенерированы из шаблонов. Если вы правили конфиги вручную, а не черезconf-custom, ваши правки пропадут — выберитеselectedили сначала перенесите изменения в шаблоны;Create new ISPConfig SSL certificate—no, если текущий сертификат в порядке;Reconfigure Crontab?—yes.
Если обновлений нет, скрипт так и скажет. В многосерверной установке сначала включите режим обслуживания и обновите главный сервер, затем остальные.
Переход Debian 12 → 13 или Ubuntu 22.04 → 24.04 на сервере с ISPConfig возможен, но требует подготовки: сначала обновите ISPConfig до версии с поддержкой новой ОС, после обновления системы запустите ispconfig_update.sh --force с перенастройкой служб. Делайте это только при наличии полного бэкапа или снапшота.
Безопасность
Порты панели
Панель на 8080 и служебный vhost на 8081 по умолчанию открыты всем. Это точка входа с правами на весь сервер, поэтому ограничьте доступ:
- лучший вариант — пускать на 8080/8081 только через VPN или с фиксированных IP на внешнем файрволе хостера;
- без внешнего файрвола — убрать 8080 и 8081 из списка открытых портов и ходить по SSH-туннелю:
ssh -L 8080:127.0.0.1:8080 root@server1.example.com, затемhttps://127.0.0.1:8080(браузер предупредит о несовпадении имени в сертификате).
Файрволом ufw управляет сама панель (System → Firewall): правила, добавленные руками через ufw, панель может перезаписать при изменении настроек. Список по умолчанию выглядит примерно так:
21,22,25,53,80,110,143,443,465,587,993,995,3306,4190,8080,8081,40110:40210
Уберите из него 3306: MariaDB не должна быть доступна из интернета на одиночном сервере. Если FTP не используется, уберите 21 и пассивный диапазон. Если не нужен POP3 — 110 и 995. Проверьте результат:
ufw status verbose
ss -tlnp
fail2ban для панели
Автоинсталлятор настраивает fail2ban для SSH, Dovecot, Postfix SASL и FTP, но не для входа в саму панель. ISPConfig пишет неудачные входы в /var/log/ispconfig/auth.log в виде:
Failed login for user 'admin' from 198.51.100.7 at 2026-10-03 10:15:42
Создайте фильтр /etc/fail2ban/filter.d/ispconfig.conf:
[Definition]
failregex = ^Failed login for user '.*' from <HOST> at .*$
ignoreregex =
И джейл /etc/fail2ban/jail.d/ispconfig.local:
[ispconfig]
enabled = true
port = 8080
filter = ispconfig
logpath = /var/log/ispconfig/auth.log
backend = auto
maxretry = 5
bantime = 1h
Проверьте фильтр на реальном логе и примените:
fail2ban-regex /var/log/ispconfig/auth.log /etc/fail2ban/filter.d/ispconfig.conf
systemctl restart fail2ban
fail2ban-client status ispconfig
Остальное
- Обновляйте панель. В ISPConfig регулярно закрывают уязвимости, например выпуск 3.3.0p3 в 2025 году исправлял XSS. Подпишитесь на блог проекта или проверяйте
ispconfig_update.shраз в месяц. - Не ставьте лишнее. Каждый ненужный компонент — Mailman, FTP, phpMyAdmin, старые версии PHP — это лишний открытый порт или веб-приложение. Отключайте их ключами автоинсталлятора.
- SSH. Вход по ключам, запрет пароля для root. Автоинсталлятор умеет это параметрами
--ssh-*, но включайте их, только если ключ уже работает, иначе потеряете доступ. - Бэкапы. В ISPConfig есть бэкап сайтов и баз по расписанию (вкладка Backup в настройках сайта), но он хранится на том же сервере. Копируйте бэкапы наружу.
- Права клиентов. Выдавайте SSH только с jailkit (chroot), не давайте клиентам полноценный shell.
Типичные проблемы
| Симптом | Причина | Решение |
|---|---|---|
Host name is no FQDN | Имя хоста короткое или нет строки в /etc/hosts | hostnamectl set-hostname server1.example.com, строка в /etc/hosts, проверка hostname -f |
It seems you are not using a TTY | Запуск без терминала (из скрипта, через некоторые веб-консоли) | Запустить из обычной SSH-сессии или добавить --i-know-what-i-am-doing |
| Сайт или ящик создан в панели, но на диске его нет; в шапке висит счётчик изменений | Не отрабатывает server.sh из cron | crontab -l от root, лог /var/log/ispconfig/cron.log, Monitor → Jobqueue |
| Let’s Encrypt не выпускает сертификат сайта | Домен не указывает на сервер, закрыт порт 80, лимиты Let’s Encrypt | dig +short example.com, доступность 80/tcp; лог acme.sh в /var/log/ispconfig/ |
| Панель на 8080 не открывается | Порт убран из файрвола или закрыт у хостера | ss -tlnp | grep 8080, ufw status; зайти по SSH-туннелю |
| Письма уходят в спам | Нет PTR, SPF, DKIM, DMARC или IP в блок-листе | Добавить записи, PTR — через хостера, проверить IP в блок-листах |
| Сервер начинает свопиться после установки | ClamAV и Rspamd на сервере с 2 ГБ памяти | Добавить RAM или переустановить без почты (--no-mail), если почта не нужна |
После ispconfig_update.sh пропали ручные правки в конфигах | Ответ yes на Reconfigure Services | Переносить правки в /usr/local/ispconfig/server/conf-custom/, при обновлении восстанавливать из /var/backup/ |
Если нужна помощь с установкой ISPConfig или переносом сайтов на новый сервер, можно заказать настройку и сопровождение сервера.
Частые вопросы
Можно ли поставить ISPConfig на сервер, где уже работают сайты?
Нет. Автоинсталлятор рассчитан только на чистую систему и перезапишет конфигурацию Apache, Nginx, MariaDB, Postfix и других служб. Правильный путь — новый сервер с ISPConfig и перенос сайтов, баз и почты. Для переноса с другой панели есть платный инструмент Migration Toolkit от разработчиков ISPConfig.
Apache или Nginx?
Если на сервере будут WordPress, Joomla и другие CMS, которые рассчитывают на .htaccess, выбирайте Apache (по умолчанию). Nginx экономнее по памяти, но правила перезаписи придётся вписывать в настройки сайта вручную. Сменить веб-сервер после установки нельзя без переустановки.
Как поставить ISPConfig на AlmaLinux или Rocky Linux?
Автоинсталлятор работает только на Debian и Ubuntu. ISPConfig 3.3 поддерживает RHEL-ветку, включая AlmaLinux и Rocky 10, но установка ручная: подготовить стек по руководству проекта, затем скачать архив ISPConfig и запустить php install.php. Если нет жёсткой привязки к RHEL, проще и надёжнее взять Debian 12 или 13.
Как сбросить пароль администратора панели?
Через MariaDB: подключитесь к базе dbispconfig и обновите поле passwort в таблице sys_user для пользователя admin, например UPDATE sys_user SET passwort = MD5('НовыйПароль') WHERE username = 'admin';. При первом входе панель сама перехеширует пароль в современный формат, после этого смените его из интерфейса на постоянный.
Нужна ли отдельная лицензия для коммерческого хостинга?
Нет. ISPConfig распространяется под лицензией BSD, её можно бесплатно использовать в том числе для продажи хостинга. Платные у разработчиков только дополнения: Migration Toolkit, модуль биллинга и коммерческая поддержка.
Как посмотреть установленную версию ISPConfig?
Версия видна в нижней части интерфейса панели. Из консоли — grep ISPC_APP_VERSION /usr/local/ispconfig/server/lib/config.inc.php. Если команда ispconfig_update.sh сообщает, что обновлений нет, у вас последняя стабильная версия.