Рейтинг:1

Добавлен dkimproxy в почтовый цикл OpenSMTPD... при отправке на мой собственный домен

флаг in

У меня есть хорошо работающая конфигурация OpenSMTPD, и я добавил к ней dkimproxy.

Все работает хорошо, и почтовые тестеры и т. д., все сообщают, что у меня есть правильная подпись DKIM, и моя оценка электронной почты составляет 10/10 и т. д.

Проблема в ...

Если я попытаюсь отправить электронное письмо с адреса [email protected] на адрес [email protected], почтовый сервер зациклится, и письмо никогда не будет отправлено. я вижу это в почтовый журнал:

15 ноя 08:34:13 почта dkimproxy.out[38686]: Подписание DKIM - подписано; message-id=<[email protected]>, signer=<[email protected]>, from=<[email protected]>
15 ноября 08:34:13 почта smtpd[33463]: 4dea90938ef29e98 сообщение smtp msgid=0b62ff80 size=104666 nrcpt=1 proto=ESMTP
15 ноября 08:34:13 почта smtpd[33463]: 4dea90938ef29e98 smtp конверт evpid=0b62ff80eb408785 from=<> to=<[email protected]>                                                               
15 ноября 08:34:13 почта smtpd[33463]: 4dea9092f4274d88 mta delivery evpid=6fe8c750a74f16ac from=<> to=<[email protected]> rcpt=<-> source="200.100.240.135" relay="200.100.240.135 (mail.mydomain.com)" delay=1s result="Ok" stat="250 2.0.0 0b62ff80 Сообщение принято к доставке"

... и он повторяется так, может быть, 50 раз снова и снова - в конце концов он сдается с этой ошибкой:

15 ноября 08:34:18 почта smtpd[33463]: предупреждение: обнаружена петля                                                                                                                                            
15 ноября 08:34:18 mail smtpd[33463]: 4dea9097226c93aa smtp failed-command command="DATA" result="500 5.4.6 Обнаружена петля маршрутизации: Обнаружена петля"                                                    
15 ноября 08:34:18 почта smtpd[33463]: 4dea90969c6cf495 mta delivery evpid=49514d020281ac48 from=<> to=<[email protected]> rcpt=<-> source="200.100.240.135" relay="200.100.240.135 (mail.mydomain.com)" delay=1s result="PermFail" stat="500 5.4.6 Обнаружена петля маршрутизации: Обнаружена петля"

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

# кошка dkimproxy_in.conf

# указать, какой адрес/порт должен прослушивать DKIMproxy
слушать 200.100.240.135:10025

# указать, на какой адрес/порт DKIMproxy пересылает почту
реле 200.100.240.135:10026


# кот dkimproxy_out.conf 

# указать, какой адрес/порт должен прослушивать DKIMproxy
слушать 200.100.240.135:10027

# указать, на какой адрес/порт DKIMproxy пересылает почту
реле 200.100.240.135:10028

# укажите, для каких доменов DKIMproxy может подписывать (через запятую, без пробелов)
домен mydomain.com

# указать, какие подписи добавить
подпись dkim(c=расслабленный)
ключи домена подписи (c=nofws)

# указать расположение закрытого ключа
ключевой файл /root/dkim.private.key

# указываем селектор (т.е. имя ключевой записи, помещаемой в DNS)
селектор1

# контролировать, сколько процессов использует DKIMproxy
# - больше информации об этих опциях (и других) можно найти по
# запущен `perldoc Net::Server::PreFork'.
#мин_серверов 5
#min_spare_servers 2

...и на этом все...спасибо.

РЕДАКТИРОВАТЬ - вот opensmtpd.conf:

файл псевдонимов таблицы:/usr/local/etc/mail/aliases

filter check_dyndns фаза подключения соответствует регулярному выражению rdns \
    { '.*\.dyn\..*', '.*\.dsl\..*' } \
    отключить «550 без подключения к жилым помещениям»

filter check_rdns совпадение фазы подключения !rdns \
    отключить "550 без rDNS"

filter check_fcrdns совпадение фазы соединения !fcrdns \
    отключить "550 без FCrDNS"

слушать фильтр 200.100.240.135 {check_dyndns, check_rdns, check_fcrdns}

слушать на 200.100.240.135 порт 10028 тег DKIM

слушать отправку порта 200.100.240.135

действие "local_mail" псевдоним mbox <псевдонимы>
действие "relay_dkim" узел ретрансляции smtp://200.100.240.135:10027
действие "исходящий" ретранслятор helo mail.mydomain.com
    
совпадение с любой почтой-от "[email protected]" действие "local_mail"

сопоставить тег DKIM для любого действия "исходящее"
соответствует любому действию "relay_dkim"

совпадение с любым для домена "mydomain.com" действие "local_mail"
соответствует локальному действию "local_mail"

