Зачем она нужна? Например для того чтобы почтовые сервера gmail.com, mail.ru и ряд других не отправляли письма с вашего домена в папку «спам».
Ставим opendkim:
Создадим файл конфигурации opendkim на основе примера:
|
cat /usr/local/etc/mail/opendkim.conf.sample | egrep -v '^#|^$' > /usr/local/etc/mail/opendkim.conf mcedit /usr/local/etc/mail/opendkim.conf |
Получим файл вида:
|
Domain example.com KeyFile /var/db/dkim/example.private Selector my-selector-name Socket inet:port@localhost Syslog Yes |
Преобразуем его к виду:
|
Domain domen.ru KeyTable /var/db/dkim/KeyTable SigningTable /var/db/dkim/SigningTable ExternalIgnoreList /var/db/dkim/TrustedHosts Selector relay Socket inet:12301@localhost Canonicalization relaxed/relaxed Syslog Yes |
В файл /var/db/dkim/TrustedHosts добавим хосту с которых разрешены подключения:
|
*.domen.ru 127.0.0.1 localhost |
Создаем каталог для хранения ключей и создаем собственно сами ключи:
|
mkdir -p /etc/opendkim/domen.ru opendkim-genkey -D /etc/opendkim/tviinet.ru/ --domain tviinet.ru --selector relay |
Создадим пользователя opendkim,зададим владельца и права доступа на файлы:
|
pw useradd opendkim -m -s /usr/sbin/nologin -w no chown :opendkim /etc/opendkim/domen.ru/* chmod g+rw /etc/opendkim/domen.ru/* |
Создаем таблицу KeyTable. В ней хранится список соответствий между селекторами, доменами и файлами с закрытыми ключами. Формат записей:
<селектор>._domainkey.<домен> <домен>:<селектор>:<путь к закрытому ключу>
|
mcedit /var/db/dkim/KeyTable |
Например:
|
relay._domainkey.tviinet.ru domen.ru:relay:/etc/opendkim/tdomen.ru/relay.private |
Создаем SigningTable. В данной таблице хранятся соответствия между определенными email-адресами и записями в KeyTable.
|
mcedit /var/db/dkim/SigningTable |
Добавляем в него:
|
*@domen.ru relay._domainkey.domen.ru |
Далее пробуем стартовать сервис:
|
/usr/local/etc/rc.d/milter-opendkim onestart |
Если всё хорошо, правим конфигурацию postfix:
|
mcedit /usr/local/etc/postfix/main.cf |
Добавляем:
|
milter_protocol = 2 milter_default_action = accept smtpd_milters = inet:localhost:12301 non_smtpd_milters = inet:localhost:12301 |
Перезапускаем postfix:
|
/usr/local/etc/rc.d/postfix restart |
Если всё хорошо, остался последний шаг: правка DNS. Посмотрим содержимое:
|
cat /etc/opendkim/domen.ru/relay.txt relay._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPHo37kaZ6zTfi8pZUE2QIDAQAB" ) ; ----- DKIM key relay for domen.ru |
Добавим эту запись в зону TXT DNS. И пробуем отправить письмо например на gmail.com. В «исходном письме» должна присутствовать запись о DKIM.