Настройка DKIM на 1С-Битрикс виртуальной машине

Начнем с самого начала, что такое собственно сам DKIM. Фактически это еще один способ проверки разрешения данного сервера отправлять почту от текущего почтового ящика, но не средствами SPF, а с использованием более продвинутого SSL ключа.

Для этого нам понадобится выполнить несколько действий:
  1. Установить opendkim;
  2. Исправить конфиг opendkim;
  3. Добавить проверку в postfix;
  4. Сгенерировать ключи и TXT-запись для домена.

Установка opendkim

Добавим репозиторий в centos (по умолчанию его нет):

64 bit:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y opendkim

Правки конфига opendkim

Исправим конфиг согласно образцу:
AutoRestart Yes 
AutoRestartRate 10/1h 
LogWhy Yes
Syslog Yes
SyslogSuccess Yes
Mode s 
Canonicalization relaxed/simple 
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts 
InternalHosts refile:/etc/opendkim/TrustedHosts 
KeyTable refile:/etc/opendkim/KeyTable 
SigningTable refile:/etc/opendkim/SigningTable 
SignatureAlgorithm rsa-sha256 
Socket inet:8891@localhost 
PidFile /var/run/opendkim/opendkim.pid 
UMask 022 
UserID opendkim:opendkim 
TemporaryDirectory /var/tmp

Добавление проверки в postfix

Добавим DKIM проверку в postfix, раскоментируем или добавим следующие строки. /etc/postfix/main.cf
# opendkim setup
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
milter_default_action = accept
milter_protocol = 2

Генерация ключей и TXT-записи для домена.

Поскольку нам понадобится для каждого сайта отдельный SSL ключик, то создаем sh скрипт и запускаем его нужное количество раз, меняя только название домена
DOMAIN=klondike-studio.ru
postmap /etc/postfix/virtual
mkdir -p /etc/opendkim/keys/$DOMAIN
cd /etc/opendkim/keys/$DOMAIN
opendkim-genkey -D /etc/opendkim/keys/$DOMAIN/ -d $DOMAIN -s default
chown -R opendkim:opendkim /etc/opendkim/keys/
chmod 600 /etc/opendkim/keys/$DOMAIN/default.txt
chmod 640 /etc/opendkim/keys/$DOMAIN/default.private
echo -e "default._domainkey.$DOMAIN $DOMAIN:default:/etc/opendkim/keys/$DOMAIN/default.private" >> /etc/opendkim/KeyTable
echo -e "*@$DOMAIN default._domainkey.$DOMAIN" >> /etc/opendkim/SigningTable
echo -e "$DOMAIN\nmail.$DOMAIN" >> /etc/opendkim/TrustedHosts

chown -R opendkim:opendkim /etc/opendkim
chmod -R go-wrx /etc/opendkim/keys

hash -r
service opendkim restart
service postfix restart
cat /etc/opendkim/keys/$DOMAIN/default.txt
opendkim-testkey -vvv -d $DOMAIN -s default -k /etc/opendkim/keys/$DOMAIN/default.private
Рестартуем service
opendkim start
chkconfig opendkim on
service postfix restart 

Вставляем соответствующие записи в DNS TXT и проверяем:

С консоли
# echo "DKIM Test" | mail -s "DKIM Testing" ваша_почта@ваш_домен.ru
# tail -100 /var/log/maillog
На сайте (ваш скрипт отправки почты)
wget  -O - -q http://$DOMAIN/111.php
Проверяем DNS-запись
host -t TXT default._domainkey.example.com 8.8.8.8

Также рекомендую сразу добавить записи DMARC.

Результат

В результате у вас должно получиться следующее тело письма:
PTR — указывает на хост сервера
DKIM запись помечается как 'pass'
SPF запись помечается как 'pass'
DMARC запись помечается как 'pass'


Оставить комментарий