Настройка OpenDKIM

sudo apt-get install opendkim opendkim-tools
sudo  mkdir /etc/postfix/dkim/
sudo opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail.example.com

В /etc/postfix/dkim/ появится файлы с приватным и публичным ключом для домена example.com

sudo chmod 600 /etc/postfix/dkim/example.com.private
sudo chown -R opendkim /etc/postfix/dkim/
  sudo vim /etc/opendkim.conf
Syslog yes
#Режим подписи и проверка подписей
Mode sv
#Указываем список ключей
KeyTable file:/etc/postfix/dkim/keytable
#Соответствие ключей и доменов
SigningTable file:/etc/postfix/dkim/signingtable
#имя_ключа домен:селектор:/путь/до/ключа
mail._domainkey.example.com example.com:mail:/etc/postfix/dkim/example.com.private
#домен имя_ключа
example.com mail._domainkey.example.com
#можно указать несколько доменов
#example.net www._domainkey.example.net
SOCKET="inet:8891@localhost"
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
sudo systemctl restart postfix 
sudo systemctl restart opendkim 
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 должны быть подписаны Возможные варианты:

  1. all - все сообщения должны быть подписаны
  2. discardable - отклонять не подписанные сообщения
  3. 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