Краткая инструкция по настройке DKIM/SPF для домена example.com. Нужно это для того, чтобы снизить вероятность попадания в спам писем, отправляемых с вашего сервера.
Установим opendkim и mailutils
apt-get update_x000D_apt-get install opendkim opendkim-tools mailutils
Теперь перейдём непосредственно к настройке. Для настройки SPF необходимо создать TXT-запись следующего вида:
_x000D_Хост Указатель TTL_x000D_@ v=spf1 ip4:server_ip ~all 3600
server_ip — IP-адрес вашего почтового сервера, который отправляет письма.
~all означает, что письмо, которое не прошло проверку, будет отклонено.
Теперь настроим DKIM
mkdir /etc/postfix/dkim/
Создаём ключи ключи для домена example.com:
opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail
После выполнения последней команды в каталоге /etc/postfix/dkim/ появится пара ключей — публичный и приватный для домена example.com:
Установим права на приватный ключ:
chmod 600 /etc/postfix/dkim/example.com.private
Поменяем владельца каталога:
chown -R opendkim /etc/postfix/dkim/
В опции в файле /etc/opendkim.conf необходимо внести следующие правки:
Syslog yes_x000D_Mode sv_x000D_KeyTable file:/etc/postfix/dkim/keytable_x000D_SigningTable file:/etc/postfix/dkim/signingtable
Mode sv — режим подписи и проверка подписей
KeyTable — список ключей
SigningTable — соответствие доменов и подписывающих их ключей
В файле /etc/postfix/dkim/keytable указываем данные о приватных ключах для доменов в формате имя_ключа домен:селектор:/путь/до/ключа
mail._domainkey.example.com example.com:mail:/etc/postfix/dkim/example.com.private
В файле /etc/postfix/dkim/signingtable указываются домены, которые необходимо подписывать в формате домен имя_ключа :
example.com mail._domainkey.example.com
В /etc/default/opendkim необходимо указать сокет, на котором будет opendkim. Другие настройки можно закомментировать:
SOCKET="inet:8891@localhost"
Добавляем в /etc/postfix/main.cf :
milter_default_action = accept_x000D_milter_protocol = 2_x000D_smtpd_milters = inet:localhost:8891_x000D_non_smtpd_milters = inet:localhost:8891
Перезапускаем postfix и opendkim:
systemctl restart postfix_x000D_systemctl restart opendkim
Теперь осталось настроить DNS.
В панели управления доменом создаём TXT-запись следующего вида:
_x000D_Запись Содержимое TTL_x000D_mail._domainkey v=DKIM1; h=sha256; k=rsa; p=MII...QAB 3600
Содержимое строки p=MII…QAB берём из файла /etc/postfix/dkim/example.com.txt .
После обновления DNS, всё должно заработать.
Как проверить, что всё сделано правильно? Для проверки можно отправить тестовое сообщение на свой почтовый ящик с помощью утилиты mail:
"test message" | mail -aFrom:mail@example.com my_email@google.com
В заголовках полученного сообщения проверки SPF и DKIM должны выполниться успешно:
spf=pass_x000D_dkim=pass
Также проверить DKIM можно с помощью утилиты opendkim-testkey:
opendkim-testkey -d example.com -s mail -vvv -k /etc/opendkim/keys/mail.private_x000D__x000D_opendkim-testkey: using default configfile /etc/opendkim.conf_x000D_opendkim-testkey: checking key 'mail._domainkey.example.com'_x000D_opendkim-testkey: key not secure_x000D_opendkim-testkey: key OK
Таким образом мы получаем настроенный DKIM, что позволяет письмам доходить до получателя, а не сразу улетать в спам.