проблема с auto_whitelist

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
DeVeO
ефрейтор
Сообщения: 68
Зарегистрирован: 2006-09-25 12:53:38

проблема с auto_whitelist

Непрочитанное сообщение DeVeO » 2008-09-17 16:06:53

Добрый день. Решил попробовать auto_whitelist, предложенный в полезных скриптах dikens3. Все работает нормально, за исключением писем от одного из клиентов. Допустим у него адрес user@domain.ru Пишем со своего адреса me@mydomain.ru на адрес клиента user@domain.ru Все нормально- в белые списки добавилась запись c user@domain.ru. Идет ответное письмо от клиента. Не срабатывает блок

Код: Выделить всё

# Белые списки
# Принимаем от пользователей (E-Mail'ов), которым мы посылали сообщения (10 дней максимум) 0 - Нет записи, 1 - Принимаем, 2 - Срок истёк.
  warn      set acl_m19  = ${lookup mysql{MYSQL_TESTCLIENTMYLIST}{$value}{0}}

  accept    domains       = +local_domains
            condition     = ${if eq{$acl_m19}{1}{yes}{no}}
            endpass
            message       = "Unknown user"
            verify        = recipient
Начал разбираться и в логах нашел следующее

Код: Выделить всё

Sep 17 10:10:14 freebsd exim[51617]: 2008-09-17 10:10:14 Delay 20s for mx.domain.ru [aa.bb.cc.dd] with HELO=mx.domain.ru. Mail from prvs=114604595c=user@domain.ru to me@mydomain.ru.
Sep 17 10:10:35 freebsd exim[51617]: 2008-09-17 10:10:35 1KfqFG-000DQX-VF <= prvs=114604595c=user@domain.ru H=mx.domain.ru [aa.bb.cc.dd] I=[qq.ww.ee.rr]:25 P=esmtp S=64638 id=3c922020.1c9188b.7eef1.5302@domain.ru from <prvs=114604595c=user@domain.ru> for me@mydomain.ru
Sep 17 10:10:35 freebsd exim[51618]: 2008-09-17 10:10:35 1KfqFG-000DQX-VF => me <me@mydomain.ru> R=mysqluser T=mysql_delivery
Sep 17 10:10:35 freebsd exim[51618]: 2008-09-17 10:10:35 1KfqFG-000DQX-VF Completed
Начал разбираться с

Код: Выделить всё

Mail from prvs=114604595c=user@domain.ru
Похоже, что клиент пользуется mdaemon. Вот что нашел по этому поводу
В демоне mdaemon 9.6 ввели новую фичу backscatter protection называется.
Проверка валидности возвращенных писем.
Т.е. демон добавляет в заголовок письма уникальный код отправителя. Причем на следующие сутки этот код меняется.
Получается, что один и тот же отправитель появляется в логе под разными логинами.
Отсюда вопрос как допилить скрипт auto_whitelist, предложенный dikens3, так чтобы он обрабатывал и этот случай???

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: проблема с auto_whitelist

Непрочитанное сообщение dikens3 » 2008-09-17 18:51:04

Проверка отправителя что говорит? Существует пользователь (<prvs=114604595c=user@domain.ru>) или нет в момент получения письма?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

DeVeO
ефрейтор
Сообщения: 68
Зарегистрирован: 2006-09-25 12:53:38

Re: проблема с auto_whitelist

Непрочитанное сообщение DeVeO » 2008-09-18 10:19:30

В момент приема пользователь существует.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: проблема с auto_whitelist

Непрочитанное сообщение dikens3 » 2008-09-18 11:54:41

