The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"sendmail фильтрация по заголовкам"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"sendmail фильтрация по заголовкам"  +/
Сообщение от Аноним (??) on 27-Дек-10, 19:51 
Есть мысль отвергать письма не прошедшие спамооборону в рамках smtp-сессии.
Спамооборона подключается к sendmail-у через Milter строкой:

INPUT_MAIL_FILTER(`sp-milter', `S=local:/var/run/sp-milter.sock, F=T, T=C:1m;S:20s;R:20s;E:1m')

если почта не проходит, то в заголовок письма добавляется:

X-Spam-Ystatus: hits= 9.50
X-Spam-Flag: YES
X-Spam-Yversion: Spamooborona-3.2

работает замечательно.
Для отсекания почты, по заголоку "X-Spam-Flag: YES", в smtp-сессии написал правила:

define(`RxSPAMFLAG', `spam|YES')

LOCAL_CONFIG
KSPAMFLAG                       regex -a@MATCH -f RxSPAMFLAG

LOCAL_RULESETS
HX-Spam-Flag:                   $>CheckXSpamFlag
SCheckXSpamFlag
R$*                             $: $(SPAMFLAG $&{currHeader} $: OK $)
ROK                             $@ OK
R$*                             $#error $@ 5.7.1 $: "550 No, thanks"

Оно работает тоже замечательно, если письмо уже отправляется с заголовком
X-Spam-Flag: YES
а вот если заголовок добавляется спамообороной, то письмо не отсекается. Я так понимаю, что sendmail выполняет milter-плагины после проверки заголовков, хотя проверка заголовков в mc файле стоит ниже проверки спамообороной. Можно ли как-то сделать проверку заголовков уже после выполнения milter-плагинов?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "sendmail фильтрация по заголовкам"  +/
Сообщение от Z0termaNN (ok) on 29-Дек-10, 11:00 
>[оверквотинг удален]
> R$*            
>            
>       $#error $@ 5.7.1 $: "550
> No, thanks"
> Оно работает тоже замечательно, если письмо уже отправляется с заголовком
> X-Spam-Flag: YES
> а вот если заголовок добавляется спамообороной, то письмо не отсекается. Я так
> понимаю, что sendmail выполняет milter-плагины после проверки заголовков, хотя проверка
> заголовков в mc файле стоит ниже проверки спамообороной. Можно ли как-то
> сделать проверку заголовков уже после выполнения milter-плагинов?

по моему легче поставить за спамобороной milter, который будет эти заголовки проверять.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "sendmail фильтрация по заголовкам"  +/
Сообщение от Аноним (??) on 30-Дек-10, 17:59 
> по моему легче поставить за спамобороной milter, который будет эти заголовки проверять.

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "sendmail фильтрация по заголовкам"  +/
Сообщение от ze6ra (??) on 31-Дек-10, 08:28 
>> по моему легче поставить за спамобороной milter, который будет эти заголовки проверять.
> Благодарю за идею. т.к. штатных средств так и не нашел, написал небольшой
> milter решающий мою проблему, хотелось бы конечно без лишних демонов, но
> на безрыбии...

Спамоборона заголовок X-Spam-Flag: YES ставит при наборе письмом более 9 балов (в документации указано точное число) и в настройках спамобороны также есть параметр при наборе какого количества балов письмо отвергается мильтром на стадии SMTP, либо с выдачей заданного сообщения удалённому серверу либо по тихому. Ниже этого порога но больше 9 балов письмо не смотря на пометку спам (можно в спамобороне включить модификацию заголовка темы) доставляется пользователю для принятия решения. По умолчанию этот порог установлен в 40 балов. Так что химичить с сендмайлом не нужно достаточно почитать документацию на спамоборону и мильтер спамобороны будет делать все необходимые действия. Да и от 9 до 20 балов набирают многие нужные сообщения так что не нужно сильно занижать.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "sendmail фильтрация по заголовкам"  +/
Сообщение от Аноним (??) on 31-Дек-10, 12:28 
Ну да, это есть в полноценной версии, а я не уточнил, что у меня спамооборона1024, там весь расширенный функционал зарезан.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "sendmail фильтрация по заголовкам"  +/
Сообщение от Medlar email(ok) on 31-Дек-10, 13:21 
> Я так
> понимаю, что sendmail выполняет milter-плагины после проверки заголовков,

Не совсем так.
Посмотрите здесь - http://linux.ufaras.ru/sendmail2.html#16.A
На слово "нерациональность" не обращайте внимания (надо будет заменить чем-то более точным).


> Можно ли как-то
> сделать проверку заголовков уже после выполнения milter-плагинов?

Средствами sendmail.cf, думаю, нет.
КАк вам уже подсказали - нужен еще один фильтр.
Наверное, здесь можно будет использовать milter-manager для выборочного вызова СО и вашего фильтра.
ИЛи откажитесь от идеи делать это на этапе smtp-сессии и используйте procmail.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "sendmail фильтрация по заголовкам"  +/
Сообщение от Аноним (??) on 02-Янв-11, 07:29 
>> Я так
>> понимаю, что sendmail выполняет milter-плагины после проверки заголовков,
> Не совсем так.
> Посмотрите здесь - http://linux.ufaras.ru/sendmail2.html#16.A
> На слово "нерациональность" не обращайте внимания (надо будет заменить чем-то более точным).

Благодарю, стало светлее, но пока в голове белый день еще не настал :)

>> Можно ли как-то
>> сделать проверку заголовков уже после выполнения milter-плагинов?
> Средствами sendmail.cf, думаю, нет.
> КАк вам уже подсказали - нужен еще один фильтр.
> Наверное, здесь можно будет использовать milter-manager для выборочного вызова СО и вашего
> фильтра.
> ИЛи откажитесь от идеи делать это на этапе smtp-сессии и используйте procmail.

milter-manager тут излишен, на мой взляд. У меня сейчас мой milter и СО описаны следующим образом:

INPUT_MAIL_FILTER(`sp-milter', `S=local:/var/run/sp-milter.sock, F=T, T=C:1m;S:20s;R:20s;E:1m')dnl
INPUT_MAIL_FILTER(`sokillspam', `S=inet:999@localhost')dnl
define(`confINPUT_MAIL_FILTERS', `sp-milter,sokillspam')dnl

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

# telnet 1.1.1.1 25
Trying 1.1.1.1...
Connected to ok.net.
Escape character is '^]'.
220 ok.net ESMTP Sendmail 8.14.4/8.14.4; Thu, 30 Dec 2010 17:57:07 +0300 (MSK)
helo test
250 ok.net Hello 2.2.2.2.test.ru [2.2.2.2] (may be forged), pleased to meet you
mail from: test@test.ru
250 2.1.0 test@test.ru... Sender ok
rcpt to: test@ok.net
250 2.1.5 test@ok.net... Recipient ok
data
354 Enter mail, end with "." on a line by itself
5555
.
554 5.7.1 Command rejected
quit

procmail - было бы самым легким решением, да, но требования отклонять во время SMTP-сессии не мои, увы.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "sendmail фильтрация по заголовкам"  +/
Сообщение от Medlar email(ok) on 12-Янв-11, 14:07 
> milter-manager тут излишен, на мой взляд. У меня сейчас мой milter и
> СО описаны следующим образом:

Я вам сейчас не могу подсказать точно, в каких случаях он именно  вам может понадобиться.

Ну вот приблизительно. НАпример, вы захотите, чтобы почта _для_ HUGO BOSS или
_от_ еще более HUGO BOSS (даже если она наберет 1000 баллов спам-веса) сохранялась в целях вашей же безопасности ;) Хотя именно эту проверку вы можете сделать и в своем фильтре, это будет правильнее.

ТОгда расскажу, зачем мне нужен был до позарезу milter-manager в пору работы с СО (полная версия). В ту пору (2006-2008) белый список СО можно было назвать белым условно. Письмо проверялось в любом случае, а затем из получившегося веса отнималось определенное значение. В итоге спам-вес значительно снижался, и письмо не попадало в разряд спама. Мне же нужно было, чтобы немалая часть адресов не проверялась вообще, что, оказалось, невозможно сделать средствами самой СО! Вот тут бы Milter mаnager и пригодился бы.

Кстати, СО-1024 использует белый список?


>[оверквотинг удален]
> rcpt to: test@ok.net
> 250 2.1.5 test@ok.net... Recipient ok
> data
> 354 Enter mail, end with "." on a line by itself
> 5555
> .
> 554 5.7.1 Command rejected
> quit
> procmail - было бы самым легким решением, да, но требования отклонять во
> время SMTP-сессии не мои, увы.

Понятно, увы ...

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру