Всем приветик, коллеги.
Есть небольшой вопросик по указанной связке. Фильтры на вирусы и спам я прикрутил, все работает. Спам помечается, вирусы удаляются. Но хочется письма, помеченные как спам, перенаправлялись на другой адрес? В связке sendmail + spamass-milter можно было в самом мильтере указать, на какой адрес перенаправлять спам. А здесь не могу найти. Фильтр настроен так:-----master.cf---------
# check mail with spamd and kaspersky
avcheck unix - n n - 5 pipe
flags=q user=avpclient argv=/usr/bin/spamc -u avpclient -e /var/spool/filter/avp/avcheck
-i /var/spool/filter/avp/infected/infected.ex2.ru -h Ok
-d /var/spool/filter/avp/./tst -s AVP:/var/spool/filter/avp/ctl/AvpCtl -f ${sender}
-S :1025 -- ${recipient}localhost:1025 inet n - n - - smtpd -o content_filter=
Например так:
header_checks=pcre:/postfix/is_spamis_spam:
/^X-SPAM-FLAG:\sYES/ REDIRECT user@domain
>Например так:
>header_checks=pcre:/postfix/is_spam
>
>is_spam:
>/^X-SPAM-FLAG:\sYES/ REDIRECT user@domainВ main.cf поставил так:
----------------------
content_filter=avcheck
header_checks=pcre:/etc/postfix/header_filter
----------------------Создал файл такого содержания:
-------header_filter---------
/^X-SPAM-FLAG:\sYES/ REDIRECT rapira@company.ru
/^Subject: ****SPAM/ REDIRECT rapira@company.ru
-----------------------------Это все? Не работает, :(((. Я только начал изучать постфикс, всех тонкостей не знаю еще. Подскажите как? Смысл такой, чтобы сначала письмо проверялось спамером, если флаг принимал значение YES. то письмо перенаправлялось на другой адрес.
>Создал файл такого содержания:
>-------header_filter---------
>/^X-SPAM-FLAG:\sYES/ REDIRECT rapira@company.ru
Это был только пример!
Подставьте сюда regexp для реального флага который выставляет ваш spamassassin...>/^Subject: ****SPAM/ REDIRECT
Учитесь писать regexp'ы.
Прежде чем включить header_checks в main.cf протестируйте файл с regexp'ами с помощью postmap
>>Создал файл такого содержания:
>>-------header_filter---------
>>/^X-SPAM-FLAG:\sYES/ REDIRECT rapira@company.ru
>Это был только пример!
>Подставьте сюда regexp для реального флага который выставляет ваш spamassassin...
>
>>/^Subject: ****SPAM/ REDIRECT
>Учитесь писать regexp'ы.
>Прежде чем включить header_checks в main.cf протестируйте файл с regexp'ами с помощью
>postmapТак, хорошо, заголовок получается такой:
------------------
X-Spam-Prev-Subject: 1111111111111111111111
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on alukard.company.ru
X-Spam-Level: **
------------------
Пишу
-------header_filter---------
/^X-SPAM-FLAG:\YES/ REDIRECT rapira@company.ru
-----------------------------
Проверяю:
-----------------------------
postmap -q "/^X-SPAM-FLAG:\YES/ REDIRECT rapira@company.ru" pcre:header_filter
-----------------------------
Ответ пустой, в смысле ничего нет на выходе. Не работает, :((
>Пишу
>-------header_filter---------
>/^X-SPAM-FLAG:\YES/ REDIRECT rapira@company.ru
>-----------------------------
Зачем вы пробел эскейпите???>Проверяю:
>-----------------------------
>postmap -q "/^X-SPAM-FLAG:\YES/ REDIRECT rapira@company.ru" pcre:header_filter
>-----------------------------
>Ответ пустой, в смысле ничего нет на выходе. Не работает, :((
читайте man postmap, не поможет читайте еще раз
Hint: postmap -q "x-spam-flag: YES" pcre:/path/header_filter
>>Пишу
>>-------header_filter---------
>>/^X-SPAM-FLAG:\YES/ REDIRECT rapira@company.ru
>>-----------------------------
>Зачем вы пробел эскейпите???
>То есть строка должна выглядеть /^X-SPAM-FLAG: YES/?
>>Проверяю:
>>-----------------------------
>>postmap -q "/^X-SPAM-FLAG:\YES/ REDIRECT rapira@company.ru" pcre:header_filter
>>-----------------------------
>>Ответ пустой, в смысле ничего нет на выходе. Не работает, :((
>читайте man postmap, не поможет читайте еще раз
>Hint: postmap -q "x-spam-flag: YES" pcre:/path/header_filterАга, так выдала:
# postmap -q "x-spam-flag: YES" pcre:header_filter
REDIRECT rapira@test.ru
>То есть строка должна выглядеть /^X-SPAM-FLAG: YES/?
Да это один из вариантов.>Ага, так выдала:
># postmap -q "x-spam-flag: YES" pcre:header_filter
>REDIRECT rapira@test.ru
Теперь включайте header_checks в main.cf,
сделайте postfix reload (не обязательно)
и будет вам счастье:)
>Теперь включайте header_checks в main.cf,
>сделайте postfix reload (не обязательно)
>и будет вам счастье:)Там уже стоит так:
------------------------------------
# Gennadiy changed
#content_filter = lmtp:localhost:10025
content_filter=avcheck
header_checks=pcre:/etc/postfix/header_filter
------------------------------------Насколько я понимаю, первым должен сработать avcheck, вторым чек заголовков, но не работает. Я даже написал так:
------------------------------
/^Subject: SPAM/ REDIRECT rapira@company.ru
/^X-Spam-Flag: YES/ REDIRECT rapira@company.ru
------------------------------Но даже отправленное тестовое письмо с заголовком SPAM не перенаправляется на другой адрес. Приходит мне.
>Насколько я понимаю, первым должен сработать avcheck, вторым чек заголовков, но не
Порядок параметров не важен.Покажите master.cf
>Покажите master.cf# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
#
# Gennadiy changed
smtp inet n - n - - smtpd
#smtp inet n - n - - smtpd -o content_filter=spam
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628 inet n - n - - qmqpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
#qmgr fifo n - n 300 1 qmgr
qmgr fifo n - n 300 1 nqmgr
#tlsmgr fifo - - n 300 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
# Cyrus 2.1.5 (Amos Gouaux)
cyrus unix - n n - - pipe
user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient# check mail with spamd and kaspersky
avcheck unix - n n - 5 pipe
flags=q user=avpclient argv=/usr/bin/spamc -u avpclient -e /var/spool/filter/avp/avcheck
-i /var/spool/filter/avp/infected/infected.ex2.ru -h Ok
-d /var/spool/filter/avp/./tst -s AVP:/var/spool/filter/avp/ctl/AvpCtl -f ${sender}
-S :1025 -- ${recipient}localhost:1025 inet n - n - - smtpd -o content_filter=
>>Покажите master.cf
Выглядит хорошо...
В логах есть что-либо интересное от cleanup?
header_size_limit не трогали?
>>>Покажите master.cf
>Выглядит хорошо...
>В логах есть что-либо интересное от cleanup?
>header_size_limit не трогали?Похоже REDIRECT как команду не понимает.
>>Насколько я понимаю, первым должен сработать avcheck, вторым чек заголовков, но не
>Порядок параметров не важен.
>
>Покажите master.cfВот что в логе:
unknown command in header_checks map: REDIRECT rapira@company.ru
>Вот что в логе:
>unknown command in header_checks map: REDIRECT rapira@company.ru
Версия postfix?
>>Вот что в логе:
>>unknown command in header_checks map: REDIRECT rapira@company.ru
>Версия postfix?postfix-2.0.11-4, что идет в стандартном RedHAT EL 3.0
>>>Вот что в логе:
>>>unknown command in header_checks map: REDIRECT rapira@company.ru
>>Версия postfix?
>postfix-2.0.11-4, что идет в стандартном RedHAT EL 3.0
REDIRECT появился в 2.1 - обновляйтесь, кроме этого получите еще кучу вкусностей.
>>postfix-2.0.11-4, что идет в стандартном RedHAT EL 3.0
>REDIRECT появился в 2.1 - обновляйтесь, кроме этого получите еще кучу вкусностей.
>Спасибо, попробую обновиться... Напишу.
>>postfix-2.0.11-4, что идет в стандартном RedHAT EL 3.0
>REDIRECT появился в 2.1 - обновляйтесь, кроме этого получите еще кучу вкусностей.
>Все, огромный сенкс, работает, :).
А если по описанию пытаюсь построить таблицу, то получаю такой ответ:---------------
[root@postfix]# postmap -fq "string" pcre:/etc/postfix/header_filter
postmap: warning: pcre map /etc/postfix/header_filter, line 1: error in regex at offset 11: nothing to repeat
>А если по описанию пытаюсь построить таблицу, то получаю такой ответ:
>
>---------------
>[root@postfix]# postmap -fq "string" pcre:/etc/postfix/header_filter
>postmap: warning: pcre map /etc/postfix/header_filter, line 1: error in regex at offset
>11: nothing to repeat
Это ваши " ***SPAM" - учитесь писАть regexp'ы
Hint: "\*"
>>А если по описанию пытаюсь построить таблицу, то получаю такой ответ:
>>
>>---------------
>>[root@postfix]# postmap -fq "string" pcre:/etc/postfix/header_filter
>>postmap: warning: pcre map /etc/postfix/header_filter, line 1: error in regex at offset
>>11: nothing to repeat
>Это ваши " ***SPAM" - учитесь писАть regexp'ы
>Hint: "\*"А postmap создает какую-то таблицу или просто проверяет соотв-е таблицы на что-то?
>А postmap создает какую-то таблицу или просто проверяет соотв-е таблицы на что-то?
Прочитайте man postmap
Вам нужно будет сделать что-то типа
postmap -q "Строка_со_спам_флагом" pcre:/etc/postfix/имя_таблицы
Просто включи эту связку через amavisd-new
>Просто включи эту связку через amavisd-new
А зачем? Она работает. Просто надо в самом конце, когда идентифицирован спам, перенаправить письмо на другой ящик.
>>Просто включи эту связку через amavisd-new
>А зачем? Она работает. Просто надо в самом конце, когда идентифицирован спам,
>перенаправить письмо на другой ящик.Ну, тогда туды же еще добавить procmail для обработки. Тоже стандартный способ.
Через амавис просто удобно работать