Назад

Настройка DKIM записи через Postfix и OpenDKIM

Для чего вообще служит DKIM (DomainKeys Identified Mail)?

DKIM, это стандарт, который связывает домен с почтовыми сообщениями.

DKIM необходим для предотвращения отправки почты злоумышленником от чужого имени (с чужим доменом в почтовом адресе). DKIM основан на асимметричной криптографии.

Говоря проще — отправитель (почтовый агент, например, Postfix) подписывает отправляемое сообщение своей подписью (закрытым ключом), получатель расшифровывает подпись с помощью открытого ключа, размещённого в DNS-записях отправителя и убеждается (на основе математических вычислений), что письмо не было изменено в процессе доставки. То есть, убеждается в том, что отправитель именно тот, за кого себя выдаёт (в том, что домен в почтовом сообщении принадлежит отправителю).


Устанавливаем OpenDKIM

yum install opendkim

Создаём публичный и закрытый (приватный) RSA ключ. -s — это селектор, именно с этим именем создастся ключ.

Следующая команда создаёт в каталоге /etc/postfix/dkim/ публичный и приватный ключ для домена alma-com.ru.

opendkim-genkey -D /etc/postfix/dkim/ -d alma-com.ru -s alma-com.ru

Устанавливаем права на приватный ключ и каталог:

#Устанавливаем права на приватный ключ
chmod 600 /etc/postfix/dkim/alma-com.ru.private
#Меняем владельца каталога
chown -R opendkim /etc/postfix/dkim/

Файл /etc/opendkim.conf приводим к виду:

Syslog yes
#Режим подписи и проверка подписей
Mode sv
#Указываем список ключей
KeyTable file:/etc/postfix/dkim/keytable
#Соответствие ключей и доменов
SigningTable file:/etc/postfix/dkim/signingtable

Создаем файл /etc/postfix/dkim/keytable и в нём указываем информацию о приватном ключе:

#имя_ключа домен:селектор:/путь/до/ключа
mail._domainkey.alma-com.ru alma-com.ru:mail:/etc/postfix/dkim/alma-com.ru.private
Для разных серверов можно установить разные dkim записи при помощи селектора selector1._domainkey.alma-com.ru, например:
cloudapp1._domainkey 3600 IN TXT "v=DKIM1; k=rsa; t=s; p=NISfMA0GCSqGSI....ICAQAB"
cloudapp2._domainkey 3600 IN TXT "v=DKIM1; k=rsa; t=s; p=NISfMA0GCSqGSI....ICAQAB"

В файле /etc/postfix/dkim/signingtable указываем домены, которые необходимо подписывать:

#домен имя ключа
alma-com.ru mail._domainkey.alma-com.ru
#можно указать несколько доменов
#samdomen.net www._domainkey.samdomen.net

Создаём файл /etc/default/opendkim, если его нет и указываем сокет, который будет слушать OpenDKIM (другие директивы SOCKET необходимо закомментировать):

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

Затем перезапускаем Postfix и OpenDKIM:

service postfix restart
service opendkim restart
#Если будут проблемы, можно проверить статус службы, если она не запустится
service opendkim status

Осталось настроить DNS. Необходимо создать TXT-записи следующего вида в домене, p=NISf...AQAB берем из публичного ключа /etc/postfix/dkim/alma-com.ru.txt:

Хост mail._domainkey
Значение  v=DKIM1; g=*; k=rsa; p=NISf...AQAB
TTL 300

Тестируем письмо. Проверить можно также в логах /var/log/maillog.

Готово!

Настроим почту на 1С-Битрикс или Битрикс24 быстро и качественно! Большой опыт!

Выполним любые доработки сайта на Битриксе или внедрение портала Битрикс24. Заполните заявку и получите бесплатные рекомендации от специалиста!

Оставьте заявку и обсудите ваши задачи со специалистами
Иван Альмов
Иван Альмов

Наши менеджеры готовы ответить на Ваши вопросы!

Сергей
Валентина
Владислав
Россия
Позвоните нам или оставьте заявку! Мы свяжемся с Вами в течение пятнадцати минут!
Написать нам
Написать нам
Заказать звонок
Заказать звонок