DKIM-filter — данный пакет служит для подписывания писем и работает в связке с postfix. Данный пост основан на статье с хабра, но дополнен информацией специально для centos.

Установка:

Прежде всего, хоть он и называется dkim-filter, в centos данный пакет назван dkim-milter и устанавливать надо именно его. Репозиторий epel вам в помощь, ну или любой другой где вы найдете данный пакет (:

yum install dkim-milter

 

Настройка:

Тут опять нас ждет сюрприз, потому как файла /etc/dkim-filter.conf после установки нет. Вся конфигурация находится в /etc/mail/dkim-milter/ ^_~

В файле /etc/mail/dkim-milter/dkim-filter.conf изменяем следующие параметры

BodyLengths    Yes
Canonicalization    relaxed/relaxed
Domain    mail.example.com
KeyList    /etc/mail/dkim-milter/keys/keylist
Selector        default
Socket    inet:8891@localhost
Syslog    Yes
SyslogSuccess    Yes
X-Header    Yes

Далее генерируем ключи для вашего домена

dkim-genkey -d example.com -s mail -r

Сейчас в mail.txt у нас лежит TXT запись, которую нужно добавить, а в mail.private лежит приватный ключ, который и будет использоваться для подписи писем. Запись, которую нужно добавить в DNS, будет вида:

mail._domainkey IN TXT «v=DKIM1; g=*; k=rsa; p=…»

Теперь обязательно нужно удалить расширение у файла с ключом, потому что в описываемой схеме dkim-filter берёт имя сервера из имени файла с ключом:

mv mail.private mail

В файл /etc/mail/dkim-milter/keys/keylist записываем какие домены каким ключом нужно подписывать:

*@example.com:example.com:/etc/mail/dkim-milter/keys/mail
*:example.com:/etc/mail/dkim-milter/keys/mail

Аналогично можно добавить свои отдельные ключи для других доменов или даже для отдельных адресов. Если не нужно, чтобы dkim-filter подписывал письма для всех других доменов, не указанных явно, последнюю строчку можно удалить.

Наконец, добавим в конец /etc/postfix/main.cf следующие строки:

milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Не забываем добавить DNS TXT запись и проверить, что она на месте:

dig txt mail._domainkey.example.com

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

_adsp._domainkey IN TXT «dkim=all»

На этом можно сказать практически всё, но на всякий случай стоит проверить что вы включили автозагрузку сервиса, иначе вас ждет «приятный» сюрприз после перезагрузки.

chkconfig —levels 345 dkim-milter on

Ня.