Настройка сервера · 6 min read · Sep 08, 2025
ISPConfig Идеальная многосерверная настройка на Ubuntu 24.04 и Debian 12

Этот учебник проведет вас через установку вашей собственной многосерверной настройки ISPConfig 3 с выделенными серверами для панели, веба, DNS, почты и веб-почты. DNS-сервер будет иметь зеркальный сервер для резервирования. Вы можете легко добавить больше серверов определенного типа позже.
Для настройки серверов будет использоваться официальный автоподстановщик ISPConfig. В качестве операционной системы будет использоваться Debian 12. Руководство также было протестировано с Ubuntu 24.04.
Автоподстановщик имеет различные параметры командной строки для тонкой настройки установки.
Вы можете просмотреть все аргументы с помощью:
wget -O - https://get.ispconfig.org | sh -s -- --helpВы можете прочитать больше об автоподстановщике здесь.
1. Предварительная заметка
Это будут хосты, которые мы устанавливаем:
host FQDN IP
panel panel.example.com 10.0.64.12
web01 web01.example.com 10.0.64.13
mx1 mx1.example.com 10.0.64.14
ns1 ns1.example.com 10.0.64.15
ns2 ns2.example.com 10.0.64.16
webmail webmail.example.com 10.0.64.17Мы будем использовать примеры имен хостов, IP-адресов и диапазонов IP. Убедитесь, что вы изменили их соответственно в ваших командах/конфигурации.
Все серверы находятся в одной частной сети, но имеют свои собственные публичные IP. Если ваши серверы не имеют общей локальной сети, используйте их публичные IPv4-адреса.
Перед началом установки сервера настройте A и, при необходимости, AAAA запись, указывающую на публичный IP-адрес вашего сервера. Например, если имя хоста panel.example.com, а публичный IP 11.22.33.44, вы должны настроить A запись для panel.example.com, указывающую на 11.22.33.44. Каждый сервер должен иметь свой собственный публичный IP и имя хоста. **
2. Установка главного сервера
Войдите как root или выполните
su -чтобы стать пользователем root на вашем сервере перед тем, как продолжить. ВАЖНО: Вы должны использовать ‘su -‘, а не просто ‘su’, иначе ваша переменная PATH будет установлена неправильно Debian.
2.1 Настройка имени хоста и хостов
Имя хоста вашего сервера должно быть поддоменом, например, “panel.example.com”. Не используйте имя домена без части поддомена, например, “example.com” в качестве имени хоста, так как это приведет к проблемам позже с вашей настройкой почты. Сначала вы должны проверить имя хоста в /etc/hosts и изменить его при необходимости. Строка должна выглядеть так: “IP-адрес - пробел - полное имя хоста с доменом - пробел - часть поддомена”. Для нашего имени хоста panel.example.com файл должен выглядеть так (некоторые строки могут отличаться, это может различаться в зависимости от хостинг-провайдера):
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
# Эта строка должна быть изменена на каждом узле на правильное имя сервера:
127.0.1.1 panel.example.com panel
# Эти строки одинаковы на каждом узле:
10.0.64.12 panel.example.com panel
10.0.64.13 web01.example.com web01
10.0.64.14 mx1.example.com mx1
10.0.64.15 ns1.example.com ns1
10.0.64.16 ns2.example.com ns2
10.0.64.17 webmail.example.com webmail
# Следующие строки желательны для хостов, поддерживающих IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allroutersКак вы можете видеть, мы добавили имена хостов наших других серверов, чтобы они могли общаться по внутренней сети позже.
Затем отредактируйте файл /etc/hostname:
nano /etc/hostnameОн должен содержать только часть поддомена, в нашем случае:
panelНаконец, перезагрузите сервер, чтобы применить изменения:
systemctl rebootВойдите снова и проверьте, правильно ли теперь имя хоста с помощью этих команд:
hostname
hostname -fВывод должен быть таким:
root@panel:~$ hostname
panel
root@panel:~$ hostname -f
panel.example.comТеперь мы можем запустить автоподстановщик для установки всех необходимых пакетов и ISPConfig:
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=systemЧерез некоторое время вы увидите:
WARNING! Этот скрипт перезагрузит ваш сервер полностью!
Он должен быть запущен на свежез установленном сервере, и вся текущая конфигурация, которую вы сделали, скорее всего, будет потеряна!
Введите 'yes', если вы действительно хотите продолжить:Ответьте “yes” и нажмите Enter. Установщик теперь начнет.
Когда установка завершится, он покажет вам пароль администратора ISPConfig и пароль root MySQL, как показано ниже:
[INFO] Ваш пароль администратора ISPConfig: 5GvfSSSYsdfdYC
[INFO] Ваш пароль root MySQL: kkAkft82d!kafMwqxdtYsУбедитесь, что вы записали эту информацию, вместе с сервером, для которого они предназначены, так как вам это понадобится позже.
2.2 Настройка удаленных пользователей MySQL для наших слейв-серверов
Мы войдем в MySQL, чтобы разрешить другим серверам подключаться к базе данных ISPConfig на этом узле во время установки, добавляя записи пользователя root MySQL в главную базу данных для каждого имени хоста и IP-адреса слейв-сервера.
В терминале выполните
mysql -u root -pВведите свой пароль MySQL, а затем выполните следующие команды:
CREATE USER 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'10.0.64.14' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.14' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'10.0.64.16' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.16' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'web01.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'web01.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'mx1.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mx1.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'ns1.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns1.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'ns2.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns2.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;CREATE USER 'root'@'webmail.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'webmail.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;В приведенных выше SQL-командах замените IP-адреса (10.0.64.12 - 10.0.64.16) на IP-адреса ваших серверов, web01.example.com, mx1.example.com, ns1.example.com, ns2.example.com и webmail.example.com на имена хостов ваших серверов и myrootpassword на желаемый пароль root (хорошей практикой является использование разного пароля для каждого хоста. Запишите их, так как они понадобятся вам позже при установке или обновлении ваших слейв-серверов).
Когда это будет сделано, вы можете выйти из MySQL с помощью:
EXIT;Теперь вы можете войти в ISPConfig на https://panel.example.com:8080 с именем пользователя admin и паролем, который показал вам установщик.
2.3 Настройка брандмауэра
Последнее, что нужно сделать, это настроить наш брандмауэр.
Войдите в интерфейс ISPConfig и перейдите в Система -> Брандмауэр. Затем нажмите “Добавить новую запись брандмауэра”.
Для сервера панели нам нужно открыть следующие порты:
TCP:
22,80,443,8080,8081Никакие порты UDP не нужно открывать через интерфейс.
Мы также собираемся открыть порт 3306, который используется для MySQL, но только из нашей локальной сети по соображениям безопасности. Для этого выполните следующую команду из CLI, после того как изменение из панели ISPConfig будет распространено (когда красная точка исчезнет):
ufw allow from 10.0.64.0/24 to any port 3306 proto tcpВаша панель теперь настроена и готова к использованию.
На следующем этапе мы установим веб-сервер.
Get new posts in your inbox
No spam. Unsubscribe anytime.