Заставьте exim принять, что письма перенаправляются только, когда они смогут быть отправлены

Я выполняю маленький почтовый сервер со всей обычной функциональностью: Отправка местной почты, получая почту для локальных папок, перенаправляя почту согласно псевдониму и списки рассылки.

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

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

Таким образом, вопрос: Могу я где-нибудь в ACLs говорю exim

  • фигура, если почта будет поставленным использованием перенаправления к удаленному местоположению,
  • делайте попытку этого сразу же,
  • и примите почту, только если реле было успешно?

Спасибо!

0
задан 21 January 2015 в 12:04
2 ответа

Проверка отправителя создает дополнительную нагрузку на зарубежные MTA, поэтому не рекомендуется. Но вы можете настроить общий спам.Доказательство MTA.

Мой опыт показывает, что два простых условия помогают обнаружить около 90% спама:

  1. Отправители без PTR-записи определенно являются спамерами. Те, кто не может настроить PTR для легального MTA, еще хуже.
  2. Отправители с динамически назначенными IP-адресами должны отправлять свою электронную почту через ретрансляторы провайдера. Все это статическо-динамическое-123-456.789-client.fiber.peer.tld являются спамерами и должны быть отфильтрованы простым списком регексов.

Каждое сообщение, которое приходит с хостов, описанных выше, должно быть передано в bayes. Мой выбор - спамассасин. Все остальные сообщения должны быть протестированы в bayes.

Такой подход позволяет отфильтровать около 99.9% спама и имеет большое преимущество - bayes обновляется автоматически. Всё, что вам нужно сделать - это периодически добавлять несколько чрезвычайно активных хостов спама в регекс-лист из правила #2.

Обнаружив спам, вы можете легко предотвратить его пересылку на gmail или куда-либо ещё.

.
0
ответ дан 4 December 2019 в 17:04

Это будет не ответ, а объяснение сложности того, что вы пытаетесь сделать.

Вы должны ВСЕГДА помнить, что электронное письмо может быть адресовано более чем одному получателю. Вы сказали: "Я не хочу ставить его в очередь, если это пересылка". Что же делать, если это пересылка, а это локальный почтовый ящик? Вы знаете только содержание сообщения (заголовки и тело) во время фазы DATA, и в этот момент вы уже принимаете получателей (один пересылающий и один локальный).

Это MUCH сложнее сделать то, что вы хотите, потому что протокол SMTP не позволял применить предпочтения для каждого получателя. Есть новая функция в Exim, которая называется PRDR (Per Recipient Delivery Responses - ответы на доставку каждому получателю). Это черновой вариант протокола много лет назад, который является расширением протокола SMTP. Почти ни один другой почтовый сервер не поддерживает его, кроме Exim. Он требует, чтобы почтовый сервер подключился к вашему почтовому серверу Exim и сказал: "Я вижу, вы разрешаете PRDR, поэтому я собираюсь запросить его и позволю вам отклонить письмо для каждого отдельного пользователя, а не только для всех или ни для кого."

Он требует, чтобы вы настроили PRDR ACL для проверки определенных вещей (оценка спама, получатель отмечает определенных отправителей как спам и т.д.). THe ACL вызывается один раз для каждого получателя После сообщение было получено (что не разрешено в обычном SMTP), и в этом PRDR ACL вы можете отклонить или принять для каждого получателя. Так как почтовый сервер отправителя запросил режим PRDR, он его поймет.

Иначе, вы либо принимаете его для всех (и рискуете отрицательной репутацией с Google), либо отклоняете его для всех (и рискуете отклонить желаемое сообщение).

Вы можете поочередно указать максимум 1 получателя на каждое входящее сообщение. Когда вы ограничиваете его таким образом, тогда вы можете сделать обозначение forwarder/not_forwarder во время фазы данных и решить, что делать, основываясь на оценке спама. Но на сообщениях с 10 получателями, вы получите 1 сообщение на первое, tempfail оставшиеся 9, а почтовый сервер отправителя поставит его в очередь и повторит попытку позже. Через некоторое время (в зависимости от времени повторной попытки в очереди почтового сервера ) вы снова получите письмо второму получателю, темpfail оставшихся 8. Повторите для оставшихся 1, 7. Повторите для оставшихся 1, 6. И помните, что между каждой поставкой будет пауза, которую вы не можете контролировать, потому что это зависит от того, как долго отправитель будет повторять сообщение в очереди.

Опции для этого не велики :-/

** По иронии судьбы, LMTP - это подмножество протокола SMTP, который предназначен для доставки от входящего SMTP-сервера к внутреннему почтовому серверу (т.е. не через Интернет, а только внутренне). LMTP разрешает для каждого отказа получателя. Так что, если вы хотите рассмотреть это таким образом, подумайте о PRDR, как о применении специфической функции LMTP к протоколу SMTP.

.
1
ответ дан 4 December 2019 в 17:04

Теги

Похожие вопросы