exim_4.67 проверка получателя в заголовке To:

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

exim_4.67 проверка получателя в заголовке To:

Непрочитанное сообщение cyrus_user » 2007-05-07 12:22:40

Привет. Вот думаю сделать на этапе проверки заголовков такое:
если To: не содержит моих получателей, то тогда отбросить.
Но может так нельзя делать?

Хостинговая компания 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/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-07 12:30:12

можно
и по дефолту оно так и есть
Убей их всех! Бог потом рассортирует...

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 5:20:16

lissyara писал(а):можно
и по дефолту оно так и есть
что-то я по дефолту не вижу :)
а как тогда быть с рассылками? например To: undisclosured_resipients;

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 10:57:19

lissyara писал(а):можно
и по дефолту оно так и есть
можно показать как именно по дефолту? я беру exim с exim.org и никаких дефолтных конфигов в сырцах не присутствует

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-08 11:17:58

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

lissyara$ more /usr/local/etc/exim/configure.default | grep "require verify"
  require verify        = sender
  require verify = recipient
  # require verify = csa
lissyara$    
линух чтоли?
изврасченцы :))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Zedik
сержант
Сообщения: 283
Зарегистрирован: 2007-01-20 22:30:57
Откуда: 127.0.0.1

Непрочитанное сообщение Zedik » 2007-05-08 12:00:59

lissyara писал(а):

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

lissyara$ more /usr/local/etc/exim/configure.default | grep "require verify"
  require verify        = sender
  require verify = recipient
  # require verify = csa
lissyara$    
линух чтоли?
изврасченцы :))
это точно...
я был одним из них... :shock:
счас слава богу на Фрю переехал... 8)

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 12:42:06

lissyara писал(а):

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

lissyara$ more /usr/local/etc/exim/configure.default | grep "require verify"
  require verify        = sender
  require verify = recipient
  # require verify = csa
lissyara$    
линух чтоли?
изврасченцы :))
ээ, я думал это что-то типа

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

verify = recipient/no_details/callout=random,defer_ok,100s
а require verify = recipient проверит именно получателя в заголовке To:? тогда если там undisclosured_recipients; то что будет?

зы1: правило исключения Сaйрус_Юзера номер один: если никто из воинствующих незнаек-линуксоидов не поднимает холивар и не пенит со рта проклятья в сторону других ОС, то всегда найдётся бзд-шник который попытается испортить дружественную идиллию.
зы2: ничего личного. холивары плиз в отдельный раздел.

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

Непрочитанное сообщение dikens3 » 2007-05-08 12:52:12

а require verify = recipient проверит именно получателя в заголовке To:? тогда если там undisclosured_recipients; то что будет?
Проверка verify работает со своими и внешними E-Mail'ами.

Отсюда:
1. Cо своими (если получатель в твоём домене) проверяет наличие undisclosured_recipients@yourdomain.ru
2. С внешними только @ДОМЕН_НА_КОТОРЫЙ_ИДЁТ_ПИСЬМО.

Чтобы изменить что-то читаем перевод лисссяры по Exim.

defer_ok - рекомендую установить для require verify = recipient, может быть Greylisting, и проверка завершится неудачей.
^^ Мои домыслы. Читай доки.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 13:00:00

тогда либо я что-то не понял, либо меня не поняли.
спамер шлёт письмо:
rcpt to: aaa@xxx.ru
^^^ тут начинает работать verify = recipient ( без разницы с callout или нет)
-skip-
DATA
но уже заголовок To: bbb@xxx.ru
но тут классический verify = recipient уже не работает. иначе бы он сказал что bbb@xxx.ru нету

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 13:08:39

вот пример письма:

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

Return-Path: <whikxwqxsr@sakrament.com>^                                                                                
Return-path: <whikxwqxsr@sakrament.com>^ 
Received: from mail by xxx.ru with spam-scanned (Exim 4.67)                                              
        (envelope-from <whikxwqxsr@sakrament.com>)                                                                      
        id 1Hl2Ta-0007LR-GF                                                                                             
        for bob@xxx.ru; Mon, 07 May 2007 21:38:02 +0900                                                                          
Received: from c934d299.virtua.com.br ([201.52.210.153])^                                                               
        by xxx.ru with smtp (Exim 4.67)^                                                                         
        (envelope-from <whikxwqxsr@sakrament.com>)^                                                                     
        id 1Hl2TZ-0007LC-0H; Mon, 07 May 2007 21:38:01 +0900^                                                           
