Назад | Перейти на главную страницу

OpenDMARC с несколькими MX: правильная настройка доверия между серверами

Существует множество руководств о том, как настроить OpenDMARC на ваш любимый вариант Linux, но все они сосредоточены на конфигурациях с одним сервером. Моей целью было сохранить резервные вторичные серверы MX, но RejectFailures true для DMARC p=reject чтобы быть действительно удовлетворенным.

Это привело к проблеме: в примере конфигурации TrustedAuthservIDs HOSTNAME для исходных кодов SPF и DKIM. Если бы это использовалось для перечисления вторичных серверов MX, это позволило бы полностью обойти проверки OpenDMARC на первичном MX с одним поддельным заголовком.

Authentication-Results: <HOSTNAME>;
        dkim=pass (1024-bit key; unprotected) header.d=example.com header.i=@example.com;

Как настроить доверие между первичным и вторичным MX без этой ошибки?

Это перезапись другого вопрос на Security Stack Exchange для объема сбоя сервера.

Коротко:

  • OpenDMARC может и должен проверять SPF самостоятельно.
  • OpenDKIM должен проверить подпись, даже если она уже «проверена». (И на одном MX тоже!)
  • Доверие между серверами MX должно зависеть не от заголовка, а от SMTP-соединения.

Как это настроить?

  1. Вы можете следовать руководству по начальной настройке (SPF,) OpenDKIM и OpenDMARC.

    (После этого Postfix настроит OpenDKIM и OpenDMARC как фильтры SMTP.)

  2. OpenDMARC изменения конфигурации для всех серверов MX /etc/opendmarc.conf:

    • Используйте OpenDMARC milter для отказов на этапе подключения (по умолчанию false):

      RejectFailures true
      
    • Не доверяйте внешним проверкам SPF от pypolicyd-spf или альтернативы. Проведите собственную проверку:

      SPFIgnoreResults true
      SPFSelfValidate true
      
  3. OpenDKIM должен быть настроен для добавления заголовка, даже если он уже существует. /etc/opendkim.conf:

    AlwaysAddARHeader yes
    
  4. После того, как каждый MX настроит # 1- # 3, OpenDMARC на основном MX может доверять проверкам, сделанным другими серверами MX; поддельная почта уже должна быть отклонена вторичным MX. Не указывайте их на TrustedAuthservIDs, потому что он уязвим для подделки заголовков. Есть еще один opendmarc.conf вариант, более подходящий для этого:

    IgnoreHosts (строка)

    Задает путь к файлу, который содержит список имен хостов, IP-адресов и / или выражений CIDR, определяющих хосты, чьи SMTP-соединения должны игнорироваться фильтром. Если не указано, по умолчанию 127.0.0.1 только.

    IgnoreHosts /etc/opendmarc-ignorehosts.conf
    

    ... и перечислите IP-адреса вторичных серверов MX в этом новом файле конфигурации.