Установка и настройка DKIM на CentOS

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

[root@localhost]# yum -y install opendkim
[root@localhost]# mkdir -p /etc/opendkim/keys
[root@localhost]# chown -R opendkim:opendkim /etc/opendkim
[root@localhost]# chmod -R go-wrx /etc/opendkim/keys

Приводим конфигурационный файл opendkim к виду: 

[root@localhost]# cat /etc/opendkim.conf
AutoRestart Yes
AutoRestartRate 10/1h
PidFile /var/run/opendkim/opendkim.pid
Mode sv
Syslog yes
SyslogSuccess yes
#LogWhy yes
UserID opendkim:opendkim
Socket inet:8891@localhost
Umask 022
Canonicalization relaxed/relaxed
Selector default
Background yes
MinimumKeyBits 1024
KeyFile /etc/opendkim/keys/example.ru/default
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts

Перегружаем postfix и opendkim

[root@localhost]# hash -r
[root@localhost]# service opendkim restart
[root@localhost]# service postfix restart

Настраиваем почтовый домен, например example.ru:

Создаем каталог, генерируем ключ с помощью утилиты opendkim-genkey

[root@localhost]# mkdir /etc/opendkim/keys/example.ru
[root@localhost]# opendkim-genkey -D /etc/opendkim/keys/example.ru/ -d example.ru -s default

Меняем владельца на сгенерированный ключ и переименовываем его

[root@localhost]# chown -R opendkim:opendkim /etc/opendkim/keys/example.ru
[root@localhost]# mv /etc/opendkim/keys/example.ru/default.private /etc/opendkim/keys/example.ru/default

Добавляем правило для нашего домен в файл со списком ключей, доступных для подписи (/etc/opendkim/KeyTable)

[root@localhost]# echo -e "default._domainkey.example.ru example.ru:default:/etc/opendkim/keys/example.ru/default" >> /etc/opendkim/KeyTable

Добавляем правило для нашего домен в файл со списком доменов и аккаунтов доступных для подписи (/etc/opendkim/SingleTable)

[root@localhost]# echo -e "*@example.ru default._domainkey.example.ru" >> /etc/opendkim/SigningTable

Добавляем наши домены в файл со списком доверенных доменов при подписывании или проверке (/etc/opendkim/TrustedHosts)

[root@localhost]# echo -e "example.ru\mx.example.ru" >> /etc/opendkim/TrustedHosts

Перегружаем postfix и opendkim

[root@localhost]# hash -r
[root@localhost]# service opendkim restart
[root@localhost]# service postfix restart

При генерации сертификата, утилита opendkim-genkey создала файл с данными, которые надо прописать в наш DNS

[root@localhost]# cat /etc/opendkim/keys/example.ru/default.txt
default._domainkey IN TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3kbEHhBnq478wOR6AtcG8VND9ObsxdnBvKc4tRaEGaTdDz9xuK/YXxQUJ4TuOSetnUo4lbnyod8sGddUYJYDB84PZAQVQsRYW5hlaOOrjisEE+ph85gXvZnLQ+l6KLrTWHh4GlWx4UexclK9eQ+wXc/9kl9Yow6+9/gmDe/eRnQIDAQAB;

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.

  1. Александр

    У вас в /etc/opendkim.conf:
    KeyFile /etc/opendkim/keys/default.private
    неправильно т.к. ниже вы его удаляете

    Ответить
    1. Максим Макаров автор

      Благодарю, подправил в статье

      Ответить
  2. Viacheslav

    Единственная нормальная статья, в которой прошелся по порядку и все работает. Кроме отправки почты :) На хостинге сделал запись txt, но вот эта проверка https://toolbox.googleapps.com/apps/checkmx/ все равно не находит ключи DKIM

    В панели управления хостингом был создан пользователь USER, т.к. в справках прочитал, что под root’ом сайты устанавливать не рекомендуется. Это имеет значение при добавлении dkim? Т.к. в этой статье все выполняется под root’ом.

    На ukr.net почта не приходит совсем, а на gmail приходит, но попадает в спам

    Ответить
    1. Максим Макаров автор

      DKIM работает из под пользователя opendkim.
      Почему не приходит почта на ukr.net — надо смотреть права доступа к каталогу /etc/opendkim и логи почтового сервера

      Ответить
  3. art

    В статье пропущены новые записи для конфига /etc/postfix/main.cf:

    smtpd_milters = inet:127.0.0.1:8891
    non_smtpd_milters = $smtpd_milters
    milter_default_action = accept
    milter_protocol = 2

    А в целом статья отличная, спасибо

    Ответить