Рейтинг:0

Постфикс check_recipient_mx_access не работает

флаг us

Я настроил опцию check_recipient_mx_access в Postfix, чтобы отклонять электронные письма на домены с ошибками. У нас есть система, которая отправляет подтверждения авиаперелетов, и часто пользователи неправильно пишут контактный адрес электронной почты.

В документации указано следующее

check_recipient_mx_access тип: таблица
        Найдите в указанной базе данных access(5) хосты MX для
        RCPT TO домен и выполните соответствующее действие. Если нет МХ
        запись найдена, ищите записи A или AAAA, точно так же, как Postfix
        SMTP-клиент. Примечание: результат «ОК» не допускается в целях безопасности.
        причины. Вместо этого используйте DUNNO, чтобы исключить определенные хосты из
        запрещенные списки. Эта функция доступна в Postfix 2.1 и более поздних версиях.

Моя конфигурация выглядит следующим образом:

main.cf

smtpd_recipient_restrictions = reject_invalid_hostname,
                               reject_unauth_pipelining,
                               разрешение_mynetworks,
                               разрешение_sasl_аутентифицированный,
                               reject_unauth_destination,
                               хеш check_client_access:/etc/postfix/rbl_override,
                               хэш check_recipient_mx_access:/etc/postfix/bogus_mx,
 

В файл bogus_mx добавляется следующее правило:


54.159.98.68 ОТКЛОНИТЬ


когда я пытаюсь отправить электронное письмо через telnet, то же самое не отклоняется:


root@mailserver:~# telnet localhost 25
Попытка ::1...
Подключен к локальному хосту.
Экранирующий символ '^]'.
220 mail-front.kiusys.com ESMTP Postfix (Debian/GNU)
привет мне
250-mail-front.kiusys.com
250-ТРУБОПРОВОД
250-РАЗМЕР 10240000
250-ВРФЯ
250-ЭТРН
250-STARTTLS
250 РАСШИРЕННЫХ КОДОВ СОСТОЯНИЯ
250-8БИТИМИМ
250 ДСН
письмо от: [email protected]
250 2.1.0 Ок
Отправьте письмо по адресу: [email protected]
250 2.1.5 Ок
данные
354 Завершить данные с помощью <CR><LF>.<CR><LF>
Тема: Тест Telnet
Привет, дорогой,
.
250 2.0.0 Хорошо: в очереди как D161160E5D
уволиться
221 2.0.0 Пока
Соединение прервано внешним хостом.

Системная информация:

root@mailserver:/etc/postfix# postconf mail_version
почтовая_версия = 2.11.3

Нет доступных модулей LSB.
Идентификатор распространителя: Debian
Описание: Debian GNU/Linux 8.11 (джесси)
Релиз: 8.11
Кодовое имя: Джесси


Любые идеи??

С уважением,

Nikita Kipriyanov avatar
флаг za
Вероятно, это было *разрешено* до того, как дело дошло до этого `check_recipient_mx_access`. Это могло быть разрешено результатом `permit_mynetworks` или `check_client_access`. Для отладки добавьте IP-адрес вашего тестового клиента в список `debug_peer_list`, он будет регистрировать *расширенную* отладку для подключений от этого клиента (очень подробный) с подробными сведениями о каждой выполненной проверке (каждое сравнение будет регистрироваться). Это позволит вам определить, где разрешена почта.
Nikita Kipriyanov avatar
флаг za
Сказав это, что вы будете делать, если кто-то действительно зарегистрировал действующий домен `hotmaul.com`, и кому-то действительно нужно отправлять туда почту с вашего сервера? Вы сознательно выбрали некоторые имена как «неправильные» или «с ошибками» без какой-либо веской причины, просто потому, что «вы так видите» (и вы все равно не сможете уловить все возможные ошибки).
Nikita Kipriyanov avatar
флаг za
Кроме того, вместо того, чтобы получать конкретную ошибку «домен получателя не существует» (если он не существует), ваши пользователи будут получать общее «отказано в доступе client_recipient_mx_access» для некоторых доменов с ошибками, без какой-либо подсказки, *что именно* было не так. Это плохо.
флаг us
Я активировал отладку, я не думаю, что постфикс не читает правило: https://pastebin.com/zwSdqDBW Любые идеи?
Nikita Kipriyanov avatar
флаг za
Я не вижу места, где он оценивает `smtpd_recipient_restrictions`. Тем не менее, я заметил, что вы подключились с `127.0.0.1`, который, вероятно, находится в `mynetworks`, поэтому ваш `permit_mynetworks` разрешит это сообщение, не оставив возможности проверить все ниже, как я объяснил выше.
флаг jp
Кроме того, Debian 8 является EOL с июня 2018 года, LTS закончился в июне 2020 года, а Postfix отсутствует в списке пакетов ELTS от Freexian. Пришло время обновить.

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

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