Previous Entry Share Next Entry
Подписываем исходящие письма с помощью DKIM в Postfix - легко и просто!
Linux
sanmai


В этом нам поможет замечательный пакет dkim-filter.

( Читать дальше )




# aptitude install dkim-filter
В конец его конфига /etc/dkim-filter.conf дописываем:

Canonicalization    relaxed/relaxed
KeyList         /etc/dkim-keys.conf
Domain *
BodyLengths yes
On-Default tempfail
On-DNSError accept
SignatureTTL 3600
SubDomains yes 
Создадим каталог под ключи:

# mkdir -p /etc/postfix/dkim/
# chgrp postfix /etc/postfix/dkim/
# chmod 750 /etc/postfix/dkim/
# cd /etc/postfix/dkim/
Генерируем ключи для сервера mail.example.com:

/etc/postfix/dkim# dkim-genkey -d example.com -s mail -r
Теперь в mail.txt у нас лежит TXT запись, которую нужно добавить, а в mail.private лежит приватный ключ, который и будет использоваться для подписи писем. Запись, которую нужно добавить, будет вида:

mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
Обязательно нужно удалить расширение у файла с ключом, потому что dkim-filter берёт имя сервера из имени файла ключа:

/etc/postfix/dkim# mv mail.private mail
В файл /etc/dkim-keys.conf записываем какие домены каким ключом нужно подписывать:

*@example.com:example.com:/etc/postfix/dkim/mail
*:example.com:/etc/postfix/dkim/mail
Теперь в /etc/default/dkim-filter объясним dkim-демону где ему ждать подключений:

SOCKET="inet:8891@localhost"
Наконец, добавим в конец /etc/postfix/main.cf:

milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Не забываем добавить TXT запись и проверить, что она на месте:

# dig txt mail._domainkey.example.com
Теперь перезапускаем postfix и dkim-filter, а затем отправляем тестовое письмо куда-нибудь на Яндекс и наслаждаемся успешным результатом проверки:



Если проверка прошла успешно то стоит запретить другим серверам принимать письма с вашим доменом, но без подписи. Это можно сделать добавив ADSP запись:

_adsp._domainkey IN TXT "dkim=all"

?

Log in

No account? Create an account