совпадение с любой авторизацией для любого действия "исходящее"
соответствует любому действию "исходящее"
Paul avatar
флаг cn
Какую ОС вы используете? Не могли бы вы опубликовать `smtpd.conf`?
user227963 avatar
флаг in
ОС FreeBSD. Я могу опубликовать smtpd.conf, но, опять же, все работает отлично - отличный результат от mail-tester, подпись DKIM великолепна ... все работает отлично, и я мог отправить свой собственный домен по электронной почте до добавления dkimproxy ... это только ПОСЛЕ добавления dkimproxy, что получаю петлю почты с собственным доменом....
user227963 avatar
флаг in
ОК, добавил smtpd.conf...
Paul avatar
флаг cn
Если все они находятся на одном сервере, не рекомендуется использовать lo0 или 127.0.0.1. Есть ли какая-то особая причина, по которой вы используете DKIMproxy? Похоже, что этот пакет не обновлялся лет десять или около того, плюс может быть проще найти примеры конфигурации для инструментов, используемых сопровождающими OpenSMTPD, таких как `rspamd`, который находится в портах FreeBSD, насколько я могу судить, и находится в `smtpd.conf(5)`. Вычислять ближе к порядку совпадения, поскольку `smtpd` «правила сопоставления оцениваются последовательно, причем выигрывает первое совпадение».
user227963 avatar
флаг in
Я должен использовать dkimproxy, потому что есть странная проблема совместимости бинарных файлов freebsd с rspamd (и senderscore). Итак, я использую dkimproxy, который, опять же, ОТЛИЧНО РАБОТАЕТ ... это просто странная петля, отправляющая в мой собственный домен из моего собственного домена ...
Paul avatar
флаг cn
Есть ли причина, по которой вы используете IP-адрес внешнего интерфейса вместо обратной связи?
Рейтинг:1
флаг cn

Этот ответ написан при условии, что нет причин использовать внешний интерфейс для внутренних процессов. Вопрос не включает pf.conf конфигурация, которая может иметь настройки, конфликтующие с обычной обработкой почты при использовании интерфейса, отличного от loopback, и должна иметь установить пропуск на вот или аналогичный настроенный.

smtpd.conf:

# Убедитесь, что это правильное расположение псевдонимов, что обычно
# находится в /etc/mail/aliases. Если вы изменили псевдонимы
# по умолчанию обязательно запустите newaliases.
файл псевдонимов таблицы:/usr/local/etc/mail/aliases

filter check_dyndns фаза подключения соответствует регулярному выражению rdns \
    { '.*\.dyn\..*', '.*\.dsl\..*' } \
    отключить «550 без подключения к жилым помещениям»

filter check_rdns совпадение фазы подключения !rdns \
    отключить "550 без rDNS"

filter check_fcrdns совпадение фазы соединения !fcrdns \
    отключить "550 без FCrDNS"

слушать на 127.0.0.1 порт 10028 тег DKIM
слушать фильтр 200.100.240.135 \
    {check_dyndns, check_rdns, check_fcrdns}
слушать отправку порта 200.100.240.135

действие "local_mail" псевдоним mbox <псевдонимы>
действие "relay_dkim" узел ретрансляции smtp+notls://127.0.0.1:10027
действие "исходящий" ретранслятор helo mail.mydomain.com

сопоставить тег DKIM для любого действия "исходящее"
сопоставить почту от «[email protected]» с действием «local_mail»
совпадение с любым для домена "mydomain.com" действие "local_mail"
совпадение с любой авторизацией для любого действия "исходящее"
соответствует локальному действию "local_mail"
соответствует любому действию "relay_dkim"

# Я интерпретирую это как избыточное:
# соответствует любому действию "outbound"

# Эта исходная строка конфигурации кажется бессмысленной, потому что
# "mail-from" тоже "от любого", поэтому удалено "от любого"
# совпадение с любой почтой-от "[email protected]" действие "local_mail"

Даже не смотря на dkimproxy_in.conf настроен, в настоящее время нет аутентификации заголовков DKIM в полученных сообщениях, так как это не настроено в исходном smtpd.conf, поэтому не добавлял.

dkimproxy_in.conf:

# указать, какой адрес/порт должен прослушивать DKIMproxy
слушать 127.0.0.1:10025

# указать, на какой адрес/порт DKIMproxy пересылает почту
реле 127.0.0.1:10026

dkimproxy_out.conf:

# указать, какой адрес/порт должен прослушивать DKIMproxy
слушать 127.0.0.1:10027

# указать, на какой адрес/порт DKIMproxy пересылает почту
реле 127.0.0.1:10028

# укажите, для каких доменов DKIMproxy может подписывать (через запятую, без пробелов)
домен mydomain.com

# указать, какие подписи добавить
подпись dkim(c=расслабленный)
ключи домена подписи (c=nofws)

# указать расположение закрытого ключа
ключевой файл /root/dkim.private.key

# указываем селектор (т.е. имя ключевой записи, помещаемой в DNS)
селектор1

# контролировать, сколько процессов использует DKIMproxy
# - больше информации об этих опциях (и других) можно найти по
# запущен `perldoc Net::Server::PreFork'.
#мин_серверов 5
#min_spare_servers 2
Paul avatar
флаг cn
Вероятно, это все еще требует некоторой настройки. Пожалуйста, протестируйте и прокомментируйте.
user227963 avatar
флаг in
Большое спасибо - это действительно решило петлю почты.

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

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