Содержание

Настройка 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 должны быть подписаны Возможные варианты:

  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