Оригинальная статья принадлежит ее автору на Хабре http://habrahabr.ru/post/141534/ Я всего лишь дополню ее от себя,так как во время действий по инструкции автора,выплыло несколько заминок,не указанных в вышеупомянутой статье 🙂

Для начала установим пакет для работы с цифровой подписью для Postfix:

apt-get install dkim-filter

Затем в конец его конфига /etc/dkim-filter.conf дописываем:

Canonicalization relaxed/relaxed 
KeyList /etc/dkim-keys.conf 
Domain * 
BodyLengths yes

 

Создадим каталог под ключи
mkdir -p /etc/postfix/dkim/ 
chgrp postfix /etc/postfix/dkim/ 
chmod 750 /etc/postfix/dkim/ 
cd /etc/postfix/dkim/
Генерируем ключи для сервера mail.example.com:
dkim-genkey -d имя_сервера.сом -s mail -r

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

mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."

Теперь необходимо добавить в DNS базу вашего сервера запись с видом ТХТ и содержимым имя_сервера.сом._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=ключ_из_файла" и сохранить.В течении суток эта ТХТ запись кешируется всеми серверами и будет доступна.

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

mv mail.private имя_сервера.сом

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

*@имя_сервера.com:имя_сервера.com:/etc/postfix/dkim/имя_сервера.сом

*:имя_сервера.com:/etc/postfix/dkim/имя_сервера.сом

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

SOCKET="inet:8891@localhost"

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

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

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

dig txt имя_сервера.сом._domainkey.имя_сервера.com

Так же можно с вашего сервера отправить письмо на check-auth@verifier.port25.com с произвольным содержимым - и в ответ вам придет отчет с полным описанием. Там уже вы найдете либо строчку dkim=pass (ура! все работает!) или ошибку с описанием чего ему не так.Очень помогает.

Так же необходимо правильно настроить ТХТ записи для вашего доменного имени.Подробнее читайте тут.

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

%d такие блоггеры, как: