DKIM+DMARC для версий 5/6

POP, SMTP, webmail ...

Модератор: bao

DKIM+DMARC для версий 5/6

Сообщение vol123 » 28 мар 2017, 15:59

Всем привет!

В последнее время (касаемо mail.ru) стал получать много отказов в приеме почты на этот уважаемый сервис - https://habrahabr.ru/company/mailru/blog/282602/

(Почему) Почта Mail.Ru включает строгий DMARC
Информационная безопасность*,
Блог компании Mail.Ru Group

На днях мы анонсировали включение строгой DMARC-политики на всех доменах, принадлежащих Почте Mail.Ru. На некоторых доменах, включая bk.ru и mail.ua, политика p=reject включена уже сейчас. В этой статье мы хотим пояснить некоторые технические детали такого включения и дать рекомендации владельцам сервисов, почтовых серверов и списков рассылки.
пришлось разобраться с этой технологий(DKIM + DMARC + SPF) и настроить на стареньком почтаре ClearOS 5.1, который много лет успешно трудиться с одной подопечной организации.

Описывать как настроить SPF и DMARC не стану, т.к. это не представляет трудностей, нужно всего лишь правильно создать 2 TXT-записи в DNS-зоне почтового домена. Отмечу только, что в имени домена при публикации записи не забывайте указывать символ точка (.) в конце имени домена: example.com.

Обычно сложности вызывает технология DKIM, со-но далее краткий How-To с описанием как ее настроить:

1. EPEL REPOSITORY
Нам потребуется пакет OpenDKIM. Он доступен из репозитария EPEL, который не подключен в стандартной конфигурации, поэтому подключим его:
Код: выделить все
wget -P /tmp http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm
--2017-03-26 22:00:52--  http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm
Resolving mirror.pnl.gov... 192.101.102.2
Connecting to mirror.pnl.gov|192.101.102.2|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12232 (12K) [application/octet-stream]
Saving to: `/tmp/epel-release-5-4.noarch.rpm'
100%[===================================================================================>] 12,232      56.3K/s   in 0.2s
2017-03-26 22:00:53 (56.3 KB/s) - `/tmp/epel-release-5-4.noarch.rpm' saved [12232/12232]


Код: выделить все
rpm -Uvh /tmp/epel-release-5-4.noarch.rpm
warning: /tmp/epel-release-5-4.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

Код: выделить все
rm -f /tmp/epel-release-5-4.noarch.rpm

Проверить доступность репозитариев можно так:
Код: выделить все
ls /etc/yum.repos.d/
base.repo  clearcentos.repo  epel.repo  epel-testing.repo

Для версии 6 можно использовать эту ссылку - http://mirror.pnl.gov/epel/6/i386/epel- ... noarch.rpm

2. Устанавливаем из подключенного репозитария пакет OpenDKIM

Код: выделить все
yum install opendkim
Loading "kmod" plugin
Loading "protect-packages" plugin
epel                                                                                                  | 3.6 kB     00:00
979789038e592f8a6452627842a4afb74c3af240-primary.sqlite.bz2                                           | 2.4 MB     00:00
base-kernels                                                                                          |  951 B     00:00
base-updates                                                                                          |  951 B     00:00
clearcentos-os                                                                                        | 1.3 kB     00:00
base-supplements                                                                                      |  951 B     00:00
clearcentos-updates                                                                                   | 1.3 kB     00:00
base-console                                                                                          |  951 B     00:00
base-os                                                                                               | 1.1 kB     00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package opendkim.i386 0:2.11.0-0.1.el5 set to be updated
--> Processing Dependency: libopendkim.so.11 for package: opendkim
--> Processing Dependency: libopendkim = 2.11.0-0.1.el5 for package: opendkim
--> Processing Dependency: libopendbx.so.1 for package: opendkim
--> Processing Dependency: libbsd.so.0(LIBBSD_0.0) for package: opendkim
--> Processing Dependency: libbsd.so.0 for package: opendkim
--> Running transaction check
---> Package libbsd.i386 0:0.6.0-1.el5 set to be updated
---> Package opendbx.i386 0:1.4.6-6.el5 set to be updated
---> Package libopendkim.i386 0:2.11.0-0.1.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
opendkim                i386       2.11.0-0.1.el5   epel              287 k
Installing for dependencies:
libbsd                  i386       0.6.0-1.el5      epel               66 k
libopendkim             i386       2.11.0-0.1.el5   epel              226 k
opendbx                 i386       1.4.6-6.el5      epel               52 k