From: "=?koi8-r?B?88/eyQ==?=" <whikxwqxsr@sakrament.com>^                                                               
To: <whikxwqxsr@sakrament.com>^                                                                                         
Subject: =?koi8-r?B?2sXNxczYztnKINXewdPUz8sg1yDzz97J?=^ 
вот такие мои проверки не сработали:
deny message = Sender Verify Failed
!verify = sender/no_details/callout=random,defer_ok,100s
и
deny message = No Such User Here
!verify = recipient

возможно я недопонимаю, вот и вопрос был по поводу доработки фильтров

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

Непрочитанное сообщение dikens3 » 2007-05-08 14:01:57

Проверяет домен отправителя:

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

deny message = Sender Verify Failed
!verify = sender/no_details/callout=random,defer_ok,100s
Он нормально существует:

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

# host sakrament.com
sakrament.com has address 65.254.54.178
sakrament.com mail is handled by 0 sakrament.com
Вывод: Блок не работает.

P.S. Для отладки используем exim -bh ВНЕШНИЙ_IP
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

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

Непрочитанное сообщение dikens3 » 2007-05-08 14:11:05

Времени у меня сейчас нет подумать, праздник, но доки покажу:

http://www.lissyara.su/?id=1239#39.31
http://www.lissyara.su/?id=1207

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

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 14:13:34

dikens3 писал(а):Проверяет домен отправителя:

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

deny message = Sender Verify Failed
!verify = sender/no_details/callout=random,defer_ok,100s
Он нормально существует:

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

# host sakrament.com
sakrament.com has address 65.254.54.178
sakrament.com mail is handled by 0 sakrament.com
Вывод: Блок не работает.

P.S. Для отладки используем exim -bh ВНЕШНИЙ_IP
Но в документации сказано что callout проверяет сендера а не домен! exim_4.67_doc_40.36

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

For a sender callout check, Exim makes SMTP connections to the remote hosts, to                                         
test whether a bounce message could be delivered to the sender address. The                                             
following SMTP commands are sent:                                                                                       
                                                                                                                        
HELO <local host name>                                                                                                  
MAIL FROM:<>                                                                                                            
RCPT TO:<the address to be tested>                                                                                      
QUIT                  
как тогда Вaс понимать?

[/code]

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

Непрочитанное сообщение dikens3 » 2007-05-08 14:34:34

Ошибся, бывает, рад что документация помогает.

Отсюда могу предположить:
1. Истечение Time-Out'а
2. Проверка удачна. (Смотри лог приведённый ниже)

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

# telnet sakrament.com 25
Trying 65.254.54.178...
Connected to sakrament.com.
Escape character is '^]'.
220-host33.coolservecorp.net ESMTP Exim 4.63 #1 Tue, 08 May 2007 11:35:27 +0000
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
EHLO mail.domain.ru
250-host33.coolservecorp.net Hello mail.domain.ru [82.208.x.x]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
MAIL FROM: <dik@domain.ru>
250 OK
RCPT TO: <whikxwqxsr@sakrament.com>
250 Accepted
QUIT
221 host33.coolservecorp.net closing connection
Connection closed by foreign host.
P.S. Делай рандомную локальную часть и блокируй, если она вдруг примется проверяемым хостом.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 14:52:23

dikens3 писал(а):Ошибся, бывает, рад что документация помогает.

Отсюда могу предположить:
1. Истечение Time-Out'а
2. Проверка удачна
да дело не в том что ваше 1. defer_ok или ваше 2. callout cache: domain accepts random addresses
а в изначальном вопросе топика!
Я не сомневаюсь в вашей компетенции, но вы мне все советуете проверять mail from: rcpt to: А я же вас спрашиваю про проверку ЗАГОЛОВКА To: поскольку спам-робот (наверно) тупо копирует письмо с заголовками в DATA
Пример привёл выше, посмотрите внимательно. спамер написал в rcpt to: bob@xxx.ru а в заголовке To: whikxwqxsr@sakrament.com, а мог что угодно.
Повторяюсь, есть ли смысл проверять To: и если да, то как это сделать лучше.

Пока я придумал так (синтаксис ещё не доработан):

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

deny message = Идите На
condition = ${if and {\
{!match {${lc:$h_to:}}{полный_список_моих_получателей}}\
{match {${lc:$h_to:}}{undisclosured|ещё_что_используемое_рассылками}}}}

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 14:56:48

dikens3 писал(а): P.S. Делай рандомную локальную часть и блокируй, если она вдруг примется проверяемым хостом.
тогда и mail.ru будет блокироваться :) знаете почему? потому что они сначала принимают _всё_ письмо...
а только потом анализируют.

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

Непрочитанное сообщение dikens3 » 2007-05-08 15:09:53

