Данное руководство поможет вам настроить несколько почтовых доменов (виртуальный хостинг) на сервере Debian с использованием PostfixAdmin — веб-интерфейса с открытым исходным кодом для управления и настройки почтового сервера на базе Postfix, поддерживающего работу с множеством доменов и пользователей.
Содержание статьи
- 1 Начальные условия
- 2 Что необходимо выполнить?
- 3 Включение дополнительных доменов в интерфейсе PostfixAdmin.
- 4 Настройка записей MX, A и SPF для нового домена электронной почты.
- 5 Конфигурация подписи DKIM для недавно добавленного домена
- 6 Формирование записи DMARC для нового домена.
- 7 Конфигурация RoundCube, Postfix и Dovecot для работы с несколькими доменами.
- 8 Применение почтового приложения на вашем компьютере или смартфоне.
- 9 Проверка SPF и DKIM записей.
- 10 Что предпринять, если ваши электронные сообщения продолжают попадать в спам?
- 11 rDNS для нескольких доменов электронной почты?
- 12 Не получается получать сообщения от Gmail, Hotmail, Yahoo Mail и других почтовых сервисов.
- 13 Пара TLS-сертификатов
- 14 Задача, выполняемая по расписанию с помощью Cron.
- 15 Заключение
Начальные условия
Для прохождения данного руководства предполагается, что
- Вы уже завершили настройку PostfixAdmin с одним почтовым доменом.
- Вы выполнили шаг 4 для настройки SPF и OpenDKIM.
- Вы успешно настроили Roundcube Webmail для вашего первого почтового домена.
Что необходимо выполнить?
Если планируете использовать несколько почтовых доменов, вам потребуется
- Добавить почтовый домен и создать нового пользователя через веб-интерфейс PostfixAdmin.
- Настроить записи MX, A и SPF для нового домена электронной почты.
- Настроить DKIM-подпись для нового домена.
- Создайте запись DMARC для нового домена.
- Конфигурация RoundCube Webmail, Postfix и Dovecot для работы с несколькими доменами.
Обратите внимание: обратная проверка DNS предназначена для подтверждения того, совпадает ли IP-адрес отправителя с именем хоста HELO. При добавлении нового почтового домена добавление еще одной записи PTR не требуется.
Включение дополнительных доменов в интерфейсе PostfixAdmin.
Войдите в панель PostfixAdmin с учетной записью postmaster. ( https://postfixadmin. your-domain.com/ ) Затем перейдите в Список доменов ->Добавьте новый домен для создания нового адреса.

Имейте в виду, что для нового домена необходимо наличие DNS-записи типа A, в противном случае PostfixAdmin сгенерирует сообщение об ошибке. Статус распространения DNS можно проверить на сайте dnsmap. io.
Недопустимый домен domain2.com и/или не обнаружен в DNS
Затем добавьте пользователя на новый домен.

Настройка записей MX, A и SPF для нового домена электронной почты.
Добавьте MX-запись для нового домена в вашем DNS-менеджере, как указано ниже.
Тип записи Имя Значение MX @ mail.domain2.com
Запись A ссылается на IP-адрес вашего сервера электронной почты.
Тип записи Имя Значение A mail Адрес IP почтового сервера
Если на вашем сервере используется IPv6-адрес, обязательно добавьте запись типа AAAA.
После этого необходимо настроить запись SPF, чтобы разрешить серверу MX отправлять электронные письма от имени нового почтового домена.
Тип записи Имя Значение TXT @ v=spf1 mx ~all
Конфигурация подписи DKIM для недавно добавленного домена
В части 4 данного учебного курса мы уже установили и настроили OpenDKIM для одного домена. Теперь необходимо настроить OpenDKIM для подписи всех исходящих писем нового почтового домена.
Внесите изменения в файл таблицы подписей OpenDKIM.
sudo nano /etc/opendkim/signing. table
Добавьте второй домен, как указано ниже.
*@domain1.com default._domainkey.domain1.com *@domain2.com default._domainkey.domain2.com
Измените файл с таблицей ключей.
sudo nano /etc/opendkim/key. table
Добавьте второй домен, как указано ниже.
default._domainkey.domain1.com domain1.com:default:/etc/opendkim/keys/domain1.com/default. private default._domainkey.domain2.com domain2.com:default:/etc/opendkim/keys/domain2.com/default. private
Измените документ с доверенными хостами.
sudo nano /etc/opendkim/trusted. hosts
Добавьте второй домен, как указано ниже.
127.0.0.1 localhost .domain1.com .domain2.com
Теперь необходимо создать пару закрытый/открытый ключ для второго домена. Для этого создайте отдельную папку, предназначенную для второго домена.
sudo mkdir /etc/opendkim/keys/domain2.com
Создайте ключи с помощью утилиты opendkim-genkey.
sudo opendkim-genkey - b 2048 - d domain2.com-D /etc/opendkim/ключи/domain2.com - s default - v
Команда, указанная выше, создаст ключи размером 2048 бит. Параметр — d задает домен, а параметр — D указывает каталог для хранения ключей. Мы используем default в качестве селектора (-s). После завершения команды закрытый ключ будет сохранен в файле default. private, а открытый ключ будет записан в файл default. txt.
Установите opendkim в качестве владельца приватного ключа.
sudo chown opendkim:opendkim /etc/opendkim/keys/domain2.com/default. private
Выведите публичный ключ.
sudo cat /etc/opendkim/keys/domain2.com/default. txt
Строка, находящаяся после параметра p, представляет собой открытый ключ.

В вашем менеджере DNS добавьте TXT-запись для второго домена. В поле имени укажите default._domainkey. Скопируйте всё, что находится в скобках, и вставьте в поле значений. Убедитесь, что все двойные кавычки удалены. (Рекомендуется сначала вставить текст в текстовый редактор, убрать все двойные кавычки, а затем скопировать в менеджер DNS. Ваш DNS-менеджер может также потребовать удаления других недопустимых символов, таких как возврат каретки.)
После внесения изменений проверьте файл TXT, используя эту команду.
dig TXT default._domainkey.domain2.com
Теперь вы можете использовать следующую команду, чтобы убедиться в правильности вашей DNS-записи DKIM.
sudo opendkim-testkey - d domain2.com - s default - vvv
Если всё хорошо, вы это заметите.
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key 'default._domainkey. domain2.com' opendkim-testkey: key secure opendkim-testkey: key OK
Если вы обнаружили сообщение «Ключ не защищен», не стоит волноваться. Это связано с тем, что для вашего доменного имени не активирован DNSSEC. DNSSEC представляет собой стандарт безопасности для надежного выполнения DNS-запросов. Большинство доменных имен не используют данный стандарт. Вы можете продолжать следовать этому руководству.
Перезапустите OpenDKIM, чтобы он начал добавлять подписи к электронным письмам для второго домена.
sudo systemctl restart opendkim
Формирование записи DMARC для нового домена.
Для формирования DMARC-записи зайдите в ваш DNS-менеджер и добавьте TXT-запись. Введите _dmarc в поле имени, а в поле значения укажите следующую информацию. Учтите, что необходимо создать электронный адрес [email protected].

Представленная выше запись DMARC служит надежной основой. Для получения полного объяснения DMARC, пожалуйста, перейдите к следующей статье.
- Настройка DMARC-записи для обеспечения безопасности вашего домена от фальсификации электронной почты.
Конфигурация RoundCube, Postfix и Dovecot для работы с несколькими доменами.
Скорее всего, вы настроили веб-почту Roundcube для вашего первого почтового домена.
Пользователям первого домена стоит обращаться к веб-почте RoundCube через mail.domain1.com, а тем, кто использует второй домен, — через mail.domain2.com. В этом руководстве я объясню, как настроить это с помощью Apache и Nginx.
Apache
Если Roundcube работает на веб-сервере Apache, настройте виртуальный хост для второго домена.
sudo nano /etc/apache2/sites-available/mail.domain2.com.conf
Поместите указанный текст в документ.
Сохраните файл и закройте его. После этого активируйте данный виртуальный хост, используя:
sudo a2ensite mail.domain2.com.conf
Перезапустите Apache, чтобы обновления начали действовать.
sudo systemctl reload apache2
Nginx
Если Roundcube работает на веб-сервере Nginx, необходимо настроить виртуальный хост для второго домена.
sudo nano /etc/nginx/conf.d/mail.domain2.com.conf
Поместите указанный текст в документ.
server < listen 80; server_name mail.domain2.comroot /var/www/roundcube/; index index.php index. html index. htm; error_log /var/log/nginx/;mail.domain2.comОшибка; журнал доступа /var/log/nginx/mail.domain2.comдоступ; расположение /< try_files $uri $uri/ /index.php; >location ~ \.php$ < try_files $uri =404; fastcgi_pass unix:/run/php/ php8.0-fpm .sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; > location ~ /.well-known/acme-challenge < allow all; >location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ < deny all; >location ~ ^/(bin|SQL)/ < deny all; >Долгий период кэширования в браузере может ускорить повторные загрузки страницы.~
< access_log off; log_not_found off; expires 360d; >>
Сохраните файл и закройте его. После этого выполните проверку конфигураций Nginx.
sudo nginx - t
После успешного завершения тестирования перезапустите Nginx, чтобы новые настройки начали действовать.
sudo systemctl reload nginx
Оформление сертификата TLS
Теперь применяйте Certbot для получения TLS-сертификата для всех ваших почтовых доменов. Это позволит вам получить один сертификат с несколькими доменными именами, благодаря чему почтовые клиенты не будут показывать предупреждения о безопасности.
Учтите, что в команде выше мы указали название сертификата, применяя первый почтовый домен, который будет использоваться в пути к файлу. Это сделано для того, чтобы вам не пришлось вносить изменения в пути к файлам в конфигурации Postfix или Dovecot.
Когда программа предложит вам обновить текущий сертификат для добавления нового домена, введите U и нажмите Enter.

Теперь должно появиться сообщение, подтверждающее успешное получение мультидоменного сертификата.

Введите следующую команду, чтобы дать доступ к чтению TLS-сертификатов Let’s Encrypt.
sudo setfacl - R - m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
Перезапустите Apache или Nginx для активации нового сертификата.
sudo systemctl reload apache2 sudo systemctl reload nginx
Теперь у вас должна быть возможность использовать различные домены для доступа к веб-интерфейсу RoundCube. Также потребуется перезагрузить SMTP-сервер Postfix и IMAP-сервер Dovecot, чтобы они начали использовать новый сертификат. Эти действия завершают настройку Postfix и Dovecot для работы с несколькими доменами.
sudo systemctl reload postfix dovecot
Применение почтового приложения на вашем компьютере или смартфоне.
Откройте ваш почтовый клиент на компьютере, например, Mozilla Thunderbird, и настройте учетную запись для второго домена.
- В настройках сервера для входящей почты выберите протокол IMAP, укажите mail.domain2.com как имя сервера, используйте порт 143 и STARTTLS. В качестве метода аутентификации выберите обычный пароль.
- В разделе настроек исходящей почты выберите протокол SMTP, укажите mail.domain2.com как имя сервера, установите порт 587 и используйте шифрование STARTTLS. В качестве метода аутентификации выберите обычный пароль.

Совет: Для IMAP можно применять порт 993 с SSL/TLS шифрованием, а для SMTP — порт 465 с тем же типом шифрования. Использование порта 25 для отправки исходящей почты через SMTP не рекомендуется.
SMTP-сервер Postfix и IMAP-сервер Dovecot при взаимодействии с внешними системами продолжают использовать имя хоста первого почтового домена (mail.domain1.com), однако благодаря применению сертификата, охватывающего несколько доменов, почтовые клиенты больше не показывают предупреждения о сертификате.
Проверка SPF и DKIM записей.
Теперь у вас есть возможность отправить тестовое письмо на адрес [email protected] с помощью настольного почтового клиента или веб-интерфейса и получить бесплатный отчет о проверке аутентичности электронной почты. Вот отчет, который я получил от port25.com.

Обязательно проверьте оценку вашего письма на сайте https://www.mail-tester.com и оцените доставляемость сообщений с помощью GlockApps.
Если проверка DKIM не удалась, вы можете зайти на https://www.dmarcanalyzer.com/dkim/dkim-check/, чтобы выявить возможные ошибки в записи DKIM.

Что предпринять, если ваши электронные сообщения продолжают попадать в спам?
В этой статье я делюсь с вами семью полезными рекомендациями, которые помогут избежать попадания ваших писем в папку спама. Хотя реализация этих советов потребует определенных усилий и времени, в результате ваши сообщения будут успешно доходить до адресатов.
rDNS для нескольких доменов электронной почты?
Обратная система доменных имен (rDNS), или PTR-запись, применяется для подтверждения того, соответствует ли IP-адрес отправителя определенному хосту HELO. При добавлении нового почтового домена не требуется создание дополнительной PTR-записи. Ваш rDNS следует настроить на один хост, который указан в Postfix; это можно проверить с помощью следующей команды.
postconf myhostname
rDNS представляет собой запись, ассоциированную с IP-адресами, а не с доменными именами. Если у вас имеется лишь один IP-адрес, вам потребуется всего одна запись rDNS, которая указывает на определённый хост. Процесс проверки обратного DNS не анализирует, какое доменное имя указано в поле From:, если ваш IP-адрес имеет запись rDNS, и хост может быть успешно разрешён обратно к этому IP-адресу, то проверка обратного DNS будет пройдена.
Кроме того, вам не потребуется вносить изменения в следующие настройки Postfix при размещении нескольких доменов на одном сервере.
- myhostname
- myorigin
- mydestination
Услуги хостинга электронной почты, такие как G Suite и Microsoft Exchange Online, применяют единое имя хоста для отправки сообщений от имени своих пользователей. Например, письма, отправленные через G Suite, используют google.com в качестве имени хоста, в то время как сообщения от пользователей Microsoft Exchange Online используют outlook.com. Аналогично действуют и другие провайдеры, такие как Mailchimp, SendinBlue, SendPulse и так далее. Все они применяют одно имя хоста для одного сервера, и каждый IP-адрес соответствует только одной записи rDNS.
Не получается получать сообщения от Gmail, Hotmail, Yahoo Mail и других почтовых сервисов.
Если у вас возникли проблемы с получением писем от Gmail, Hotmail, Yahoo Mail и других сервисов, это могут быть следующие причины:
- Некорректная MX-запись или она еще не обновлена в сети.
- Имя хоста вашего почтового сервера не имеет DNS A-записи или она еще не обновлена в сети.
- Ваш брандмауэр блокирует входящие подключения на порт 25. Возможно, ваш почтовый сервер находится за NAT?
- Postfix не принимает подключения на открытом IP-адресе.
- Изучите журнал почты (/var/log/mail.log), чтобы определить, существуют ли дополнительные ошибки в настройках Postfix и Dovecot.
Для проверки доступности вашего SMTP-сервера из Интернета воспользуйтесь инструментом Email Checker от Network Tools. Введите адрес электронной почты вашего домена и нажмите на кнопку «Go». Как показано на приведенном ниже скриншоте, инструмент успешно обнаружил MX-запись моего домена, что подтверждает доступность моего SMTP-сервера в сети.

Если ваши SMTP-серверы недоступны для внешней сети, это указывает на проблемы с первыми четырьмя пунктами. Если же ваш SMTP-сервер доступен, но вы продолжаете испытывать трудности с получением электронных писем, стоит проверить журнал почты (/var/log/mail.log) на наличие ошибок в настройках Postfix и Dovecot.
Пара TLS-сертификатов
Если вы обслуживаете почтовые серверы для различных клиентов, вам может не подойти объединение всех TLS-сертификатов в одном файле, так как это может раскрыть данные о ваших клиентах. Вместо того чтобы применять следующую команду для получения сертификата на несколько доменов,
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp - d mail.domain1.com,mail.domain2.com
Вы можете воспользоваться следующей командой, чтобы получить отдельный TLS-сертификат для второго почтового домена.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp - d mail.domain2.com
Затем необходимо произвести настройку Postfix и Dovecot.
Некоторые TLS-сертификаты для Postfix.
При наличии версии Postfix 3.4 или более поздней вы можете настроить несколько TLS-сертификатов. Для этого откройте файл main.cf и внесите необходимые изменения.
sudo nano /etc/postfix/main.cf
Вставьте следующую строку в нижнюю часть данного файла для добавления нескольких TLS-сертификатов.
tls_server_sni_maps = hash:/etc/postfix/sni_maps
Сохраните файл и закройте его. После этого создайте файл sni_maps.
sudo nano /etc/postfix/sni_maps
В этом документе укажите все почтовые хосты вместе с соответствующими файлами сертификатов.
mail.domain1.com /etc/letsencrypt/live/mail.domain1.com/privkey. pem /etc/letsencrypt/live/mail.domain1.com/fullchain. pem mail.domain2.com /etc/letsencrypt/live/mail.domain2.com/privkey. pem /etc/letsencrypt/live/mail.domain2.com/fullchain. pem
Сохраните изменения и закройте документ. Затем приступите к созданию таблицы поиска.
sudo postmap - F /etc/postfix/sni_maps
sudo systemctl restart postfix
Необходимо применить параметр — F в postmap для декодирования каждого значения в карте SNI, закодированного в формате base64. В противном случае Postfix сгенерирует ошибку о некорректном значении BASE64 в файле /var/log/mail.log. Приведенная ниже команда является неправильной.
sudo postmap /etc/postfix/sni_maps
Несколько сертификатов TLS для Dovecot.
При использовании нескольких TLS-сертификатов в Postfix, необходимо также добавить их в Dovecot. Для этого отредактируйте файл 10-ssl.conf в Dovecot.
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Вы можете обнаружить следующие фразы.
ssl_cert =mail.domain1.comssl_key = /fullchain. pemmail.domain1.com/privkey. pem
После этого вставьте следующие строки.
local_name mail.domain1.com < ssl_cert =mail.domain1.comssl_key = /fullchain. pemmail.domain1.com/privkey. pem > local_name mail.domain2.com < ssl_cert =mail.domain2.comssl_key = /fullchain. pemmail.domain2.com/privkey. pem >
Сохраните изменения и закройте документ. После этого перезапустите Dovecot.
sudo systemctl restart dovecot
Выполните следующую команду, чтобы разрешить доступ к сертификатам TLS от Let’s Encrypt.
sudo setfacl - R - m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
Задача, выполняемая по расписанию с помощью Cron.
Если вы применяете карту SNI в Postfix, после обновления TLS-сертификата необходимо выполнить команду.
sudo postmap - F /etc/postfix/sni_maps
Если вы этого не выполните, пользователи электронной почты могут выразить недовольство по поводу истекшего TLS-сертификата. Для автоматизации процесса можно добавить эту команду в файл Crontab.
sudo crontab - e
Пользователь веб-сервера Apache:
@daily certbot renew --quiet; /usr/sbin/postmap - F /etc/postfix/sni_maps; systemctl reload postfix dovecot apache2
Клиент веб-сервера Nginx:
@daily certbot renew --quiet; /usr/sbin/postmap - F /etc/postfix/sni_maps; systemctl reload postfix dovecot nginx
Заключение
Вот и всё! Надеюсь, этот гайд оказался полезным для настройки нескольких доменов электронной почты с помощью PostfixAdmin. Как всегда, если вам понравилась эта статья, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше полезных советов и рекомендаций.

