Рейтинг:6

Нет заголовков DKIM в отправленных письмах от постфикса

флаг pl

У меня есть два постфикса, один для получения писем, а другой для отправки писем, и у меня возникают проблемы с подписью dkim для исходящих писем. я следил за этим руководство.

Журналы также не помогают мне указать на основную проблему. OpenDKIM работает нормально:

▪ opendkim.service — OpenDKIM DomainKeys Identified Mail (DKIM) Milter
     Загружено: загружено (/lib/systemd/system/opendkim.service; включено; предустановка поставщика: включена)
     Активен: активен (работает) с пт 18.06.2021 17:39:40 UTC; 4 с назад
       Документы: человек:opendkim(8)
             человек:opendkim.conf(5)
             мужчина:opendkim-genkey(8)
             мужчина:opendkim-genzone(8)
             мужчина: opendkim-testadsp(8)
             мужчина: opendkim-тестовый ключ
             http://www.opendkim.org/docs.html
    Процесс: 246310 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (код=выход, статус=0/УСПЕХ)
   Основной PID: 246321 (opendkim)
      Заданий: 7 (лимит: 4681)
     Память: 2,8 М
     Группа CG: /system.slice/opendkim.service
             ââ246321 /usr/sbin/opendkim -x /etc/opendkim.conf
             ââ246322 /usr/sbin/opendkim -x /etc/opendkim.conf

18 июня 17:39:40 testmailcdo systemd[1]: Запуск OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
18 июня, 17:39:40 testmailcdo systemd[1]: запущен Milter OpenDKIM DomainKeys Identified Mail (DKIM).
18 июня, 17:39:40 testmailcdo opendkim[246322]: запуск OpenDKIM Filter v2.11.0 (аргументы: -x /etc/opendkim.conf)

Мой постфикс main.cf:

milter_default_action = принять
milter_protocol = 6
#smtpd_milters = инет:локальный:8891
smtpd_milters = локальный:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters

master.cf:

smtp инет n - y - - smtpd
#smtp inet n - y - 1 постскрин
#smtpd проход - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
подача инет н - у - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=может
  -o smtpd_sasl_auth_enable=да
# -o smtpd_tls_wrappermode=нет
# -o smtpd_tls_auth_only=yes
  -o smtpd_enforce_tls=да
# -o smtpd_reject_unlisted_recipient=нет
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=$smtpauth_recipient_restrictions
# -o smtpd_relay_restrictions=permit_sasl_authenticated,отклонить
  -o smtpd_client_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_sasl_tls_security_options=нет анонимности

opendkim.conf:

# Это базовая конфигурация, которую можно легко адаптировать к стандартному
# установка. Дополнительные параметры см. в opendkim.conf(5) и/или
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.

# Войти в системный журнал
Системный журнал да
# Требуется для использования локального сокета с MTA, которые обращаются к сокету как к не-
# привилегированный пользователь (например, Postfix)
UMask 007

# Подпишите например.com с помощью ключа в /etc/dkimkeys/dkim.key, используя
# селектор '2007' (например, 2007._domainkey.example.com)
#Домен testmailcdo.apollogglobal.net
#KeyFile /etc/dkimkeys/dkim.key
#Селектор mail1

# Часто используемые опции; закомментированные версии показывают значения по умолчанию.
Канонизация расслабленная/расслабленная
Режим св
Субдомены нет

Автоперезагрузка да
AutoRestartRate 10/1M
Фон да
DNSTimeout 5
ПодписьАлгоритм rsa-sha256

# Сокет smtp://localhost
#
# ## Спецификация сокета
# ##
# ## Называет сокет, в котором этот фильтр должен прослушивать milter-соединения
# ##
# ## Называет сокет, в котором этот фильтр должен прослушивать milter-соединения
# ## из МТА. Необходимый. Должен быть в одной из следующих форм:
# ##
# ## inet:port@address для прослушивания на определенном интерфейсе
# ## inet:port для прослушивания на всех интерфейсах
# ## local:/path/to/socket для прослушивания сокета домена UNIX
#
#Сокет инет:8891@localhost
#Локальный сокет:/var/spool/postfix/opendkim/opendkim.sock
#Локальный сокет:/var/spool/postfix/opendkim/opendkim.sock
Локальный сокет:/var/spool/postfix/opendkim/opendkim.sock
## имя файла PidFile
### по умолчанию (нет)
###
### Имя файла, в который фильтр должен записать свой pid перед началом
### обычные операции.
#
PidFile /var/run/opendkim/opendkim.pid


