Ставим OpenDKIM — он будет подписывать всю исходящую почту:
sudo apt install -y opendkim opendkim-tools
Генерируем ключи для каждого домена отдельно. Один ключ на все домены — плохая идея:
sudo mkdir -p /etc/opendkim/keys/{company.ru,brand.ru,support.ru}
for domain in company.ru brand.ru support.ru; do
sudo opendkim-genkey -b 2048 -d $domain -D /etc/opendkim/keys/$domain -s mail
sudo chown -R opendkim:opendkim /etc/opendkim/keys/$domain
done
Настраиваем /etc/opendkim.conf:
Syslog yes
Mode sv
Canonicalization relaxed/simple
Domain company.ru,brand.ru,support.ru
KeyTable /etc/opendkim/key.table
SigningTable refile:/etc/opendkim/signing.table
Socket local:/var/spool/postfix/opendkim/opendkim.sock
PidFile /run/opendkim/opendkim.pid
TrustAnchorFile /usr/share/dns/root.key
UserID opendkim
Таблица ключей /etc/opendkim/key.table — здесь связываем домен с файлом приватного ключа:
mail._domainkey.company.ru company.ru:mail:/etc/opendkim/keys/company.ru/mail.private
mail._domainkey.brand.ru brand.ru:mail:/etc/opendkim/keys/brand.ru/mail.private
mail._domainkey.support.ru support.ru:mail:/etc/opendkim/keys/support.ru/mail.private
Таблица подписей /etc/opendkim/signing.table — указываем, какие домены подписываем:
*@company.ru mail._domainkey.company.ru
*@brand.ru mail._domainkey.brand.ru
*@support.ru mail._domainkey.support.ru
В /etc/postfix/main.cf подключаем milter — именно через него Postfix будет передавать письма в OpenDKIM:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
Создаём директорию для сокета и перезапускаем оба сервиса:
sudo mkdir -p /var/spool/postfix/opendkim
sudo chown opendkim:postfix /var/spool/postfix/opendkim
sudo systemctl restart opendkim postfix
И не забудьте про DNS. Для каждого домена нужна TXT-запись с публичным ключом DKIM. Содержимое берётся из файла /etc/opendkim/keys/company.ru/mail.txt — он генерируется автоматически и содержит всё нужное.
Оставить комментарий