В этой записи я опишу процесс настройки OpenDKIM на Arch Linux. Следует отменить, этот этап настроек следует выполнять очень внимательно. Можно запутаться на этапе подготовки к генерации ключей. Поэтому я выделил эту задачу в отдельный пост.
Устанавливаем OpenDKIM и копируем базовый настройки файл:
pacman -S opendkim install -d /etc/opendkim cp /usr/share/doc/opendkim/opendkim.conf.sample /etc/opendkim/opendkim.conf
Далее уберите знак комментирования для перечисленных параметров /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
Автоперезапуск при падении opendkim:
mkdir -p /etc/systemd/system/opendkim.service.d cat > /etc/systemd/system/opendkim.service.d/restart.conf <<'EOF' [Service] Restart=on-failure RestartSec=5s StartLimitIntervalSec=300 StartLimitBurst=5 EOF
Применяем настройки:
systemctl daemon-reload systemctl restart opendkim
Убиваем процесс opendkim, что бы убедится что он подымится снова:
pkill -9 opendkim sleep 2 systemctl status opendkim --no-pager
Создайте файл /etc/opendkim/SigningTable. Селектор можно выбрать любой, у меня - mail, домен - codebeer.ru меняете на ваш.
*@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, вы меняете значения на свои.
Создайте файл /etc/opendkim/TrustedHosts
127.0.0.1 ::1 localhost .codebeer.ru
Домен 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
Добавляем в 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
Подключаем Postfix к OpenDKIM
Редактируем файл /etc/postfix/main.cf, нужно добавить в конец файла:
milter_default_action = accept milter_protocol = 6 smtpd_milters = unix:/run/opendkim/opendkim.sock non_smtpd_milters = $smtpd_milters
Установите права на сокет, для этого добавьте postfix в группу opendkim:
gpasswd -a postfix opendkim
Добавляем OpenDKIM в автозагрузку и перезапускаем Postfix:
sudo systemctl enable --now opendkim sudo systemctl restart postfix