Настройка OpenDKIM
1.Установка OpenDKIM
sudo apt-get install opendkim opendkim-tools sudo mkdir /etc/postfix/dkim/
2.Cоздание ключей для домена example.com
sudo opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail.example.com
В /etc/postfix/dkim/ появится файлы с приватным и публичным ключом для домена example.com
3. Установка прав на приватный ключ
sudo chmod 600 /etc/postfix/dkim/example.com.private
4.Смена владельца директории
sudo chown -R opendkim /etc/postfix/dkim/
5.Пример файла Файл /etc/opendkim.conf
sudo vim /etc/opendkim.conf
Syslog yes #Режим подписи и проверка подписей Mode sv #Указываем список ключей KeyTable file:/etc/postfix/dkim/keytable #Соответствие ключей и доменов SigningTable file:/etc/postfix/dkim/signingtable
6. Содержимое файла /etc/postfix/dkim/keytable
#имя_ключа домен:селектор:/путь/до/ключа mail._domainkey.example.com example.com:mail:/etc/postfix/dkim/example.com.private
7. Содержимое /etc/postfix/dkim/signingtable
#домен имя_ключа example.com mail._domainkey.example.com #можно указать несколько доменов #example.net www._domainkey.example.net
8. В /etc/default/opendkim оставляем только это, остальные SOCKET комментируем
SOCKET="inet:8891@localhost"
9. Добавляем в /etc/postfix/main.cf:
milter_default_action = accept milter_protocol = 2 smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891
10. Перезапуск сервисов
sudo systemctl restart postfix sudo systemctl restart opendkim
11. Настраиваем в DNS
sudo cat /etc/postfix/dkim/example.com.txt
#p=MIID…AQAB берем из файла /etc/postfix/dkim/example.com.txt
Хост Указатель TTL mail._domainkey v=DKIM1; g=*; k=rsa; p=MIID...AQAB 300
Указываем, что все письма для домена example.com должны быть подписаны Возможные варианты:
- all - все сообщения должны быть подписаны
- discardable - отклонять не подписанные сообщения
- unknown - аналогично отсутствию записи
Хост Указатель TTL _adsp._domainkey dkim=all 300
Также проверить DKIM можно с помощью утилиты opendkim-testkey:
# opendkim-testkey -d example.com -s mail -vvv -k /etc/opendkim/keys/mail.private opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key 'mail._domainkey.example.com' opendkim-testkey: key not secure opendkim-testkey: key OK
#-all означает, что письмо, которое не прошло проверку, будет отклонено
Хост Указатель TTL @ v=spf1 ip4:server_ip -all 300