Postfix настройка OpenDKIM

В этой записи я опишу процесс настройки OpenDKIM для почтового сервера Postfix. Следует отменить, этот этап настроек следует выполнять очень внимательно. Можно запутаться на этапе подготовки к генерации ключей. Поэтому я выделил эту задачу в отдельный пост.

Устанавливаем OpenDKIM и копируем базовый настройки файл:

pacman -S opendkim
install -d /etc/opendkim

Создайте файл:

nano /etc/opendkim/opendkim.conf

Скопируйте в конец файла либо примените настройки к следующему виду:

Mode                    sv
SendReports yes
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
Socket                  local:/run/opendkim/opendkim.sock
UMask                   002

Создайте файл /etc/opendkim/SigningTable. Селектор можно выбрать любой, у меня — mail, домен — codebeer.ru меняете на ваш.
Имя DKIM-записи в DNS всегда такое <selector>._domainkey.<domain>

*@codebeer.ru mail._domainkey.codebeer.ru

Создайте файл /etc/opendkim/KeyTable

mail._domainkey.codebeer.ru  codebeer.ru:mail:/etc/opendkim/keys/codebeer.ru/mail.private

Аналогично селектор указываете такой же, как в предыдущем пункте, у меня mail, домен codebeer.ru, вы меняете значения на свои.

Создайте файл TrustedHosts

cat > /etc/opendkim/TrustedHosts <<'EOF'
127.0.0.1
localhost
::1
mx.codebeer.ru
EOF

Домен codebeer.ru меняете на ваш.

Далее генерируем ключи.

pacman -S perl
mkdir -p /etc/opendkim/keys/codebeer.ru
opendkim-genkey -b 2048 -d codebeer.ru -D /etc/opendkim/keys/codebeer.ru -s mail -v

Назначаем права на файлы:

chown -R opendkim:opendkim /etc/opendkim/keys/codebeer.ru
chmod 0400 /etc/opendkim/keys/codebeer.ru/mail.private

Установите права на сокет, для этого добавьте postfix в группу opendkim:

gpasswd -a postfix opendkim

Добавляем OpenDKIM в автозагрузку и перезапускаем Postfix:

systemctl enable --now opendkim
systemctl restart postfix

Авто-перезапуск при падении opendkim:

mkdir -p /etc/systemd/system/opendkim.service.d

cat > /etc/systemd/system/opendkim.service.d/restart.conf <<'EOF'
[Unit]
StartLimitIntervalSec=300
StartLimitBurst=5

[Service]
Restart=on-failure
RestartSec=5s
EOF

Применяем настройки:

systemctl daemon-reload
systemctl restart opendkim

Убиваем процесс opendkim, что бы убедится что он подымится снова:

pkill -9 opendkim
sleep 2
systemctl status opendkim --no-pager

Добавляем запись DKIM в DNS

Добавляем в DNS TXT запись с именем mail._domainkey и значением:

cat /etc/opendkim/keys/codebeer.ru/mail.txt

Важно удалить все кавычки в середине текста. Запись должна выглядеть следующим образом:

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuxfSSuNL66k9K7d/maqp39cMANuqlHthD+4w7F9ck0NOFbKoYwJxFL7XiZi2tQPM/8HdITuKPG/a9n2qiLtTWzKzv5bsoY4bnjkCzycRcV/uK8XrfZg6yni3UmaFuN10q6bJVZ77ePRIjqQGiHUrgTqTiS6X/EmxiMmPNUf5BQhDKw/N3rdf2gm8suVVP1je+YZrVqdnXesyEJl3SqBuIGZrp8x9BD5abkF4069BsSOm5OqLsr6Eioc/7zWTETraNcGbPROtNKQenEEmWnPpGFYgxtxcagSadm05vjVtKUIukGABot2UleLVsZDwiFGfnSmStvWXQmFWlu1Rtne9cwIDAQAB"

Тест ключа:

[root@mx opendkim]# opendkim-testkey -d codebeer.ru -s mail -vvv
opendkim-testkey: using default configfile /etc/opendkim/opendkim.conf
opendkim-testkey: checking key 'mail._domainkey.codebeer.ru'
opendkim-testkey: key not secure
opendkim-testkey: key OK

Следующий этап настройки Настройка Dovecot