# Всегда перезаписывать From (подписывать, используя фактическое From и нулевое From, чтобы предотвратить
# поля заголовка вредоносных подписей (от и/или другие) между подписывающей стороной
# и верификатор. От по умолчанию в пакете Debian переопределено.
# потому что он часто является идентификационным ключом, используемым системами репутации и, таким образом,
# несколько чувствительно к безопасности.
OversignHeaders From

## Имя файла ResolverConfiguration
## по умолчанию (нет)
##
## Задает файл конфигурации для передачи в библиотеку Unbound, которая
##
## Задает файл конфигурации для передачи в библиотеку Unbound, которая
## выполняет DNS-запросы, используя протокол DNSSEC. См. Несвязанный
## документация на http://unbound.net для ожидаемого содержимого этого файла.
## Результаты одновременного использования этого параметра и параметра TrustAnchorFile
## время не определено.
## В Debian файл /etc/unbound/unbound.conf поставляется как часть рекомендуемого
## несвязанный пакет

# Конфигурация разрешения /etc/unbound/unbound.conf

## имя файла TrustAnchorFile
## по умолчанию (нет)
##
## Указывает файл, из которого следует считывать данные якоря доверия при выполнении
## Запросы DNS и применение протокола DNSSEC. См. Несвязанную документацию
## на http://unbound.net для ожидаемого формата этого файла.

TrustAnchorFile /usr/share/dns/root.key

## ID пользователя
### по умолчанию (нет)
###
### Сменить пользователя на "userid" перед началом нормальной работы? Может включать
### также идентификатор группы, отделенный от идентификатора пользователя двоеточием.
#
ID пользователя
# Сопоставить домены в адресах отправителей с ключами, используемыми для подписи сообщений
Файл KeyTable: /etc/opendkim/key.table
Файл SigningTable: /etc/opendkim/signing.table

# Хосты, которые следует игнорировать при проверке подписи
Внешний список игнорирования /etc/opendkim/trusted.hosts

# Набор внутренних хостов, почта которых должна быть подписана
Внутренние хосты /etc/opendkim/trusted.hosts

Логи при отправке почты влияют на доверенные .hosts

18 июня 18:14:08 testmailcdo postfix/submission/smtpd[247218]: подключиться от неизвестного[202.60.9.10]
18 июня 18:14:08 testmailcdo postfix/submission/smtpd[247218]: 6D0D413C124: client=unknown[202.60.9.10]
18 июня 18:14:08 testmailcdo postfix/cleanup[247221]: 6D0D413C124: message-id=<[email protected]>
18 июня, 18:14:08 testmailcdo postfix/qmgr[246787]: 6D0D413C124: from=<[email protected]>, size=601, nrcpt=1 (очередь активна)
18 июня 18:14:08 testmailcdo postfix/submission/smtpd[247218]: отключиться от неизвестного[202.60.9.10] ehlo=1 mail=1 rcpt=1 data=1 quit=1 command=5
18 июня, 18:14:10 testmailcdo postfix/smtp[247222]: 6D0D413C124: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[142.250.157.26]:25, delay= 1.8, задержки=0.06/0/0.82/0.97, dsn=2.0.0, статус=отправлено (250 2.0.0 OK 1624040055 p7si10315751pjl.99 - gsmtp)
18 июня 18:14:10 testmailcdo postfix/qmgr[246787]: 6D0D413C124: удалено

ls -l /var/spool/postfix/opendkim/opendkim.sock выходы:

srwxrwx--- 1 opendkim opendkim 0 18 июня 17:39 /var/spool/postfix/opendkim/opendkim.sock

Я действительно потерян. Любые предложения и помощь будут очень признательны!

