Всем привет.Заметил такой момент. Спамеры додумались как обходить проверку SpamAssassin-a. Добавляют в header-ы письма X-Spam-Status: No, hits=0.0 required=5.0(частный пример). И следовательно фильтры exim-a не хотять работать с таким письмом как со сапмерским(хотя далее есть еще один X-Spam-Status), потомучто парсят тока до первого появления X-Spam-Status в headers.
Итак господа знатоки вопрос. Как правильно написать condition чтобы найти header и дропнуть письмо? Писал так:drop
condition = ${if def:header_X-Spam-Status:{false}}
message = "Dropped due to contained X-Spam-Status flag"
log_message = "Dropped due to contained X-Spam-Status flag"Но condition = ${if def:header_X-Spam-Status:{false}} возвращает мне пустую строку как бы я не извращался.
Помогите пожалуйста.С уважением, Игорь.
> Итак господа знатоки вопрос. Как правильно написать condition чтобы найти header и
> дропнуть письмо?Гениальная идея - дропать. Не лучше ли удалить _заголовок_ перед/в процессе антиспам обработки ?
>> Итак господа знатоки вопрос. Как правильно написать condition чтобы найти header и
>> дропнуть письмо?
> Гениальная идея - дропать. Не лучше ли удалить _заголовок_ перед/в процессе антиспам
> обработки ?Не суть важно что делать. Если Вам так удобно, то помогите удалить заголовок.
С уважением, Игорь.
Посмотрите документацию. Ваша конструкция всегда будет возвращать false, вы же сами это написали. Уберите {false}
Смотрите также опцию headers_remove в секции роутеров.
> Посмотрите документацию. Ваша конструкция всегда будет возвращать false, вы же сами это
> написали. Уберите {false}
> Смотрите также опцию headers_remove в секции роутеров.condition возвращает пустую строку, а не false.
По поводу headers_remove сейчас посмотрю, спасибо!
>> Посмотрите документацию. Ваша конструкция всегда будет возвращать false, вы же сами это
>> написали. Уберите {false}
>> Смотрите также опцию headers_remove в секции роутеров.
> condition возвращает пустую строку, а не false.
> По поводу headers_remove сейчас посмотрю, спасибо!К сожалению на этапе роутеров не могу этого сделать. Нужно сделать до приёма DATA. По-этому нада курить в сторону ACL. Подскажет кто что?
С уважением, Игорь.
> К сожалению на этапе роутеров не могу этого сделать. Нужно сделать до
> приёма DATA. По-этому нада курить в сторону ACL. Подскажет кто что?Эмм, я правильно понимаю, что хидера идут в DATA ?
>> К сожалению на этапе роутеров не могу этого сделать. Нужно сделать до
>> приёма DATA. По-этому нада курить в сторону ACL. Подскажет кто что?
> Эмм, я правильно понимаю, что хидера идут в DATA ?Эххххх шли бы они в DATA я бы ничего и не делал. Мне нада проверять до приема DATA. Даже наверное до "#!!# ACL that is used after the RCPT command" блока. Но енто не суть. До DATA будет хорошо.
С уважением, Игорь.
>>> К сожалению на этапе роутеров не могу этого сделать. Нужно сделать до
>>> приёма DATA. По-этому нада курить в сторону ACL. Подскажет кто что?
>> Эмм, я правильно понимаю, что хидера идут в DATA ?
> Эххххх шли бы они в DATA я бы ничего и не делал.
> Мне нада проверять до приема DATA. Даже наверное до "#!!# ACL
> that is used after the RCPT command" блока. Но енто не
> суть. До DATA будет хорошо.
> С уважением, Игорь.Крутил вертел на этапер роутов.. удаляеться хэадер. Но на этом этап уже поздно, уже письмо принялось и мне нада кудато его отправить. А хочеться дропнуть его до приема.
С уважением, Игорь!
> хочеться дропнуть его до приема.А вы не зацикливайтесь на X-Spam-Status. Добавляйте свой хедер, например X-Spam-Ztatuz. И именно его наличие проверяйте фильтрами.
Хотя, в принципе, архитектурно чище будет пропускать всю почту через роутер-чистильщик, который вычищает все ненужные хедеры, и затем через unseen сбрасывает письмо для дальнейшей обработки. Но лично мне такой вариант не подходит, как раз из-за необходимости юзать ацли на стадиях CONN, RCPT и DATA.
>> хочеться дропнуть его до приема.
> А вы не зацикливайтесь на X-Spam-Status. Добавляйте свой хедер, например X-Spam-Ztatuz.
> И именно его наличие проверяйте фильтрами.
> Хотя, в принципе, архитектурно чище будет пропускать всю почту через роутер-чистильщик,
> который вычищает все ненужные хедеры, и затем через unseen сбрасывает письмо
> для дальнейшей обработки. Но лично мне такой вариант не подходит, как
> раз из-за необходимости юзать ацли на стадиях CONN, RCPT и DATA.Я же о томже. Как правильно написать проверку в ACL-e?
> Я же о томже. Как правильно написать проверку в ACL-e?acl_data:
. . . . .
warn spam = spamd
add_header = X-Spam-Header: $spam_score_int
condition = ${if >{$spam_score_int}{49}{1}{0}}
logwrite = $spam_score_int
. . . . .
accept
Всякое письмо, набравшее более 4.9 балла от СА, поимеет хедер X-Spam-Header, который потом можно искать и обрабатывать фильтрами.
Но мне больше нравится сортировка писем довекотовским сивом.
>[оверквотинг удален]
>>> Эмм, я правильно понимаю, что хидера идут в DATA ?
>> Эххххх шли бы они в DATA я бы ничего и не делал.
>> Мне нада проверять до приема DATA. Даже наверное до "#!!# ACL
>> that is used after the RCPT command" блока. Но енто не
>> суть. До DATA будет хорошо.
>> С уважением, Игорь.
> Крутил вертел на этапер роутов.. удаляеться хэадер. Но на этом этап уже
> поздно, уже письмо принялось и мне нада кудато его отправить. А
> хочеться дропнуть его до приема.
> С уважением, Игорь!_ну не понимаю я.... _
Как можно проверить _до приема_ DATA то, что приходит _в_ DATA ?
Вам нужно
1) принять данные
2) проверить хидера
3) дать SMTP-ответ на команду DATAт.е. принять данные нужно без подтверждения приема.
ну а далее, данные-то приняты уже... проверяем-доставляем, что уж там :-)
>[оверквотинг удален]
> drop
> condition = ${if def:header_X-Spam-Status:{false}}
> message = "Dropped due
> to contained X-Spam-Status flag"
> log_message = "Dropped
> due to contained X-Spam-Status flag"
> Но condition = ${if def:header_X-Spam-Status:{false}} возвращает мне пустую строку как
> бы я не извращался.
> Помогите пожалуйста.
> С уважением, Игорь.Давайте начнем сначала. Уберем этап на котором будем запускать ACL, а просто помогите мне написть эту ACL. Пройтись по headers найти X-Spam-Status и дропнуть. Все что нужно сделать.
> помогите мне написть эту ACL. Пройтись по headers найти X-Spam-Status и
> дропнуть. Все что нужно сделать.Дропнуть ЧТО? Хедер? Так хедеры на стадии АЦЛей неизменяемы, можно лишь задать хедеры, которые будут _добавлены_ при перебросе сообщения в роутеры. Определить хедеры, которые будут дропнуты, можно лишь в роутерах, но это уже сильно позже АЦЛей.
Поэтому давайте не ацли рисовать, а разбирать задачу в целом. Что, где, когда, как и вообще.