2 вопроса по exim

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

2 вопроса по exim

Сообщение mclaud » 01 авг 2005, 20:18

Сабдж.
1. Как сделать так, чтоб почта, помеченная SA как спам (exiscan) не отбрасывалась, а пересылалась юзеру spam@any.ru? Можно ли будет после этого скармливать неправильно определившиеся письма SA?
2. Возможно ли ограничить кол-во писем с каждого хоста допустим 5 за 5 минут?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Re: 2 вопроса по exim

Сообщение corvax » 01 авг 2005, 21:19

mclaud писал(а):Сабдж.
1. Как сделать так, чтоб почта, помеченная SA как спам (exiscan) не отбрасывалась, а пересылалась юзеру spam@any.ru? Можно ли будет после этого скармливать неправильно определившиеся письма SA?
нужно заменить deny на warn, вставлять нужное поле в заголовки, а в системном фильтре делать с такими письмами все, что душе угодно (включая пересылку/доставку какому-то там юзеру)
mclaud писал(а):2. Возможно ли ограничить кол-во писем с каждого хоста допустим 5 за 5 минут?
возможно, но придется поднапрячься и создать базку (MySQL/PgSQL/DBM/etc), в которую писать timestamp каждого письма и $sender_host_address
при приеме письма в acl_check_rcpt нужно выполнять запрос к базке, получать количество коннектов с данного IP, сравнить его с предельным и при превышении отвергать (или деферить) письмо.

отдельно нужно будет по крону запускать скрипт, который будет старые записи удалять из базки.

отдельно можно организовать файл, в котором будут указаны разные предельные количества коннектов с разных хостов/сетей
--
/corvax

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

Сообщение mclaud » 02 авг 2005, 14:20

поправь пож-та если не прав: в ACL

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

warn  message = SPAM
        ! hosts = +relay_from_hosts
        spam = nobody:true
        condition = ${if >{$spam_score_int}{83}{1}{0}}
а в TRANSPORTS

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

if Subject is *SPAM* then redirect to spam@any.ru

ТАК?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 авг 2005, 14:45

mclaud писал(а):поправь пож-та если не прав: в ACL

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

warn  message = SPAM
        ! hosts = +relay_from_hosts
        spam = nobody:true
        condition = ${if >{$spam_score_int}{83}{1}{0}}
при warn значение message будет интерпретировано как вставляемое поле. т. е. лучше сделать примерно так:

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

warn message = X-Spam-Quarantined: YES
mclaud писал(а):а в TRANSPORTS

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

if Subject is *SPAM* then redirect to spam@any.ru

ТАК?
если нуждо доставлять такие письма локально, я бы сделал это в системном фильтре
--
/corvax

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

Сообщение mclaud » 02 авг 2005, 15:01

если нуждо доставлять такие письма локально, я бы сделал это в системном фильтре
как именно если не секрет и  Можно ли будет после этого скармливать неправильно определившиеся письма SA?

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

Сообщение mclaud » 02 авг 2005, 15:58

2 corvax:  :?:

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 авг 2005, 16:21

mclaud писал(а):
если нуждо доставлять такие письма локально, я бы сделал это в системном фильтре
как именно если не секрет
реально работающий пример:

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

if $h_X-Spam-Score: contains "++++++++++" then
        logwrite "$tod_log $message_id saved because of certainly spam detected"
        unseen save /var/vmail/bsd.falbi.kiev.ua/corvax/.spam.certainly-spam/ 640
endif
это доставка в maildir виртуального пользователя
mclaud писал(а):Можно ли будет после этого скармливать неправильно определившиеся письма SA?
если кто-то по IMAP сможет читать эти письма, то скармливать их обучалке тоже можно
все зависит от обертки, которую вы напишите для sa-learn
у меня есть схемы и для imap+mailbox и для imap+user maildir и для imap+virtual maildir
--
/corvax

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 авг 2005, 16:22

mclaud писал(а):2 corvax:  :?:
не понял
это был просто вопросительный знак к предыдущей мессаге? :)
--
/corvax

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

Сообщение mclaud » 02 авг 2005, 16:31

реально работающий пример:
Код:
if $h_X-Spam-Score: contains "++++++++++" then
        logwrite "$tod_log $message_id saved because of certainly spam detected"
        unseen save /var/vmail/bsd.falbi.kiev.ua/corvax/.spam.certainly-spam/ 640
endif

это доставка в maildir виртуального пользователя
Локальный-это хорошо, но у меня exim - это шлюз. Я попробовал
MAIN
system_filter = /usr/local/etc/exim/filter


cat /usr/local/etc/exim/filter
if subject *X-SPAM* then redirect to spam@

пишет unrecognized condition word "*X-SPAM*" near line 1 of filter file. Может поставить как у тебя
if subject contains *X-SPAM* then redirect to spam@?

corvax:  

не понял
это был просто вопросительный знак к предыдущей мессаге?
АГА :lol:

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 авг 2005, 16:40

mclaud писал(а):
реально работающий пример:
Код:
if $h_X-Spam-Score: contains "++++++++++" then
       logwrite "$tod_log $message_id saved because of certainly spam detected"
       unseen save /var/vmail/bsd.falbi.kiev.ua/corvax/.spam.certainly-spam/ 640
endif

это доставка в maildir виртуального пользователя
Локальный-это хорошо, но у меня exim - это шлюз. Я попробовал
MAIN
system_filter = /usr/local/etc/exim/filter


cat /usr/local/etc/exim/filter
if subject *X-SPAM* then redirect to spam@

пишет unrecognized condition word "*X-SPAM*" near line 1 of filter file.
ясен пень. синтаксис же совершенно не соответствует требованиям к написанию фильтров эксима
mclaud писал(а):Может поставить как у тебя
if subject contains *X-SPAM* then redirect to spam@?
ну и для чего тогда в subject вставлять слово *X-SPAM*?
конечно, если сильно хочется, то можно попробовать использовать такую конструкцию:

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

if $h_Subject: contains "*X-SPAM*" then
        deliver spam@domain.tld
endif
надо только еще вставить проверку на наличие этого самого spam@domain.tld в списке получателей. и если он есть, то не выполнять повторный deliver, чтобы не получить лупов...

кроме того, я бы никак не модифицировал поле Subject, а использовал бы свое поле (типа X-Spam-Quarantined, как я и советовал парой мессаг выше)

а вообще-то, надо перед написанием фильтров прочесть filter.txt, чтобы не писать в них всякий бред
--
/corvax

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

Сообщение mclaud » 02 авг 2005, 16:57

теперь

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

warn message = X-Spam-Quarantined: YES
        ! hosts = +relay_from_hosts 
        spam = nobody:true 
        condition = ${if >{$spam_score_int}{83}{1}{0}}

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

cat /usr/local/etc/exim/filter
if $h_Subject: contains *X-Spam-Quarantined* then
deliver spam@ endif
Как только проверить...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 авг 2005, 17:06

mclaud писал(а):теперь

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

warn message = X-Spam-Quarantined: YES
        ! hosts = +relay_from_hosts 
        spam = nobody:true 
        condition = ${if >{$spam_score_int}{83}{1}{0}}

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

cat /usr/local/etc/exim/filter
if $h_Subject: contains *X-Spam-Quarantined* then
deliver spam@ endif
все же не хочется писать, в чем именно фонарность условия вышеописанного
можно наверное и самому догадаться
и еще - это специально домена нет в адресе для доставки?
mclaud писал(а):Как только проверить...
почитать наконец доку на фильтры
так английским-по-белому написано, как тестировать фильтры
--
/corvax

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

Сообщение mclaud » 02 авг 2005, 17:17

/usr/local/etc/exim/bin/exim -bf /usr/local/etc/exim/filter < /var/mail/admin
Warning: no message headers read
Return-path copied from sender
Sender      = root@unix.vniidad.ru
Recipient   = root@unix.vniidad.ru
Testing forward file file "/usr/local/etc/exim/filter"

exim: error in forward file: missing or malformed local part (expected word or "<") in "if $h_Subject: contains *X-Spam-Quarantined* then"

ну не понимаю в чем дело :x

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 02 авг 2005, 17:27

mclaud писал(а):/usr/local/etc/exim/bin/exim -bf /usr/local/etc/exim/filter < /var/mail/admin
Warning: no message headers read
Return-path copied from sender
Sender      = root@unix.vniidad.ru
Recipient   = root@unix.vniidad.ru
Testing forward file file "/usr/local/etc/exim/filter"

exim: error in forward file: missing or malformed local part (expected word or "<") in "if $h_Subject: contains *X-Spam-Quarantined* then"

ну не понимаю в чем дело :x
что-то мне это уже начинает надоедать...
1. после contains строка должна быть в кавычках. это ясно следует из моего примера
2. какого фига вокруг X-Spam-Quarantined появились звездочки?
3. какое отношение вся эта конструкция имеет к полю Subject?
--
/corvax

Аватара пользователя
mclaud
Advanced member
Сообщения: 79
Зарегистрирован: 20 апр 2005, 12:56
Откуда: Москва
Контактная информация:

Сообщение mclaud » 02 авг 2005, 17:38

то ли лыжи не едут...
exim: error in forward file: missing or malformed local part (expected word or "<") in "if $message_body: contains "X-Spam-Quarantined" then"

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 22 гостя