Записи о добавлении OpenDKIM в Postfix + DMARC
сервер
Lastmod: 2024-08-21
Published: 2022-05-20

В последние годы строгие меры по определению спама вынудили меня установить DKIM на моем персональном почтовом сервере.
Это записи с этого процесса.

Обратитесь к дополнению от ноября 2023 года о настройке DMARC.

Дополнение от августа 2024 года

Я отказался от OpenDKIM и переключился на arcmilter.
Перешел с OpenDKIM на arcmilter и добавил поддержку ARC-подписей

Среда

  • Ubuntu 20.04

OpenDKIM

  • Установка
# apt install opendkim opendkim-tools
  • Создание директории для размещения ключей
# install -d /etc/opendkim/key
# cd !$
  • Генерация ключей (для нескольких доменов)
# install -d masa23.jp
# opendkim-genkey -D masa23.jp -d masa23.jp
# install -d example.jp
# opendkim-genkey -D example.jp -d example.jp

Создаются default.private и default.txt в каждой директории
  • Изменение владельца
# chown -R opendkim:opendkim /etc/opendkim/
  • Настройка OpenDKIM
# vi /etc/opendkim.conf
Socket                  inet:8892@localhost

#Domain
#KeyFile
#Selector
KeyTable refile:/etc/opendkim/key_table
SigningTable refile:/etc/opendkim/signing_table
# cat << _EOF_ > /etc/opendkim/key_table
default._domainkey.masa23.jp masa23.jp:default:/etc/opendkim/key/masa23.jp/default.private
default._domainkey.example.jp example.jp:default:/etc/opendkim/key/example.jp/default.private
_EOF_
# cat << _EOF_ > /etc/opendkim/signing_table
*@masa23.jp default._domainkey.masa23.jp
*@example.jp default._domainkey.example.jp
_EOF_
  • Запуск и настройка OpenDKIM
# systemctl start opendkim
# systemctl enable opendkim

Настройка Postfix

  • Добавление в качестве milter
# vi /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:8892
non_smtpd_milters = inet:127.0.0.1:8892
  • Проверка конфигурации
# postfix check
  • Перезагрузка postfix
# systemctl reload postfix

Регистрация открытого ключа в DNS

  • Проверка открытого ключа
# cat /etc/opendkim/key/masa23.jp/default.txt
default._domainkey      IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5jqnqaMgv8fFl8yQHDfPdU/7j0YvFza2YIMIYivVV/CaItZizlkY6emj9o6MZBK3RU9ni4BPCQ1do64+HhZHUanAPojZd0PsyusCBNBFU1wY6/xpcuoPf+Ru15UvLI2/o+9ElO4vF3l2YoTSOE5ljnBNd2EWihqmUQazEpu3PT1a7BbHZkW/7WdK5ipgU8+u/iyRai0Dnrhgoi"
          "ArzoDjFgm4TRJQGhD+EUOmnwFa3Xz5eQg50IigS7WKyHwF3HSZPzrkEFf5hIXYdoeIr6OqKg5sldONF/hY9voEITHZqtHOnrBlaBH2DTTI6uQH7Uc4JLv12xD6Gh1rlZy5zdMTwQIDAQAB" )  ; ----- DKIM ключ по умолчанию для masa23.jp

Запишите эту запись в DNS.

  • Также настройте ADSP
    На этот раз нет необходимости быть таким строгим, поэтому я оставлю это в состоянии unknown.
_adsp._domainkey    IN  TXT "dkim=unknown"

Дополнение от ноября 2023 года

Похоже, что ADSP был отменен.

Таким образом, предполагая, что SPF-запись уже установлен, настраиваем DMARC.

  • Настройка DMARC
_dmarc  IN  TXT "v=DMARC1; p=quarantine;"

Значение p может быть одним из: none, quarantine, reject.

qзначение
noneОсновной владелец не запрашивает никаких конкретных действий по поводу доставки сообщения.
quarantineВладелец домена хочет, чтобы почтовый получатель обрабатывал письма, не прошедшие проверку механизма DMARC, как подозрительные.
rejectВладелец домена хочет, чтобы почтовый получатель отклонил письма, не прошедшие проверку механизма DMARC.