Не срабатывают некоторые правила в acl exim

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение princeps » 2008-04-29 10:26:58

Периодически прорывается почта с хостов с названиями типа: dsl.static859895170.ttnet.net.tr, хотя должен посылаться нах как минимум в двух пунктах: во-первых, в нем четыре точки, во-вторых, слово "dsl". При этом в отношении других хостов эти правила работают. В чем может быть дело?
В отчетах eximstats такие хосты обычно в круглых скобках, вот так:

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

(dsl.static859895170.ttnet.net.tr)
В логах по их поводу следующее:

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

no IP address found for host dsl.static859895170.ttnet.net.tr (during SMTP connection from (dsl.static859895170.ttnet.net.tr) [85.98.95.170] I=[192.168.0.13]:25)
1JqiDp-000Cxa-4B <= edagrinavic@prodigy.net H=(dsl.static859895170.ttnet.net.tr) [85.98.95.170] I=[192.168.0.13]:25 P=esmtp S=10192 id=01c8a9c9$0d7ee600$aa5f6255@edagrinavic from <edagrinavic@prodigy.net> for user@mydomain.ru
1JqiDp-000Cxa-4B => user <user@mydomain.ru> R=mysqluser T=mysql_delivery
1JqiDp-000Cxa-4B Completed
no IP adress found кажется мне подозрительным - такое ощущение, что после него acl дальше не применяются. А вот где проводится эта проверка на соответствие ip-адресу - не могу найти. Помню, что копировал откуда-то. Вот кусок acl с проверкой на количество точек, который, по идее, должен применяться к этому хосту:

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

  # Считем число точек в доменном имени. (больше 4-х - в топку)
  deny    condition     = ${if match{$sender_host_name} \
                                {\N((?>\w+[\.]){4,})\N}{yes}{no}}
        hosts         = !+relay_from_hosts : *
        !senders = :
        message = "Too many dots"
Украдено из какого-то конфига Лиса.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (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: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение dikens3 » 2008-04-29 11:22:16

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

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение princeps » 2008-04-29 13:21:14

Вот что получается:

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

sender_fullhost = mxs.mail.ru (dsl.static859895170.ttnet.net.tr) [194.67.23.20]
sender_rcvhost = mxs.mail.ru ([194.67.23.20] helo=dsl.static859895170.ttnet.net.tr)
check condition = ${if match{$sender_host_name} {\N((?>\w+[\.]){4,})\N}{yes}{no}}
                = no
[b]deny: condition test failed[/b]
Это был тест на количество точек. Я, наверное, не совсем что-то понял, имеется в виду больше четырех или больше или равно четырем?
Теперь на плохие слова:

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

processing "deny"
check !senders = :
address match: subject=user@ttnet.net.tr pattern=
ttnet.net.tr in ""? no (end of list)
user@ttnet.net.tr in ":"? no (end of list)
search_open: wildlsearch "/usr/local/etc/exim/bad_words_in_hostname"
search_find: file="/usr/local/etc/exim/bad_words_in_hostname"
  key="mxs.mail.ru" partial=-1 affix=NULL starflags=0
LRU list:
  F/usr/local/etc/exim/bad_words_in_hostname
  End
internal_search_find: file="/usr/local/etc/exim/bad_words_in_hostname"
  type=wildlsearch key="mxs.mail.ru"
file lookup required for mxs.mail.ru
  in /usr/local/etc/exim/bad_words_in_hostname
[b]mxs.mail.ru in "^.*dsl.*"? no (end of list)[/b]
......
Я думал, он HELO проверяет на плохие слова :( Если я в правиле, проверяющем на неправильные слова заменю $sender_host_name на $sender_helo_name, то произойдет что-нибудь нехорошее? И как вообще правильнее написать? Может быть два правила сделать, чтоб одно по helo проверяло, второе по sender_host_name? И еще вопрос: при чем здесь вообще mxs.mail.ru?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

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

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение dikens3 » 2008-04-29 16:14:02

при чем здесь вообще mxs.mail.ru?
Нефига тупо копировать.

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

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение princeps » 2008-04-29 16:56:05

А, действительно, айпи адреса я не заметил :( А какой айпи мне писать, если экзим в логи сообщает, что айпи-адрес для этого компа не найден?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение princeps » 2008-04-29 17:26:25

Судя по всему происходит следующее: $sender_host_name видимо берется после проверки соответствия имени хоста его айпишнику. Поскольку у меня ip adress for this host not found, exim вставляет вместо $sender_host_name то, что берет из адреса отправителя после собаки. Я все правильно понимаю? Таким нехитрым способом спамеры обманывают мой фильтр :( Как с этим бороться?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

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

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение dikens3 » 2008-04-29 20:52:59

Поскольку у меня ip adress for this host not found, exim вставляет вместо $sender_host_name то, что берет из адреса отправителя после собаки.
$sender_host_name должна быть пустая. (Блокировать в таком случае не следует)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение princeps » 2008-04-29 21:00:32

И как же бороться с такими ребятами? Может все-таки добавить еще проверку на количество точек-тире в helo? Но тогда все правила, где есть $sender_host_name надо будет продублировать.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

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

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение dikens3 » 2008-04-29 21:06:05

И как же бороться с такими ребятами?
1. Читать RFC.
2. Если там обязательно MX сервер (это тот, который с тобой соединяется) должен иметь обратную запись, тогда:
2.a. Осознаёшь, что RFC это всего лишь рекомендации, а не точные инструкции. Отсюда - у тебя будут проблемы, если им тупо следовать (Т.е. блокировать серваки при отсутствии обратного имени)
2.б. Читаешь всё вышеперечисленное до прояснения. :-)

P.S. Оптимальных правил в данном случае нет, всё по опыту.
P.S2. Свои проверки HELO я тебе скидывал.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: Не срабатывают некоторые правила в acl exim

Непрочитанное сообщение princeps » 2008-04-29 22:03:29

Я пробовал футболить по несоответствию mx записи в обратной зоне - 5-10 писем в день, из них все - правильные :( Завтра буду экспериментировать с правилами по $sender_host_name и $sender_helo_name. Большое спасибо за помощь.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru