Данная статья являет продолжением темы по настройке почтового сервера. На этот раз будет рассмотрен процесс настройки домена для отправки почтовых сообщений, а именно добавление записей SPF, DKIM и DMARC.
1. Добавление записи SPF
SPF — это расширение для протокола отправки почты через SMTP сервер. С его помощью проверяется легитимность домена отправителя. Владелец домена в TXT-записи указывает перечень серверов которые могут отправлять почту, с обратным адресом в этом домене.
Запись SPF имеет следующие опции:
- v=spf1 — указывается на используемую версию SPF;
- + — сообщает серверу, что письма необходимо принимать, является значением по умолчанию;
- — — сообщает о необходимости отклонить почту;
- ~ — сообщает о необходимости принять письмо с пометкой СПАМ;
- ? — нейтральное отношение к принимаемой почте;
- mx — состоит со всех адресов серверов, указанных в MX-записях домена;
- a — позволяет добавить какое-либо доменное имя;
- ip4 — позволяет добавить в запись SPF один или несколько IPv4 адресов;
- ip6 — позволяет добавить один или несколько IPv6 адресов;
- include — добавляет сервера, которые включены в запись SPF указанного домена;
- ptr — проверяет PTR-запись IP-адреса отправителя на сходство с текущим доменом;
- all — все сервера, которые не были перечислены в текущей записи;
- exp — позволяет задать текст ошибки, в случае её возникновения;
- redirect — указывает серверу-получателю, что необходимо проверять запись в заданного домена, вместо текущего.
Простая TXT-запись для сайта site.com имеет вид:
site.com. IN TXT "v=spf1 mx ip4:8.8.8.8 ~all"
В ней сообщается серверу, что необходимо принимать почту со всех серверов, указанных в MX—записи, а также с сервера 8.8.8.8, остальную же почту принимать, но помечать как СПАМ.
2. Добавление записи DKIM
DKIM — технология позволяющая производить проверку легитимности почтового отправителя, путем добавления к сообщению специальной цифровой подписи.
Добавление записи DKIM состоит из двух этапов:
- генерация публичного и приватного ключей;
- редактирование DNS.
Для начала, если ранее не делалось, необходимо внести в конфиг Exim информацию о DKIM:
vi /etc/exim/exim.conf
Добавляем в раздел «MAIN CONFIGURATION SETTINGS»:
DKIM_DOMAIN = ${lc:${domain:$h_from:}} DKIM_FILE = /usr/local/etc/exim/${lc:${domain:$h_from:}}.key DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
Добавляем сразу после:
remote_smtp: driver = smtp
это:
dkim_domain = DKIM_DOMAIN dkim_selector = mail dkim_private_key = DKIM_PRIVATE_KEY
Здесь следует заметить, что dkim_selector (в нашем случае имеет значение mail) будет использоваться при внесении записей в DNS.
Следующим шагом является генерация ключей. Сначала генерируем приватный ключ (RSA 2048 бит):
openssl genrsa -out /usr/local/etc/exim/site.com.key 2048
Приватный ключ остается на сервере, с ним ничего делать не нужно. Далее необходимо сгенерировать публичный ключ на основе уже созданного приватного:
openssl rsa -in /usr/local/etc/exim/site.com.key -pubout
После чего будет получен, примерно, следующий результат, который и необходимо добавить в DNS:
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxXeojocAWYVt4Z627Rpv yMFmBt0EIOT8C3gwVKiraKRucZ/oWSbyaXLLnf/JqotTLeOb4zLibMRxVJQJD0f1 Q4hVsiv6N3D8hvhHMQdi26z2FngIVyOyx7/sGkCbybantd0oqzDpSGxJWDZFR3vQ E0h/LA+SRlg8Uk0wPOeMxB8kIv53EP0PUdf/aT7UP9xA1AWqsyBudf/0VQH4xqiO AkmLmbQteQj6s0ilGW1+nB3ro5t5cMXCt7Th7Odc/Cg3Lk73Z2psPib0BmXyuP9p K5KRLzfmyEBKBuRKf/1QQx15Ae2941GnkPAJyLtfJBEdPqnwv8h+EgINTOHBIjg/ jwIDAQAB -----END PUBLIC KEY-----
Следующим, финальным, шагом является добавление публичного ключа в запись DKIM:
mail._domainkey.site.com. TXT "v=DKIM1; k=rsa; t=s; p=публичный_ключ"
Стоит отметить, что mail в данной записи, это dkim_selector который мы указывали в конфиге Exim.
3. Добавление записи DMARC
DMARC — это техническая спецификация, основной целью которой является борьба с отправителями, которые подделывают обратные адреса. DMARC не является обязательной записью, её основная польза заключается в сохранении чистоты репутации почтовых сервисов и интернет-провайдеров, так как дает возможность исключить несанкционированные рассылки.
DMARC добавляется только после того, как были добавлены записи SPF и DKIM, и сообщает серверу-получателю, что делать с письмами, которые не прошли проверку легитимности отправителя.
Основные опции:
- v=DMARC1 — версия протокола;
- p — правило для домена (есть 3 варианта: none — не принимать никаких действий; quarantine — отправлять сообщения в спам; reject — не принимать сообщения);
- aspf — режим проверки для SPF-записей;
- pct — процент сообщений, которые подлежат фильтрации;
- sp — правило для субдоменов, аналогичны правилу для доменов;
- rua — адрес для отчетов.
Примеры конечных записей:
- отклонять все сообщения, которые не прошли проверку:
_dmarc.site.com. TXT "v=DMARC1; p=reject"
- пропускать все сообщения, но отправлять отчет на почту admin@site.com:
_dmarc.site.com. TXT "v=DMARC1; p=none; rua=mailto:admin@site.com"
Стоить отметить, что для нового домена не рекомендуется сразу отклонять все сообщения, лучше пропускать все, но включить отправку отчета, проверить все ли правильно работает и только после этого включать полный запрет.
На этом настройка DNS-записей домена для отправки почты завершена. Возникшие вопросы задаем в комментариях.