Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
postfix_backup_mx [2025/07/06 12:39] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Postfix backup MX ======
 +
 +{{htmlmetatags>
 +metatag-description=(Задача Postfix backup MX принять входящую почту в случаи неполадок или отсутствия соединения с основным почтовым сервером.)
 +}}
 +
 +{{ ::backup-mx-01.png |}}
 +Основная задача backup MX это принять входящую почту в случаи неполадок или отсутствия соединения с основным почтовым сервером. Желательно резервный сервер установить в датацентре альтернативного провайдера.
 +===== Источники =====
 +  * [[http://www.postfix.org/STANDARD_CONFIGURATION_README.html#backup|Configuring Postfix as primary or backup MX host for a remote site]]
 +  * [[http://freesource.info/wiki/Dokumentacija/Postfix/BackupMX|Что такое backup MX?]]
 +  * Алгоритм [[http://freesource.info/wiki/Dokumentacija/Postfix/TransportirovkaPochty|транспортировка почты]]: [[SMTP]] сервер проверяет, знает ли он явно указанный маршрут к хосту hostname. (в postfix это transport_maps, либо relayhost, что действует для всех неуказанных маршрутов). Если не знает (например, не указан relayhost) — последовательно делает DNS резолвиг вида [[dig]] hostname MX, dig domain MX, dig upper-domain MX до тех пор, пока уровень домена не будет равен 2 (postfix), либо не получит нормальный ответ вида:<file>
 +comp-mir.ru.            86400   IN      MX      15 mx.comp-mir.ru.
 +</file>этот хост и будет следующим SMTP сервером (его ещё называют hop'ом — скачком). Если же разрезолвить MX-запись не удалось, тогда postfix попытается доставить почту напрямую на A- запись hostname'а.
 +====== Настройка backup MX ======
 +  - Настройка [[DNS]]: PTR запись для IP резервного сервера Postfix: [[hostname, reverse DNS]]
 +  - Настройка [[DNS]]: MX записи. Если МХ настроены правильно, команда host выведет для домена maindomen.net информацию, где предпоследняя строка указывает на основной почтовый сервер (приоритет равен 0), последняя строка указвает на наш резервный сервер (приоритет равен 10):<file>
 +# host maindomen.net
 +maindomen.net has address 176.xxx.xxx.xxx
 +maindomen.net mail is handled by 0 mail.maindomen.net
 +maindomen.net mail is handled by 10 mailstore.domen2.net
 +</file>
 +  - Указать домены, от которых сообщения будут приниматься для ретрансляции. С помощью параметра relay_domains Postfix определяет список доменов, для которых он осуществляет пересылку (домены перечисляются через запятую).<file>
 +relay_domains = maindomen.net, mail.example.com
 +</file>
 +  - Создать карту, в которой нужно указать сервер(а), на который будут ретранслироваться сообщения<file>
 +transport_maps = hash:/etc/postfix/transport
 +</file><file>
 +# nano /etc/postfix/transport
 +maindomen.net relay:[195.xxx.xxx.xxx]
 +mail.example.com relay:[195.100.xxx.26]
 +
 +# postmap hash:/etc/postfix/transport
 +</file>Все!!! Сервер настроен в качестве backup MX.
 +  - **Дополнительные настройки.** Можно изменить параметры очереди, например время жизни письма в очереди (по умолчанию maximal_queue_lifetime равен 5 дням):<file>
 +queue_run_delay=3m
 +minimal_backoff_time=6m
 +maximal_backoff_time=9m
 +maximal_queue_lifetime=4d
 +</file>
 +  - Фильтрация спама на уровне SMTP протокола. Зачем нам хранить потенциальный спам, если его можно отбросить сразу.<file>
 +# Запретить ETRN команду
 +smtpd_etrn_restrictions = reject
 +# Запретить VRFY команду
 +disable_vrfy_command = yes
 +# EHLO/HELO first
 +smtpd_helo_required = yes
 +
 +smtpd_recipient_restrictions =
 +# rcpt to должен быть полным:test@gmail.com
 + reject_non_fqdn_recipient,
 +# mail from должен быть полным:test@gmail.com
 + reject_non_fqdn_sender,
 +# domain не существует mail from:
 + reject_unknown_sender_domain,
 +# сообщение для несуществующего на нашем сервере домена -отклонять
 + reject_unknown_recipient_domain,
 +#### граница правил выше для всех пользователей -ниже только для внешних
 + permit_mynetworks,
 +# если письмо не для наших доменов -reject Postfix сообщает клиенту, что пересылка невозможна
 +# и основной запрет на relay
 + reject_unauth_destination,
 +# клиент вместе с приветсвием должен передовать полное имя хоста
 + reject_non_fqdn_hostname,
 +#клиент вместе с приветсвием должен передовать полное имя хоста, котором
 +#обязательно должна быть . и домен верхнего уровня
 + reject_invalid_hostname,
 + permit
 +
 +smtpd_data_restrictions =
 +#противодействие программам массовой рассылки
 + reject_unauth_pipelining,
 +#запрет пустого mail from:, когда 2 и больше rcpt to:
 + reject_multi_recipient_bounce
 +</file>
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!