DKIM+PostFix

 

Задаём переменные:
# SELECTOR - это идентификатор на сервере, может быть default, а вообще — рандомная строка
SELECTOR=default
# DOMAIN - это домен на котором мы настраиваем DKIM
DOMAIN=example.com
# SUBDOMAIN, если мы отсылаем от имени mail.example.com, но не в нашем случае
SUBDOMAIN=$DOMAIN
# SELECTORPUB - публичная часть ключа, кусок "p=…" из файла /etc/opendkim/keys/$DOMAIN.txt
# SELECTORKEY - приватная часть ключа, результат генерации, лежит в /etc/opendkim/keys/$DOMAIN.private

Ставим нужные пакеты:
yum install install opendkim opendkim-tools
Создаём папку
mkdir /etc/opendkim/keys
Генерируем приватную (файл $DOMAIN.private) и публичную (файл $DOMAIN.txt) часть ключей
opendkim-genkey -D /etc/opendkim/keys/ -d $DOMAIN -s $SUBDOMAIN
Публичную часть добавляем в DNS
cat /etc/opendkim/keys/$DOMAIN.txt


$SELECTOR._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=$SELECTORPUB" ) ; ----- DKIM key $SELECTOR for $DOMAIN
т.е. запись типа TXT "$SELECTOR._domainkey" со значением "v=DKIM1; k=rsa; "
"p=$SELECTORPUB"


Проверяем:
dig txt $SELECTOR._domainkey.$DOMAIN



;; ANSWER SECTION:
$SELECTOR._domainkey.$DOMAIN. 600 IN TXT "v=DKIM1\; k=rsa\; p=$SELECTORPUB"

 

Файлам ключей обязательно нужно дать доступ на чтение для группы, в которой работает OpenDKIM, а сам postfix добавить в ту же группу, чтобы тот мог подписывать письма подключаясь к демону OpenDKIM через его сокет:

chgrp opendkim /etc/opendkim/*
chmod g+r /etc/opendkim/*
gpasswd -a postfix opendkim

Правим конфиг opendkim до вида:
nano /etc/opendkim.conf

PidFile /var/run/opendkim/opendkim.pid
Mode s
Syslog yes
SyslogSuccess yes
LogWhy yes
UserID opendkim:opendkim
Socket local:/var/run/opendkim/opendkim.sock
Umask 002
SendReports yes
SoftwareHeader yes
Canonicalization relaxed/relaxed
Selector default
MinimumKeyBits 1024
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
OversignHeaders From

Добавляем в таблицу ключей:
nano /etc/opendkim/keytable
$SELECTOR._domainkey.$DOMAIN $DOMAIN:$SELECTOR:/etc/opendkim/keys/$DOMAIN.private

Добавляем в таблицу подписей:
nano /etc/opendkim/SigningTable

*$DOMAIN $SELECTOR._domainkey.$DOMAIN

Правим конфиг Postfix, добавляя:
cat /etc/postfix/main.cf

# DKIM
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2

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