DKIM: Как правильно настроить и проверить
DomainKeys Identified Mail (OpenDKIM) — метод E-mail аутентификации. DKIM использует внешние модули для поиска ключей и пересылки писем. Технология DKIM используется для предотвращения спуфинга, то есть подделки заголовка письма.
DKIM (DomainKeys Identified Mail) - это цифровая подпись, которую почтовый сервер добавляет к письмам от отправителей из обслуживаемых им доменов. Для этого сервер использует секретную часть ключа, которая известна только ему. Получатель может проверить подпись письма при помощи публичной части ключа, доступной через DNS-запись домена отправителя.
Нужно понимать, что DKIM не защищает от подделки отправителя и не может являться гарантией того, что письмо является полезным и безопасным, т.е. не содержит спама и вирусов. DKIM лишь удостоверяет, что почтовый сервер уполномочен владельцем домена на обслуживание почты, исходящей из этого домена. Спамеры вполне могут приобрести домен, настроить DNS и почтовый сервер для отправки писем с DKIM-подписью. Однако это требует финансовых затрат, а источник спама при этом легко идентифицировать и заблокировать. Спамеры же стараются зарабатывать деньги, оставаясь анонимными. Поэтому письмо, имеющее правильную DKIM-подпись, можно с высокой степенью достоверности считать полезным и безопасным.
DKIM- подпись — это цифровая подпись, которая добавляется к заголовкам письма сервером отправителя, по которой сервер получателя может удостовериться, что отправитель письма соответствует полю From в заголовках письма. Если сервер получателя проверяет эту подпись, то по результатам проверки сервер может принять решение о том, как поступать с письмом: принять, отправлять в папку «Спам», отправить на дополнительную проверку или вовсе отказаться от приёма. Подписи DKIM проверяют и используют сами все ведущие почтовые службы, включая Яндекс и Mail.ru.
Postfix DKIM:
Что нужно знать о DKIM
У почтового домена действительно может быть несколько DKIM-записей. Причины для нескольких DKIM-записей, например разные ключи для разных приложений: Организации могут использовать разные ключи для разных приложений или сервисов, чтобы повысить безопасность. Например, один ключ может использоваться для маркетинговых рассылок, а другой — для транзакционных писем.
Принцип работы DKIM
Настройка dkim (OpenDKIM) postfix Centos 7
Для настройки dkim устанавливаем соответствующий пакет:
yum install opendkim
Создаем директорию для хранения ключей:
mkdir -p /etc/postfix/dkim && cd /etc/postfix/dkim
Генерируем ключи для домена, где task41.topadm.in имя почтового домена mail непосредственно имя сервера:
opendkim-genkey -D /etc/postfix/dkim/ -d task41.topadm.in -s mail
На выходе получаете пару файлов - закрытый (приватный) и открытый ключ. Закрытый останется на сервере, открытый будет опубликован в dns. Переименуем их сразу, чтобы не путаться, если у вас будет несколько доменов. Ключи нужно будет делать для каждого домена.
mv mail.private mail.task41.topadm.in.private mv mail.txt mail.task41.topadm.in.txt
Создаем файл с таблицей ключей, в которой будут описаны все домены. В данном случае только один.
nano keytable
mail._domainkey.task41.topadm.in task41.topadm.in:mail:/etc/postfix/dkim/mail.task41.topadm.in.private
Тут же создаем еще один файл, в котором будет описано, каким ключом подписывать письма каждого домена. У нас один домен, поэтому только одна запись.
nano signingtable
*@task41.topadm.in mail._domainkey.task41.topadm.in
Выставляем права доступа на все файлы:
chown root:opendkim * chmod u=rw,g=r,o= *
Создаем конфигурационный файл службы opendkim.
mv /etc/opendkim.conf /etc/opendkim.conf.bak nano /etc/opendkim.conf
- opendkim.conf
AutoRestart Yes AutoRestartRate 10/1h PidFile /var/run/opendkim/opendkim.pid Mode sv Syslog yes SyslogSuccess yes LogWhy yes UserID opendkim:opendkim Socket inet:8891@localhost Umask 022 Canonicalization relaxed/relaxed Selector default MinimumKeyBits 1024 KeyFile /etc/postfix/dkim/mail.zeroxzed.ru.private KeyTable /etc/postfix/dkim/keytable SigningTable refile:/etc/postfix/dkim/signingtable
Добавляем в конфигурационный файл postfix в самый конец следующие параметры:
nano /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 и dkim. Dkim добавляем в автозагрузку.
systemctl restart postfix systemctl restart opendkim.service systemctl enable opendkim.service
Теперь нам надо добавить открытый ключ в dns. Идем в консоль управления dns и добавляем новую txt запись. Ее содержание берем из файла /etc/postfix/dkim/mail.task41.topadm.in.txt
cat /etc/postfix/dkim/mail.task41.topadm.in.txt
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjlluUlx5E2SuShzxfpmIi4qOwY9uamLYx3M22yUFxcZH9CGiVzAuwDRP3yWUePHoPz9mQBtSnl1RRfm5u1+VGnQL6vFa4d6yqNnTiBK9kmel+pqle3Os9rSaD9Kiu1vevA8B3RZZ79Oiu/KxPQG3LTUlFzKekVPgg5znozk7uAwIDAQAB" ) ; ----- DKIM key mail for task41.topadm.in
Убираем кавычки, лишние проблемы и создаем txt запись в dns.
Читайте также: Как защитить домен от спуфинга и спама с помощью DMARC
Как создать DKIM запись для доменов не на Ваших NS
Порядок действий такой:
- Установить для домена наши NS.
- Включить DKIM в разделе «Почтовые ящики» в нашей панели.
- Скопировать сформированную TXT-запись для поддомена hosting._domainkey любым способом, например: Выполнить команду dig hosting._domainkey.ваш_домен.com txt. Воспользоваться онлайн-сервисом вроде dmarcian.com/dkim-inspector/ и указать там ваш домен и селектор hosting
- Полученную запись добавить в настройки домена в панели Cloudflare:
Тип записи — TXT Имя — hosting._domainkey Содержимое — данные полученной записи
- Вернуть для домена NS Cloudflare.
Расширьте свои знания
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах