DKIM, или DomainKeys Identified Mail — это стандартный протокол аутентификации электронной почты, который использует криптографию для проверки подлинности ваших сообщений.
С помощью dkim вся исходящая почта сервера подписывается электронной цифровой подписью, связанной с именем домена. Открытый ключ шифрования с помощью DNS публикуется в txt записи. Таким образом, удаленный сервер, при получении письма от вас, сравнивает цифровую подпись с опубликованным в DNS открытым ключом вашего домена. Если всё в порядке, то считает, что ваше письмо в самом деле пришло от вас, а не от мошенников. То есть с помощью этой технологии можно однозначно идентифицировать отправителя.
Найти на сервере каталог dkim
find / -name dkim
Внутри будет файл с приватным и публичным ключом. Нам нужен публичны ключ. Примерное содержимое файла:
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAA...................M3gn6P7BAU0fBePlivzRLPv6pmksWcGXqoOTAGQDftPO47CMYXOBhaTaLZluQIDAQAB
Создаем TXT запись mail._domainkey и в качестве значения вставляем
В записи mail._domainkey - mail - это селектор
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAA……
На файл с приватным ключом есть ссылка из конфига почтового сервера exmim, postfix и др.
То есть в DNS азмещаем публичный ключ, а из конфига почтового серывера ссылаемся на приватный
apt install opendkim opendkim-tools
Создаем директорию для хранения ключей:
mkdir -p /etc/postfix/dkim && cd /etc/postfix/dkim
Генерируем ключи для домена:
opendkim-genkey -D /etc/postfix/dkim/ -d dtz.in.ua -s mail
dtz.in.ua имя почтового домена
mail селектор, я обычно указываю как имя самого сервера
На выходе получаете пару файлов — закрытый (приватный) и открытый ключ. Закрытый останется на сервере, открытый будет опубликован в DNS.
Протестировать DKMI можно здесь: dkimcore.org