Transaction Summary
=============================================================================
Install      4 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 630 k
Is this ok [y/N]: y
Is this ok [y/N]: y
Downloading Packages:
(1/4): libopendkim-2.11.0-0.1.el5.i386.rpm                                                            | 226 kB     00:00
(2/4): opendbx-1.4.6-6.el5.i386.rpm                                                                   |  52 kB     00:00
(3/4): libbsd-0.6.0-1.el5.i386.rpm                                                                    |  66 kB     00:00
(4/4): opendkim-2.11.0-0.1.el5.i386.rpm                                                               | 287 kB     00:00
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 217521f6
Importing GPG key 0x217521F6 "Fedora EPEL <epel@fedoraproject.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: libbsd                       ######################### [1/4]
  Installing: libopendkim                  ######################### [2/4]
  Installing: opendbx                      ######################### [3/4]
  Installing: opendkim                     ######################### [4/4]

Installed: opendkim.i386 0:2.11.0-0.1.el5
Dependency Installed: libbsd.i386 0:0.6.0-1.el5 libopendkim.i386 0:2.11.0-0.1.el5 opendbx.i386 0:1.4.6-6.el5
Complete!


3. Создаем DKIM ключи и даем им права

Код: выделить все
mkdir /etc/opendkim/keys/example.com
opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
mv /etc/opendkim/keys/example.com/default.private \ /etc/opendkim/keys/example.com/default
chown -R opendkim:opendkim /etc/opendkim/keys/example.com

В результате у вас должно сгенерироваться 2 файла
- открытый ключ - файл default.txt
- приватный ключ - файл default

4. Теперь сделаем копию файла opendkim.conf
Код: выделить все
cp /etc/opendkim.conf{,.orig}

раскоментируем и отредактируем нужные нам параметры
-Domain option
-KeyTable
-SigningTable
-ExternalIgnoreLis
-InternalHosts options
-KeyTable
-KeyFile

5. Редактируем файл KeyTable
В этом файле мы указываем место хранения ключей
Код: выделить все
vi /etc/opendkim/KeyTable

default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default

6. Редактируем файл SigningTable
Этот файл говорит OpenDKIM для каких пользователей (отправителей) и какие селекторы использовать для поиска ключей подписания исходящей почты:

Код: выделить все
vi /etc/opendkim/SigningTable

*@example.com default._domainkey.example.com

Селектор это произвольное имя, в данном случае это - default


7. Редактируем файл TrustedHosts
Здесь мы указываем доверенных отправителей
Код: выделить все
vi /etc/opendkim/TrustedHosts

127.0.0.1
example.com
host.example.com

или
192.168.0.0/16

Добавляем содержимое открытого ключа (default.txt) в dns-запись в зону нашего домена, это содержимое файла:
Код: выделить все
cat /etc/opendkim/keys/example.com/default.txt


8. Интегрируем opendkim в Postfix

Сохраним копию
Код: выделить все
cp /etc/postfix/main.cf{,.orig}
vi /etc/postfix/main.cf

и добавляем в конец этого файла строки:
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2

для Postfix версии 2.6
milter_protocol = 2 добавлять не нужно

9. Добавим opendkim в стартап и запустим его

Код: выделить все
service opendkim start
chkconfig opendkim on


10. Рестартуем Postfix
Код: выделить все
service postfix restart


Все!
Проверить корректность подписи DKIM ваших писем можно отправив тестовое письмо на адрес:
check-auth@verifier.port25.com

В ответ вам должно придти сообщение вида:

Thank you for using the verifier,
The Port25 Solutions, Inc. team
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
DKIM check: pass
SpamAssassin check: ham


Ссылки на источники:
http://www.debiantutorials.com/setup-do ... n-postfix/
https://www.rosehosting.com/blog/how-to ... tos-6-vps/
http://eric.lubow.org/2009/setting-up-dkim-and-postfix/
http://askubuntu.com/questions/134725/s ... nd-mailman
http://www.remoteshaman.com/server/mta/ ... -centos-56
vol123
Интересующийся
Интересующийся
 
Сообщений: 38
Зарегистрирован: 27 дек 2007, 22:39
Откуда: Msk
Пункты репутации: 0

Вернуться в E-Mail

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5