Создаём директорию
Генерируем ключ
1
| openssl genrsa -out /etc/exim/dkim/example.com.key 1024
|
из него генерируем публичную часть ключа
1
| openssl rsa -in /etc/exim/dkim/example.com.key -out /etc/exim/dkim/example.com.key.pub -pubout
|
Прописываем в DNS публичную часть ключа
1
| mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..."
|
Проверяем что запись корректно добавилась на DNS
dig mail._domainkey.example.com TXT
Настраиваем Exim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| begin transports
# тут добавляем наш DKIM
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /etc/exim/dkim/${lc:${domain:$h_from:}}.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
remote_smtp:
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_private_key = DKIM_PRIVATE_KEY
dkim_selector = mail
dkim_canon = relaxed
dkim_strict = yes
|
Не забываем перезагрузить Exim (service exim reload
)
Параллельно обычно приходится настраивать SPF и DMARC. Это не сложно. Добавляем на DNS подобные записи:
1
2
| example.com. IN TXT "v=DMARC1\;p=reject"
example.com. IN TXT "v=spf1 mx a ip4:222.222.222.222 ~all"
|
222.222.222.222 это IP для примера, обычно приходится прописывать, когда почта отправляется с интерфейсного IP, который не совпадает с записями A, MX… статья не закончена