Установка и настройка 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

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

    Ответить
    1. Андрей

      Подскажите что нужно прописать в настройках Dovecot в файлк etc/dovecot/dovecot.conf что бы все заработало. Я просто не использую profix у меня exim dovecot

      Ответить