Настройка сервера · 10 min read · Sep 22, 2025

ISPConfig Perfect Multiserver setup on Ubuntu 20.04 and Debian 10 - Page 4

5 Установка второго почтового сервера

Войдите как root или выполните

su -

чтобы стать пользователем root на вашем сервере перед тем, как продолжить. ВАЖНО: Вы должны использовать ‘su -‘, а не просто ‘su’, иначе ваша переменная PATH будет установлена неправильно в Debian.

5.1 Настройка имени хоста

Имя хоста вашего сервера должно быть поддоменом, например “mx2.example.com”. Не используйте имя домена без части поддомена, например “example.com”, в качестве имени хоста, так как это приведет к проблемам позже с вашей почтовой настройкой. Сначала вы должны проверить имя хоста в /etc/hosts и изменить его при необходимости. Строка должна выглядеть так: “IP-адрес - пробел - полное имя хоста с доменом - пробел - часть поддомена”. Для нашего имени хоста mx2.example.com файл должен выглядеть так:

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost  
# Эта строка должна быть изменена на каждом узле на правильное имя сервера:  
127.0.1.1 mx2.example.com mx2  
# Эти строки одинаковы на каждом узле:
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

Он должен содержать только часть поддомена, в нашем случае:

mx2

Наконец, перезагрузите сервер, чтобы применить изменения:

systemctl reboot

Войдите снова и проверьте, правильно ли теперь имя хоста с помощью этих команд:

hostname  
hostname -f

Вывод должен быть таким:

root@mx2:~$ hostname  
mx2  
root@mx2:~$ hostname -f  
mx2.example.com

5.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 на mx2. Запишите это (вместе с именем сервера, чтобы избежать путаницы позже).

Теперь нам придется ответить на несколько вопросов, так как мы используем интерактивный режим. Это необходимо, так как этот сервер будет добавлен в вашу многосерверную настройку.

[INFO] Установка ISPConfig3.  
[INFO] Ваш корневой пароль MySQL: kl3994aMsfkkeE  
  
  
--------------------------------------------------------------------------------  
 _____ ___________   _____             __ _          ____  
|_   _/  ___| ___ \ /  __ \          / _(_)       /__  \  
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /  
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |  
  |_| |_|\__/ / |     | \__/\ (_) | | | | | | (_| | ___\ \  
  \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/  
                                                  __/ |  
                                                  |___/   
--------------------------------------------------------------------------------  
  
>> Начальная конфигурация   
  
Операционная система: Debian 10.0 (Buster) или совместимая  
  
    Далее будет несколько вопросов для первичной конфигурации, поэтому будьте внимательны.  
    Значения по умолчанию находятся в [скобках] и могут быть приняты с помощью .  
    Введите "quit" (без кавычек), чтобы остановить установщик.  
  
  
Выберите язык (en,de) [en]: <-- Нажмите Enter  
  
Режим установки (standard,expert) [standard]: <-- expert  
  
Полное квалифицированное имя хоста (FQDN) сервера, например server1.domain.tld  [mx2.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  
  
Проверка / создание сертификата для mx2.example.com  
Используя путь сертификата /etc/letsencrypt/live/mx2.example.com  
Используя apache для проверки сертификата  
Создать символическую ссылку на SSL сертификаты ISPConfig для Postfix? (y,n) [y]: <-- Нажмите Enter  
  
Создать символическую ссылку на SSL сертификаты ISPConfig для Pure-FTPd? Создание файла dhparam может занять некоторое время. (y,n) [y]: <-- Нажмите Enter  
  
Генерация параметров DH, 2048 битный безопасный простой, генератор 2  
Это займет много времени  
......................+...........................................+...............  
Настройка 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-* как только они вам больше не нужны, так как они содержат ваши пароли!

5.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-mx2  
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:mx1.example.com  
}

Замените doveadm_password на ваш собственный пароль - сделайте его длинной и случайной строкой для безопасности. Он должен быть одинаковым на обоих серверах.

Замените

mail_replica = tcps:mx1.example.com

на ваше собственное имя хоста mx1.

Чтобы применить эти изменения, скопируйте файл в папку 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 dovecot

5.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. Перейдите в Сайты -> Добавить новый веб-сайт и добавьте веб-сайт “mx2.example.com”. Убедитесь, что вы создаете это на правильном сервере (mx2.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://mx1.example.com

Замените mx1.example.com на имя хоста вторичного сервера имен.

Наконец, нам нужно включить некоторые модули Apache и перезапустить наши службы:

a2enmod proxy_balancer proxy_http  
systemctl restart rspamd  
systemctl restart apache2

Теперь мы собираемся установить пароль для интерфейса Rspamd на MX1, который мы будем использовать как веб-интерфейс для нашего кластера Rspamd.

Войдите в ISPConfig как администратор и перейдите в Система -> Конфигурация сервера -> mx1.example.com -> Почта -> Пароль Rspamd.

Введите новый пароль и нажмите сохранить. Затем перейдите в Система -> Конфигурация сервера -> mx2.example.com -> Почта -> Пароль Rspamd и введите тот же пароль там. Подождите, пока изменения будут распространены. Когда это будет сделано, вы сможете войти в Rspamd с вашим паролем по адресу https://mx1.example.com/rspamd/ в вашем браузере.

5.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/

5.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 tcp

5.7 Зеркалирование MX2 из MX1 в ISPConfig

Чтобы завершить настройку, вам нужно включить зеркалирование между mx1 и mx2. Для этого войдите в ISPConfig, перейдите в Система -> mx2.example.com -> “Является зеркалом сервера”. Выберите mx1.example.com и нажмите сохранить.

Наш вторичный почтовый сервер теперь установлен. На следующем шаге мы установим основной DNS сервер.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.