Пт. Апр 26th, 2024

Оригинальная статья принадлежит ее автору на Хабре 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

Так же можно с вашего сервера отправить письмо на [email protected] с произвольным содержимым — и в ответ вам придет отчет с полным описанием. Там уже вы найдете либо строчку dkim=pass (ура! все работает!) или ошибку с описанием чего ему не так.Очень помогает.

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

от RUSUA

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Анти-спам: выполните заданиеWordPress CAPTCHA