SPF/DKIM для виртуальных почтовых доменов Postfix

Вопрос или проблема

У меня есть сервер с Postfix на mail.example.com. Я настроил несколько виртуальных доменов почтовых ящиков, и сервер отправляет и получает почту для этих доменов, например, [email protected] и [email protected]. Я также могу отправлять и получать почту для родного домена, например [email protected].

Примерно год назад, почта, отправляемая на аккаунты Gmail только из виртуальных доменов, стала возвращаться с ошибкой о настройке SPF или DKIM. Почта из родного домена была в порядке.

У меня установлен и работает DKIM, но, похоже, он настроен только для родного домена. Возможна ли настройка для виртуальных доменов, и если да, то как?

Также я пытался настроить SPF, добавив SPF запись в DNS для example.net следующим образом: "v=spf1 a:mail.example.com -all". Я также пробовал поля ip4: и include: в SPF записи, но ничего не работает. Как вы бы настроили SPF записи, чтобы почта от example.net могла быть аутентифицирована и получена Gmail?

Да, возможно иметь DKIM для виртуальных доменов почтовых ящиков.

Я использую Amavis для подписи писем, исходящих с моего сервера.

Мой почтовый сервер в основном использует эту настройку, которую я описал в вопросе давно.

В любом случае: Мой совет по Amavis – вам нужно отредактировать /etc/amavis/conf.d/60-dkim.

Синтаксис довольно прост. У вас есть строка для каждого доменного имени, которое вы хотите подписать. Например:

dkim_key('example.com', 'default', '/var/lib/amavis/dkim/example.com.private', 't=>s');
dkim_key('otherdomain.com', 'default', '/var/lib/amavis/dkim/otherdomain.com.private');

Краткое объяснение значений внутри объекта dkim_key.

  1. Доменное имя, с которого вы хотите подписывать письма.
  2. Селектор ключа DKIM. Он проверяется относительно DNS.
  3. Путь к приватному ключу DKIM.
  4. Необязательное значение. Оно определяется в RFC4871. Эта опция заявляет, что ключ соответствует только example.com, но не subdomain.example.com.

Мои ключи DKIM генерируются с помощью openssl с использованием следующей команды:

Приватный ключ:

openssl genrsa -out example.com.private 2048

Публичный ключ:

openssl rsa -in example.com.private -pubout -outform der | openssl base64 -A

Возможно использовать ECC ключи, заменив rsa на ec в команде выше, но я не пробовал, так что у вас могут быть разные результаты.

Выходной результат публичного ключа хранится в следующей DNS записи:

default._domainkey.example.com IN TXT "(вставьте значение)"

Надеюсь, это поможет?

Ответ или решение

Настройка SPF и DKIM для виртуальных почтовых доменов в системе Postfix – это важный шаг для обеспечения доставки электронной почты и предотвращения угроз, таких как спуфинг. Запрашиваемый процесс требует точной конфигурации и следования ряду практических шагов.

Теория

SPF и DKIM — это основные механизмы аутентификации электронной почты, позволяющие удостоверять подлинность отправителя и подтверждать целостность сообщения:

  1. SPF (Sender Policy Framework) позволяет домену указывать, какие серверы имеют право отправлять электронную почту с этого домена. Получающие серверы проверяют, разрешен ли сервер-отправитель в записи SPF.

  2. DKIM (DomainKeys Identified Mail) добавляет цифровую подпись к каждому отправляемому сообщению, что позволяет получающему серверу проверить, что сообщение не было изменено и действительно отправлено от имени указанного домена.

Пример

Ваша текущая ситуация с Postfix и виртуальными доменами вызывает проблемы с доставкой, в частности, в Gmail, из-за отсутствия правильной настройки SPF и DKIM для виртуальных доменов. Ваша задача — правильно настроить эти механизмы для всех доменов, для которых ваш сервер отправляет почту.

Реализация

  1. Настройка SPF

    Убедитесь, что запись SPF для каждого виртуального домена правильно настроена. Пример конфигурации SPF записи для домена example.net может выглядеть так:

    example.net. IN TXT "v=spf1 a:mail.example.com ip4:XX.XX.XX.XX -all"

    Здесь XX.XX.XX.XX — это IP вашего почтового сервера. Параметр a:mail.example.com указывает, что все почтовые сообщения, отправленные вашим сервером, разрешены.

  2. Настройка DKIM

    Для DKIM требуется генерировать ключи и добавить открытую часть на DNS-сервере для каждого виртуального домена:

    • Сгенерируйте ключи с помощью команд OpenSSL:

      openssl genrsa -out example.com.private 2048
      openssl rsa -in example.com.private -pubout -outform der | openssl base64 -A
    • Сохраните публичный ключ в виде DNS-записи:

      default._domainkey.example.com. IN TXT "p=ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ"
    • Настройте Amavis или другой подходящий инструмент для подписывания исходящих сообщений. Приведенный вами пример показывает, как это сделать в конфигурационном файле Amavis:

      dkim_key('example.com', 'default', '/var/lib/amavis/dkim/example.com.private');
      dkim_key('virtualdomain.net', 'default', '/var/lib/amavis/dkim/virtualdomain.net.private');
  3. Проверьте Корректность

    После настройки SPF и DKIM проверьте правильность конфигурации с помощью инструментов проверки, таких как порталы Gmail или специальные онлайн-сервисы, благодаря чему вы получите обратную связь по наличию ошибок в настройках.

Этот процесс требует тщательной проверки настройки DNS и файлов конфигурации, что позволит гарантировать успешную аутентификацию и доставку почты из всех виртуальных доменов вашего сервера.

Оцените материал
Добавить комментарий

Капча загружается...