cyrus_user писал(а):
dikens3 писал(а): P.S. Делай рандомную локальную часть и блокируй, если она вдруг примется проверяемым хостом.
тогда и mail.ru будет блокироваться :) знаете почему? потому что они сначала принимают _всё_ письмо...
а только потом анализируют.
Учту. Спасибо.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

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

Непрочитанное сообщение dikens3 » 2007-05-08 15:11:20

cyrus_user писал(а):
dikens3 писал(а):Ошибся, бывает, рад что документация помогает.

Отсюда могу предположить:
1. Истечение Time-Out'а
2. Проверка удачна
да дело не в том что ваше 1. defer_ok или ваше 2. callout cache: domain accepts random addresses
а в изначальном вопросе топика!
Я не сомневаюсь в вашей компетенции, но вы мне все советуете проверять mail from: rcpt to: А я же вас спрашиваю про проверку ЗАГОЛОВКА To: поскольку спам-робот (наверно) тупо копирует письмо с заголовками в DATA
Пример привёл выше, посмотрите внимательно. спамер написал в rcpt to: bob@xxx.ru а в заголовке To: whikxwqxsr@sakrament.com, а мог что угодно.
Повторяюсь, есть ли смысл проверять To: и если да, то как это сделать лучше.

Пока я придумал так (синтаксис ещё не доработан):

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

deny message = Идите На
condition = ${if and {\
{!match {${lc:$h_to:}}{полный_список_моих_получателей}}\
{match {${lc:$h_to:}}{undisclosured|ещё_что_используемое_рассылками}}}}
Мне пофиг на свою компетенцию, если я в состоянии помочь.

Почему стандартные настройки не блокируют это письмо? Фильтры exim' составлены верно?

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

# Принимаем, если получатель и домен наши и существуют.
  accept   domains       = +local_domains
           endpass
           message       = "Unknown user"
           verify        = recipient
В случае отсутствия получателя письмо не принимается.
Если знаний недостаточно, то опишите принцип работы этого фильтра? Я поправлю.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 15:27:18

dikens3 писал(а): Почему стандартные настройки не блокируют это письмо? Фильтры exim' составлены верно?

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

# Принимаем, если получатель и домен наши и существуют.
  accept   domains       = +local_domains
           endpass
           message       = "Unknown user"
           verify        = recipient
В случае отсутствия получателя письмо не принимается.
Если знаний недостаточно, то опишите принцип работы этого фильтра? Я поправлю.

потому что bob@xxx.ru существует! поэтому такой фильтр пропускает сообщение.
повторяю 3-й раз. Внимательно смотрите на заголовки письма спамера. особенно на полe To:

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

Непрочитанное сообщение dikens3 » 2007-05-08 15:31:10

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

To: <whikxwqxsr@sakrament.com>
И где здесь твой домен? Фильтр должен работать.

Тут почитай, может твой случай.
http://forum.lissyara.su/viewtopic.php?t=3086
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-08 15:45:23

dikens3 писал(а):

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

To: <whikxwqxsr@sakrament.com>
И где здесь твой домен? Фильтр должен работать.

Тут почитай, может твой случай.
http://forum.lissyara.su/viewtopic.php?t=3086
да какая разница есть мой домен или нет. verify=recipient опрашивает роутеры и уже condition в роутерe возвращает есть ли такой получатель или нет.
если бы было написано rcpt to: whikxwqxsr@sakrament.com то однозначна будет deny!

а вот по ссылке именно мой случай, но что-то вразумительных ответов там нет...
[/code]

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-08 15:58:15

lissyara писал(а):где нить в системном фильтре, разбирать получателей конверта и сравнивать с тем, что было дано в заголовке From:
========
кстати - интересная задача - будет время - займусь.
Возможные грабли - получатель конверта может быть не один...
а времени всё нет и нет
Убей их всех! Бог потом рассортирует...

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

Непрочитанное сообщение dikens3 » 2007-05-08 15:58:41

Это почему? Дан пример блокировки CC,BCC, есть ссылка как сделать без фильтра в acl_check_data (verify ="not_blind")

Что ещё нужно.
Я вот узнал что проверяется поле envelope-to в acl_check_rcpt, думал что поле to. TO: Может быть любым, если envelope-to содержит твоего юзверя.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-05-10 5:30:25

verify =not_blind не подходит сразу, режет практически все рассылки
envelope-to не является частью rfc2822, поэтому его в подавляющем большинстве писем просто нет.

вариации на тему Cc,Bcc опять же порежут много нужных писем.

остаётся вариант с весами для спамчекера или какой-то хитрый acl