Могу ли я предотвратить отправку postfix на определенные адреса электронной почты, используя опцию check_recipient_access в postfix?

Вопрос или проблема

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

smtpd_recipient_restrictions =
    check_recipient_access hash:/etc/postfix/bad_recipients,
    permit_sasl_authenticated,
    permit_mynetworks,
    ...

Письма все равно пересылаются. Вот пример файла bad_recipients, который у меня есть:

# При обновлении, не забудьте выполнить эту команду:
#    postmap hash:/etc/postfix/bad_recipients

[email protected] REJECT

Когда я отправляю письмо на этот адрес, оно все равно пересылается.

alexis $ mail -s "Verify block" [email protected]
Cc:

Не особо интересное здесь.
^D

Когда я смотрю на логи, я вижу что-то вроде этого:

Mar 5 20:02:37 do postfix/smtp[8882]: E827740ADA: to=,
relay=mail.example.com[10.0.0.13]:25, delay=2.3, delays=0.03/0.01/1.8/0.41,
dsn=5.7.1, status=bounced (host mail.example.com[10.0.0.13] said: 550 5.7.1
No such user! (in reply to RCPT TO command))

Примечание: я отредактировал доменное имя и IP-адрес.

Пересылка во внешнее место явно показывает, что мои настройки smtpd_recipient_restrictions ничего не блокировали. Я думаю, что либо это принимает только домены (хотя я думаю, документация здесь говорит об обратном), либо у меня есть что-то другое, что говорит postfix игнорировать мой список ограничений получателей. Вы знаете, как заставить эту функцию работать?

Ладно! Я нашел ответ.

Дело в том, что это работает только в том случае, если пользователь пытается отправить письмо, используя SMTP. Таким образом, при использовании таких инструментов, как sendmail или mail, postfix игнорирует эту запись, потому что нет RCPT TO <address> для проверки. Это проблема для некоторых из моих инструментов, к счастью, тот, который я хочу заблокировать в данный момент, использует SMTP, так что я в порядке. Только я не могу протестировать, работает ли это, используя командную строку mail.

Ответ или решение

Да, вы можете использовать параметр check_recipient_access в Postfix для предотвращения отправки писем на определённые адреса электронной почты. Однако, как вы заметили, возникают определенные нюансы, которые могут препятствовать правильному функционированию этого механизма. Давайте подробно рассмотрим, как это работает и как справиться с вашими проблемами.

Почему не срабатывает блокировка

Основной причиной, по которой ваше текущее решение не работает, является то, как smtpd_recipient_restrictions применяется в процессе отправки сообщений. Данный механизм в первую очередь рассчитан на обработку входящих SMTP-соединений. Если отправка письма происходит через инструменты, такие как sendmail или mail, они минуют этот процесс, что и приводит к игнорированию установленных ограничений на уровне получателя (RCPT TO).

Решение проблемы

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

  1. Блокировка исходящих сообщений: Для этого вам нужна немного иная настройка. Вы можете использовать параметр check_sender_access или создать свой собственный smtpd restriction class, применяющий check_recipient_access к сообщениям, поступающим от определённого отправителя.

  2. Настройка соответствующих карт: Убедитесь, что ваш файл /etc/postfix/bad_recipients правильно отформатирован и после каждого изменения вы выполняете команду postmap hash:/etc/postfix/bad_recipients, чтобы обновить хеш-таблицу.

  3. Отладка: Всегда проверяйте журналы для понимания текущего поведения Postfix. В вашем случае, если сообщения по-прежнему отвергаются, возможно, они уже доходят до сервера назначения, который их отвергает. Это может указывать на то, что блокировка на уровне Postfix не применяется, и ваше правило нуждается в коррекции.

Поиск альтернативного пути

Если проблемы продолжаются, рассмотрите следующий план действий:

  • Используйте опцию ‘smtpd_sender_restrictions’: Это поможет вам в создании более тонких правил для отправителей, что даст вам больше контроля над тем, какие сообщения вообще проходят через ваш Postfix.

  • Доступ к системе: Проверьте, как именно пользователи отправляют почту, и убедитесь, что все проходящие сообщения соответствуют маршрутам, применяющим smtpd_recipient_restrictions.

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

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

Оцените материал
Добавить комментарий

Капча загружается...