Настройка сервера · 9 min read · Sep 22, 2025
ISPConfig Perfect Multiserver setup on Ubuntu 20.04 and Debian 10 - Page 3

4 Установка первого почтового сервера
Войдите как root или выполните
su -чтобы стать пользователем root на вашем сервере перед тем, как продолжить. ВАЖНО: Вы должны использовать ‘su -‘, а не просто ‘su’, иначе ваша переменная PATH будет установлена неправильно в Debian.
4.1 Настройка имени хоста
Имя хоста вашего сервера должно быть поддоменом, например “mx1.example.com”. Не используйте имя домена без части поддомена, например “example.com”, в качестве имени хоста, так как это вызовет проблемы позже с вашей настройкой почты. Сначала вам следует проверить имя хоста в /etc/hosts и изменить его при необходимости. Строка должна выглядеть так: “IP-адрес - пробел - полное имя хоста с доменом - пробел - часть поддомена”. Для нашего имени хоста mx1.example.com файл должен выглядеть так:
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
# Эта строка должна быть изменена на каждом узле на правильное имя сервера:
127.0.1.1 mx1.example.com mx1
# Эти строки одинаковы на каждом узле:
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 mx2.example.com mx2
10.0.64.16 ns1.example.com ns1
10.0.64.17 ns2.example.com ns2
10.0.64.18 webmail.example.com webmail
# Следующие строки желательны для хостов, поддерживающих IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allroutersКак вы можете видеть, мы добавили имена хостов наших других серверов, чтобы они могли общаться по внутренней сети позже.
Затем отредактируйте файл /etc/hostname:
nano /etc/hostnameОн должен содержать только часть поддомена, в нашем случае:
mx1Наконец, перезагрузите сервер, чтобы применить изменения:
systemctl rebootВойдите снова и проверьте, правильно ли теперь имя хоста с помощью этих команд:
hostname
hostname -fВывод должен быть таким:
root@mx1:~$ hostname
mx1
root@mx1:~$ hostname -f
mx1.example.com4.2 Установка ISPConfig
Теперь мы можем запустить автоподстановщик для всех пакетов и ISPConfig:
wget -O - https://get.ispconfig.org | sh -s -- --no-dns --no-roundcube --no-mailman --use-php=system --use-unbound --interactiveЧерез некоторое время вы увидите:
WARNING! Этот скрипт перенастроит ваш полный сервер!
Он должен быть запущен на свежезав установленном сервере, и вся текущая конфигурация, которую вы сделали, скорее всего, будет потеряна!
Введите 'yes', если вы действительно хотите продолжить:Ответьте “yes” и нажмите Enter. Установщик теперь начнет.
Когда установка и конфигурация пакетов будут завершены, будет показан корневой пароль для MySQL на mx1. Запишите его (вместе с именем сервера, чтобы избежать путаницы позже).
Теперь нам придется ответить на несколько вопросов, так как мы используем интерактивный режим. Это необходимо, так как этот сервер будет добавлен в вашу многосерверную настройку.
[INFO] Установка ISPConfig3.
[INFO] Ваш корневой пароль MySQL: kl3994aMsfkkeE
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
|_| |_|\__/ / | | \__/\ (_) | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Начальная конфигурация
Операционная система: Debian 10.0 (Buster) или совместимая
Следующие будут несколько вопросов для первичной конфигурации, поэтому будьте осторожны.
Значения по умолчанию находятся в [скобках] и могут быть приняты с .
Наберите "quit" (без кавычек), чтобы остановить установщик.
Выберите язык (en,de) [en]: <-- Нажмите Enter
Режим установки (standard,expert) [standard]: <-- expert
Полное квалифицированное имя хоста (FQDN) сервера, например server1.domain.tld [mx1.example.com]: <-- Нажмите Enter
Имя хоста MySQL сервера [localhost]: <-- Нажмите Enter
Порт MySQL сервера [3306]: <-- Нажмите Enter
Имя пользователя root MySQL [root]: <-- Нажмите Enter
Пароль root MySQL []: <-- Введите пароль MySQL, который только что дал вам скрипт
База данных MySQL для создания [dbispconfig]: <-- Нажмите Enter
Кодировка MySQL [utf8]: <-- Нажмите Enter
Следующие два вопроса касаются внутреннего пользователя базы данных ISPConfig и пароля.
Рекомендуется принять значения по умолчанию, которые являются 'ispconfig' в качестве имени пользователя и случайным паролем.
Если вы используете другой пароль, используйте только цифры и символы для пароля.
Имя пользователя базы данных MySQL ISPConfig [ispconfig]: <-- Нажмите Enter
Пароль базы данных MySQL ISPConfig [aakl203920459853sak20284204]: <-- Нажмите Enter
Должен ли этот сервер присоединиться к существующей многосерверной настройке ISPConfig (y,n) [n]: <-- y
Имя хоста главного сервера MySQL []: <-- panel.example.com
Порт главного сервера MySQL []: <-- Нажмите Enter
Имя пользователя root главного сервера MySQL [root]: <-- Нажмите Enter
Пароль root главного сервера MySQL []: <-- пароль, который вы дали внешнему пользователю root на главном сервере.
Имя базы данных главного сервера MySQL [dbispconfig]: <-- Нажмите Enter
Добавление записи сервера ISPConfig в базу данных.
Настроить почту (y,n) [y]: <-- Нажмите Enter
Настройка Postgrey
Настройка Postfix
Генерация RSA закрытого ключа
......................................................................++++
....................++++
запись нового закрытого ключа в 'smtpd.key'
-----
Вы собираетесь ввести информацию, которая будет включена
в ваш запрос на сертификат.
То, что вы собираетесь ввести, называется Уникальным именем или DN.
Существует довольно много полей, но вы можете оставить некоторые пустыми
Для некоторых полей будет значение по умолчанию,
Если вы введете '.', поле останется пустым.
-----
Название страны (код из 2 букв) [AU]: <-- Нажмите Enter
Название штата или провинции (полное название) [Some-State]: <-- Нажмите Enter
Название местности (например, город) []: <-- Нажмите Enter
Название организации (например, компания) [Internet Widgits Pty Ltd]: <-- Нажмите Enter
Название организационного подразделения (например, секция) []: <-- Нажмите Enter
Общее имя (например, FQDN сервера или ВАШЕ имя) []: <-- Нажмите Enter
Адрес электронной почты []: <-- Нажмите Enter
[WARN] автоматическое определение Mailman не удалось
Принудительно настроить Mailman (y,n) [n]: <-- Нажмите Enter
Пропуск Mailman
Настройка Dovecot
Создание нового файла DHParams, это займет несколько минут. Не прерывайте скрипт.
Настройка Spamassassin
[WARN] автоматическое определение Amavisd не удалось
Принудительно настроить Amavisd (y,n) [n]: <-- Нажмите Enter
Пропуск Amavisd
Настройка Rspamd
Настройка Getmail
Настройка Jailkit
Настройка Pureftpd
Настроить DNS-сервер (y,n) [y]: <-- n
Опция веб-сервера должна быть включена, когда вы хотите запустить веб-сервер или когда этот узел должен хостить интерфейс ISPConfig.
Настроить веб-сервер (y,n) [y]: <-- Нажмите Enter
Настройка Apache
Настройка vlogger
[WARN] автоматическое определение OpenVZ не удалось
Принудительно настроить OpenVZ (y,n) [n]: <-- Нажмите Enter
Пропуск OpenVZ
Настроить сервер брандмауэра (y,n) [y]: <-- Нажмите Enter
Настройка брандмауэра Ubuntu
[WARN] автоматическое определение Metronome XMPP Server не удалось
Принудительно настроить Metronome XMPP Server (y,n) [n]: <-- Нажмите Enter
Пропуск Metronome XMPP Server
Настройка Fail2ban
Установить веб-интерфейс ISPConfig (y,n) [n]: <-- Нажмите Enter
Хотите ли вы создать SSL сертификаты для вашего сервера? (y,n) [y]: <-- Нажмите Enter
Проверка / создание сертификата для mx1.example.com
Используя путь сертификата /etc/letsencrypt/live/mx1.example.com
Используя apache для проверки сертификата
Создать символическую ссылку на сертификаты ISPConfig для Postfix? (y,n) [y]: <-- Нажмите Enter
Создать символическую ссылку на сертификаты ISPConfig для Pure-FTPd? Создание файла dhparam может занять некоторое время. (y,n) [y]: <-- Нажмите Enter
Генерация параметров DH, 2048 бит длинный безопасный простой, генератор 2
Это займет много времени
......................+...........................................+...............
Настройка Apps vhost
Настройка DBServer
Установка crontab ISPConfig
нет crontab для getmail
Определение IP-адресов
Перезапуск служб ...
Установка завершена.
[INFO] Добавление версий php в ISPConfig.
[INFO] Проверка, что все службы работают.
[INFO] mysql: OK
[INFO] clamav-daemon: OK
[INFO] postfix: OK
[INFO] bind9: OK
[INFO] pureftpd: OK
[INFO] apache2: OK
[INFO] rspamd: OK
[INFO] redis-server: OK
[INFO] dovecot: OK
[INFO] Установка готова.
[INFO] Ваш корневой пароль MySQL: kl3994aMsfkkeE
[INFO] Предупреждение: Пожалуйста, удалите файлы журналов в /tmp/ispconfig-ai/var/log/setup-* как только они вам больше не нужны, так как они содержат ваши пароли! 4.3 Настройка репликации для Dovecot
Мы собираемся использовать dsync для синхронизации электронной почты между mx1 и mx2, для резервирования.
Пользовательские настройки для dovecot должны быть сохранены в /usr/local/ispconfig/server/conf-custom/install/dovecot_custom.conf.master, чтобы вы не потеряли их при обновлении ISPConfig.
nano /usr/local/ispconfig/server/conf-custom/install/dovecot_custom.conf.masterПоместите следующее:
protocol imap {
mail_plugins = $mail_plugins quota imap_quota notify replication
}
protocol pop3 {
mail_plugins = $mail_plugins quota notify replication
}
protocol lda {
mail_plugins = $mail_plugins sieve quota notify replication
}
protocol lmtp {
mail_plugins = $mail_plugins sieve quota notify replication
}
doveadm_password = /(:&p-J:4e%?\@Q-;VSE#3Dmfm[fVK&r-mx1
doveadm_port = 12345
replication_max_conns = 50
ssl_client_ca_dir = /etc/ssl/certs
# Процесс репликатора должен быть запущен при запуске, чтобы он мог начать репликацию пользователей немедленно:
service replicator {
process_min_avail = 1
}
# Процессы почты должны иметь доступ к fifo и сокету replication-notify.
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
mode = 0666
}
unix_listener replication-notify {
user = vmail
mode = 0666
}
}
# Включить команды репликатора doveadm
service replicator {
unix_listener replicator-doveadm {
mode = 0666
}
}
# Создать слушателя для doveadm-server
service doveadm {
user = vmail
inet_listener {
port = 12345
ssl = yes
}
}
service config {
unix_listener config {
user = vmail
}
}
plugin {
mail_replica = tcps:mx2.example.com
}Замените doveadm_password на ваш собственный пароль - сделайте его длинной и случайной строкой для безопасности.
Замените
mail_replica = tcps:mx2.example.comна ваше собственное имя хоста mx2.
Чтобы применить эти изменения, скопируйте файл в папку dovecot и перезапустите dovecot:
cp /usr/local/ispconfig/server/conf-custom/install/dovecot_custom.conf.master /etc/dovecot/conf.d/99-ispconfig-custom-config.conf
systemctl restart dovecot4.4 Настройка синхронизации для Rspamd
Rspamd имеет хороший веб-интерфейс. Мы собираемся настроить наши серверы как соседей, чтобы вы могли просматривать настройки, статистику и другие данные в одной панели.
nano /usr/local/ispconfig/server/conf-custom/install/rspamd_options.inc.masterДобавьте эти строки:
# Конфигурация из шаблона ISPConfig (должна быть обновлена, если есть изменения)
# Адреса, локальные для этого сервера.
local_addrs = [
"127.0.0.0/8",
"::1",
];
# Этот список генерируется ISPConfig, поместите пользовательские адреса/сети в local_networks.inc.
local_networks = "/etc/rspamd/local.d/local_networks.inc";
dns {
nameserver = ["127.0.0.1:53:10"];
}
# Пользовательская конфигурация:
neighbours {
mx1 {
host = "https://mx1.example.com:443";
path = "/rspamd/";
}
mx2 {
host = "https://mx2.example.com:443";
path = "/rspamd/";
}
}
# Последнее обновление: 19-01-2022Замените имена хостов на правильные имена хостов для вашего основного и вторичного почтового сервера. Эта конфигурация должна быть обновлена, если шаблон изменится, поэтому убедитесь, что вы проверяете это при обновлении ISPConfig.
Теперь мы собираемся добавить веб-сайт для этого сервера в ISPConfig. Перейдите в Сайты -> Добавить новый веб-сайт и добавьте веб-сайт “mx1.example.com”. Убедитесь, что вы создаете это на правильном сервере (mx1.example.com). Отключите авто-поддомен и включите SSL + Let’s Encrypt. Затем перейдите к параметрам и вставьте это в раздел директив Apache:
RewriteEngine On
RewriteRule ^/rspamd$ /rspamd/ [R,L]
RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P]
Header set Access-Control-Allow-Origin https://mx2.example.comЗамените mx2.example.com на имя хоста вторичного именного сервера.
Наконец, нам нужно включить некоторые модули Apache и перезапустить наши службы:
a2enmod proxy_balancer proxy_http
systemctl restart rspamd
systemctl restart apache24.5 Защита почтового сервера с помощью действительного SSL сертификата
Для работающей настройки DSYNC и Roundcube вам необходимо иметь действительный SSL сертификат для используемых имен хостов. Этот сертификат не может быть самоподписанным. Если вы собираетесь использовать дополнительные имена хостов для этого сервера, такие как imap.example.com и smtp.example.com, или если установщик не смог создать действительный сертификат при установке, следуйте этому руководству, чтобы настроить действительный сертификат для вашего почтового сервера: https://www.howtoforge.com/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-certificate/
4.6 Настройка брандмауэра
Последнее, что нужно сделать, это настроить наш брандмауэр.
Войдите в интерфейс ISPConfig и перейдите в Система -> Брандмауэр. Затем нажмите “Добавить новую запись брандмауэра”.
Убедитесь, что вы выбрали правильный сервер. Для нашего почтового сервера нам нужно открыть следующие порты:
TCP:
22,25,80,110,143,443,465,587,993,995Никакие порты UDP не должны быть открыты через интерфейс.
Мы также собираемся открыть порт 3306, который используется для MySQL, и порт 12345, который используется для dsync, но только из нашей локальной сети по соображениям безопасности. Для этого выполните следующую команду из CLI, после того как изменение из панели ISPConfig будет распространено (когда красная точка исчезнет):
ufw allow from 10.0.64.0/24 to any port 3306 proto tcp
ufw allow from 10.0.64.0/24 to any port 12345 proto tcpGet new posts in your inbox
No spam. Unsubscribe anytime.