anx avatar
флаг fr
anx
Пересмотрите `milter_default_action` - возможно, вы на самом деле не хотите, чтобы это *fail-open* (`accept`), но вместо этого все проблемы с DKIM были переведены на остановку всего (`tempfail`, что может быть более безопасным выбором с точки зрения потери почты из-за того, что некоторые получатели делают с почтой, которую они считают несанкционированной).
user13539846 avatar
флаг pl
Журналы @anx при обработке почты, затронутой `trusted.hosts`, ничего не показывают о вызове milter. В любом случае, я обновил сообщение журналами постфикса при отправке почты.
Nikita Kipriyanov avatar
флаг za
Может быть, "исходящая" почта обрабатывается другой службой `smtpd`, у которой отключен milter (например, `submission`? Проверьте `master.cf`). не могу связаться с ним. Должно быть, с тех пор его починили, но кто знает...
Ginnungagap avatar
флаг gu
Можете ли вы добавить вывод `ls -l /var/spool/postfix/opendkim/opendkim.sock` к вопросу? Я подозреваю, что ваш сокет разрешает только opendkim:opendkim, а postfix работает от имени другого пользователя.
user13539846 avatar
флаг pl
@NikitaKipriyanov Я добавил к вопросу свой `master.cf`. Я считаю, что это обрабатывается с помощью `submission`
user13539846 avatar
флаг pl
@Ginnungagap Я добавил вывод `ls -l /var/spool/postfix/opendkim/opendkim.sock`. Я не очень хорошо знаком с linux, но не должен ли `sudo chown opendkim:postfix /var/spool/postfix/opendkim`, как шаг в руководстве, решить проблему с разрешениями?
user13539846 avatar
флаг pl
@NikitaKipriyanov Есть ли способ заставить «отправку» использовать opendkim milter?
Nikita Kipriyanov avatar
флаг za
Согласно вашему master.cf, отправка Postfix также должна использовать smtpd milters. Виновником должны быть неправильные режимы (0770 для opendkim:opendkim).
Рейтинг:1
флаг za

У вас неправильные режимы на opendkim.sock. Это 0770 то есть RWX владельцем, RWX по группам, ничего для других, где есть владелец опендким и группа опендким, но Postfix часто запускается как постфикс: почта или что-то в этом роде, чтобы оно попало в категорию "другие" и было запрещено в доступе. Вы должны найти упоминания об этом в журналах Postfix (в Debian мы изучаем /var/журнал/mail.err).

Также обратите внимание, чаун вы сделали, действуя на каталог, содержащий сокет, а не сам сокет, так что этого недостаточно.

Попробуйте установить 0777 на opendkim.sock как одноразовое тестовое решение:

chmod 0777 /var/spool/postfix/opendkim/opendkim.sock

Если это поможет, мы на правильном пути. OpenDKIM пересоздает сокет с прежними режимами при каждом перезапуске, поэтому режимы будут сбрасываться, поэтому это решение одноразовое. Чтобы сделать его постоянным, добавьте постфикс пользователя (или любой учетной записи, smtpd подбегает) в опендким group, поэтому к ней будет применяться вторая «7» (групповой доступ, которому разрешен):

gpasswd -постфикс opendkim

Альтернативно (например, если smtpd проходит под никто), вы можете немного изменить сценарий запуска для OpenDKIM, чтобы он устанавливал режим 0777 после создания сокета.

user13539846 avatar
флаг pl
Я ценю вашу помощь, сэр, но, к сожалению, после запуска `chmod 0777 /var/spool/postfix/opendkim/opendkim.sock` и преобразования opendkim.sock в `srwxrwxrwx 1 opendkim opendkim 0 19 июня 14:21 /var/spool/postfix Отправленные письма /opendkim/opendkim.sock` по-прежнему не содержат dkim в заголовках. Также, когда я проверял `/var/log/mail.err`, он был пуст.
user13539846 avatar
флаг pl
Кроме того, я попытался использовать `inet`, поскольку сокет указывал на localhost, изменил milters postfix smtpd и milters не smtpd, чтобы использовать `inet:localhost:8891`, но это не помогает. Письма до сих пор не подписаны.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.