Содержание
Настройка DKIM подписи
На примере сервера на CentOS.
Установка и настройка opendkim
Устанавливаем opendkim:
yum install opendkim
Создаем ключи:
cd /etc/opendkim/keys/ mkdir site.ru opendkim-genkey -D site.ru -d site.ru -s default chown -R opendkim:opendkim .
В итоге создаются 2 файла:
site.ru/default.private
- приватный ключsite.ru/default.txt
- публичный ключ
Редактируем конфигурационные файлы:
- /etc/opendkim/KeyTable
# OPENDKIM KEY TABLE # To use this file, uncomment the #KeyTable option in /etc/opendkim.conf, # then uncomment the following line and replace example.com with your domain # name, then restart OpenDKIM. Additional keys may be added on separate lines. default._domainkey.site.ru site.ru:default:/etc/opendkim/keys/site.ru/default.private
- /etc/opendkim/SigningTable
# WILDCARD EXAMPLE # Enables signing for any address on the listed domain(s), but will work only if # "refile:/etc/opendkim/SigningTable" is included in /etc/opendkim.conf. # Create additional lines for additional domains. *@site.ru default._domainkey.site.ru
Редактируем список доверенных хостов: IP адресов, hostname
и CIDR диапазонов:
- /etc/opendkim/TrustedHosts
# OPENDKIM TRUSTED HOSTS # To use this file, uncomment the #ExternalIgnoreList and/or the #InternalHosts # option in /etc/opendkim.conf then restart OpenDKIM. Additional hosts # may be added on separate lines (IP addresses, hostnames, or CIDR ranges). # The localhost IP (127.0.0.1) should always be the first entry in this file. 127.0.0.1 ::1 #host.example.com #192.168.1.0/24 site.ru
Редактируем основной конфигурационный файл /etc/opendkim.conf
, я отметил главные изменения:
- /etc/opendkim.conf
Mode sv # добавляем опцию s - чтобы подписывать # раскомментировать следующие опции KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts
Настройка Sendmail
Добавить следующую опцию:
- /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')dnl
Пересобрать конфигурацию:
cd /etc/mail/ m4 sendmail.mc > sendmail.cf
Добавить запись DNS
Добавить запись DNS тип TXT
для субдомена default._domainkey.site.ru
, взяв содержимое из файла site.ru/default.txt
.
Проверить успешность добавления можно так:
dig TXT default._domainkey.site.ru
Запустить
service opendkim start
service sendmail restart
chkconfig opendkim on
Проверить на то, что сервисы «висят»:
netstat -nlp | grep -P 'sendmail|opendkim'
Проверить
Проверить можно отправкой на адрес популярных почтовиков (Яндекс, Гмыло), в примере email@yandex.ru
:
- test-dkim.php
echo var_dump(mail("email@yandex.ru", "test", "message text", "From: info@site.ru\nContent-Type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit", "-finfo@site.ru"));
А в исходном теле будет запись вида
Authentication-Results: mxfront6j.mail.yandex.net; spf=pass (mxfront6j.mail.yandex.net: domain of site.ru designates 100.100.100.100 as permitted sender) smtp.mail=info@site.ru; dkim=pass header.i=@site.ru
Главные проверки должны быть пройдены: spf=pass и dkim=pass