Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

postfix_backup_mx

Postfix backup MX

Основная задача backup MX это принять входящую почту в случаи неполадок или отсутствия соединения с основным почтовым сервером. Желательно резервный сервер установить в датацентре альтернативного провайдера.

Источники

  • Алгоритм транспортировка почты: SMTP сервер проверяет, знает ли он явно указанный маршрут к хосту hostname. (в postfix это transport_maps, либо relayhost, что действует для всех неуказанных маршрутов). Если не знает (например, не указан relayhost) — последовательно делает DNS резолвиг вида dig hostname MX, dig domain MX, dig upper-domain MX до тех пор, пока уровень домена не будет равен 2 (postfix), либо не получит нормальный ответ вида:
    comp-mir.ru.            86400   IN      MX      15 mx.comp-mir.ru.

    этот хост и будет следующим SMTP сервером (его ещё называют hop'ом — скачком). Если же разрезолвить MX-запись не удалось, тогда postfix попытается доставить почту напрямую на A- запись hostname'а.

Настройка backup MX

  1. Настройка DNS: PTR запись для IP резервного сервера Postfix: PTR
  2. Настройка DNS: MX записи. Если МХ настроены правильно, команда host выведет для домена maindomen.net информацию, где предпоследняя строка указывает на основной почтовый сервер (приоритет равен 0), последняя строка указвает на наш резервный сервер (приоритет равен 10):
    # 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
  3. Указать домены, от которых сообщения будут приниматься для ретрансляции. С помощью параметра relay_domains Postfix определяет список доменов, для которых он осуществляет пересылку (домены перечисляются через запятую).
    relay_domains = maindomen.net, mail.example.com
  4. Создать карту, в которой нужно указать сервер(а), на который будут ретранслироваться сообщения
    transport_maps = hash:/etc/postfix/transport
    # nano /etc/postfix/transport
    maindomen.net relay:[195.xxx.xxx.xxx]
    mail.example.com relay:[195.100.xxx.26]
    
    # postmap hash:/etc/postfix/transport

    Все!!! Сервер настроен в качестве backup MX.

  5. Дополнительные настройки. Можно изменить параметры очереди, например время жизни письма в очереди (по умолчанию maximal_queue_lifetime равен 5 дням):
    queue_run_delay=3m
    minimal_backoff_time=6m
    maximal_backoff_time=9m
    maximal_queue_lifetime=4d
  6. Фильтрация спама на уровне SMTP протокола. Зачем нам хранить потенциальный спам, если его можно отбросить сразу.
    # Запретить 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
postfix_backup_mx.txt · Последние изменения: 2013/09/10 13:37 (внешнее изменение)