Имеем стандартную цепочку при отправке сообщения нашим пользователем:
Наш-пользователь@наш-домен.ru -> какой-то-пользователь@какой-то-домен.ru
Имеем стандартную цепочку при получении сообщения для нашего пользователя:
какой-то-пользователь@какой-то-домен.ru -> Наш-пользователь@наш-домен.ru
Имеем нестандартную цепочку при получении сообщения для нашего пользователя:
prvs=114604595c=какой-то-пользователь@какой-то-домен.ru -> Наш-пользователь@наш-домен.ru
Я вижу 3 выхода:
1. Обрабатывать e-mail отправителя и приводить в соответствие.
Сделать можно, но по каким критериям его обрабатывать? Искать prvs? Два знака равенства(=)? И потом приводить в читабельный для нашей базы вид?
Тут нет никаких гарантий что завтра наш критерий не измениться на что-то ещё. (prvs станет svrr и т.п.)
Есть ещё подводные камни в этом решении и считаю что на него можно забить. (или как временный вариант реализовать)

2. Изменить наши проверки и заносить в базу E-Mail вида *какой-то-пользователь@какой-то-домен.ru
Тем самым в базе уже будет храниться регулярное выражение.

С ним можно работать примерно так:

Код: Выделить всё

# Заблокированные E-Mail'ы
MYSQL_BAD_EMAILS        = SELECT email FROM block_emails

# Прибиваем плохие E-Mail'ы и домены (*@mydomain.ru например :-) )
  deny      message      = You are blocked !
            senders      = ${sg{${lookup mysql{MYSQL_BAD_EMAILS}}}{\n}{:}}
тем самым наша строка (из примера) примет вид:

Код: Выделить всё

senders = какой-то-пользователь@какой-то-домен.ru : \
	       какой-то-пользователь2@какой-то-домен.ru : \
          какой-то-пользователь3@какой-то-домен.ru
Тут подумать надо, если есть желание, пожалуйста.

3. Забить и пусть сами разбираются. (почему бы их системному администратору не убрать добавление …prvs.. при отправке писем на твой домен раз уж он такой умный?)

P.S. Хотя всё может быть проще. Щас ещё подумаю(проверю) по поводу LIKE.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

DeVeO
ефрейтор
Сообщения: 68
Зарегистрирован: 2006-09-25 12:53:38

Re: проблема с auto_whitelist

Непрочитанное сообщение DeVeO » 2008-09-18 12:15:24

1) Сисадмину уже написал, но подозреваю, что не уберет, потому что в последнем mdaemon'е эта фишка (backscatter protection) позиционирована как полезная в плане спам защиты и он ее специально включил.
2) Насчет LIKE уже думал - некрасиво как то... :( -теряется точное соответствие пары отправитель получатель.
3) Думаю насчет введения дополнительной таблицы белых доменов (куда будут занесены все домены наших филиалов), почта с которых принимается в обход спам-проверок.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: проблема с auto_whitelist

Непрочитанное сообщение dikens3 » 2008-09-18 12:46:40

2) Насчет LIKE уже думал - некрасиво как то... :( -теряется точное соответствие пары отправитель получатель.
По другому никак, да и не вижу в этом ничего плохого.
3) Думаю насчет введения дополнительной таблицы белых доменов (куда будут занесены все домены наших филиалов), почта с которых принимается в обход спам-проверок.
Ну а зачем свою почту морозить?

Собственно для этого же я и делал whitelist.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

DeVeO
ефрейтор
Сообщения: 68
Зарегистрирован: 2006-09-25 12:53:38

Re: проблема с auto_whitelist

Непрочитанное сообщение DeVeO » 2008-09-18 14:46:43

Ну а зачем свою почту морозить?

Собственно для этого же я и делал whitelist.
Нет, я имею ввиду, дополнительно к твоему whitelist сделать таблицу с белыми доменами, куда "руками" заносить такие "вредные" свои домены (с плавающими адресами отправителей). При приеме проверять домен отправителя (он-то не меняется), при совпадении с "белым" доменом пропускать без проверок. Whitelist'ы естественно остаются. Они хорошо работают. Это довесок (как средство борьбы с программами типа mdaemon).

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: проблема с auto_whitelist

Непрочитанное сообщение korg80 » 2014-07-22 8:36:55

я решил эту проблему так:
whitelist:

Код: Выделить всё

*user@domain.ru