The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Postfix filter:dummy"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Postfix filter:dummy"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 25-Мрт-05, 12:17  (MSK)
Всем привет!
Есть система с установленным постфиксом настроенным на виртуальные домены.
Пытаюсь ко всему этому прикрутить фильтр (clamfilter)

Делаем по инструкции

1. Edit master.cf and put there:
filter  unix  -  n  n  -  -  pipe  flags=R user=postfix \
    argv=/usr/local/bin/clamfilter -F admin@domain.com \
    -f ${sender} -- ${recipient}

2. Add the content_filter option to smtpd binary:
smtp  inet  n  -  n  -  -  smtpd -o content_filter=filter:dummy

3. Restart Postfix.

Работает, но только наполовину, а именно - если я отправляю почту через клиента с другой машины - фильтр срабатывает и вирус ловит

Mar 25 12:14:18 md postfix/pipe[71777]: 397CA164823: to=<root@domain.net>, orig_to=<root@otherdomain.net>, relay=filter, delay=0, status=sent (dummy)

а если я делаю
cat EIR.vir | mail -s "virus test" root@domain.net
То почта идет в обход фильтра

Mar 25 12:15:01 md postfix/virtual[71782]: 9FEF6164824: to=<root@domain.net>, orig_to=<root@otherdomain.net>, relay=virtual, delay=0, status=sent (delivered to maildir)

По логике вещей подумал и добавил строки -o content_filter=filter:dummy
к
local     unix  -       n       n       -       -       local -o content_filter=filter:dummy
virtual   unix  -       n       n       -       -       virtual -o content_filter=filter:dummy

Результат тот же.
Как сделать проверку в любом случае?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "Postfix filter:dummy"
Сообщение от jonatan Искать по авторуВ закладки(??) on 25-Мрт-05, 12:52  (MSK)
Если не ошибаюсь, то данном случае content_filter нужно указывать для pickup.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Postfix filter:dummy"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 25-Мрт-05, 12:56  (MSK)
>Если не ошибаюсь, то данном случае content_filter нужно указывать для pickup.

Получаем
status=bounced (Too many hops)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Postfix filter:dummy"
Сообщение от jonatan Искать по авторуВ закладки(??) on 25-Мрт-05, 13:42  (MSK)
Потому, что после скрипта (filter) письмо опять попадает к pickup и получается петля. Я подумаю, как этого избежать (если unk раньше не подскажет :) )
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Postfix filter:dummy"
Сообщение от unk Искать по авторуВ закладки(ok) on 25-Мрт-05, 14:27  (MSK)
Просто написать content_filter=filter:dummy в main.cf, а не в master.cf

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Postfix filter:dummy"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 25-Мрт-05, 14:35  (MSK)
>Просто написать content_filter=filter:dummy в main.cf, а не в master.cf

Просто - не получается, все равно получаем status=bounced (Too many hops)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Postfix filter:dummy"
Сообщение от unk Искать по авторуВ закладки(ok) on 25-Мрт-05, 14:37  (MSK)
>>Просто написать content_filter=filter:dummy в main.cf, а не в master.cf
>
>Просто - не получается, все равно получаем status=bounced (Too many hops)
А вы покажите master.cf и postconf -n|grep content_filter
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Postfix filter:dummy"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 25-Мрт-05, 14:43  (MSK)
>>>Просто написать content_filter=filter:dummy в main.cf, а не в master.cf
>>
>>Просто - не получается, все равно получаем status=bounced (Too many hops)
>А вы покажите master.cf и postconf -n|grep content_filter

[megadot@root postfix]# grep -v "#" master.cf
smtp      inet  n       n       n       -       -       smtpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
        -o fallback_relay=
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -      n        -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
old-cyrus unix  -       n       n       -       -       pipe
  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
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

filter  unix -  n       n      -        -       pipe
  flags=R
  user=filter
  argv=/usr/local/bin/clamfilter -F root@megadot.savelovo.net -f ${sender} -- ${recipient}

[megadot@root postfix]# postconf -n|grep content_filter
content_filter = filter:dummy

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Postfix filter:dummy"
Сообщение от unk Искать по авторуВ закладки(ok) on 25-Мрт-05, 14:49  (MSK)
>filter  unix -  n      
>n      -    
>   -       pipe
>
>  flags=R
>  user=filter
>  argv=/usr/local/bin/clamfilter -F root@megadot.savelovo.net -f ${sender} -- ${recipient}
Пардон я был не внимателен, ваш фильтр скорее всего использует sendmail(1) для возврата почты postfix - т.е. не smtp почту фильтровать им не получется.
(по крайней мере одним экземпляром postfix)
Используйте smtp фильтр или возвращайте почту posfix программкой типа minisendmail.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Postfix filter:dummy"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 25-Мрт-05, 14:55  (MSK)
>Пардон я был не внимателен, ваш фильтр скорее всего использует sendmail(1) для
>возврата почты postfix - т.е. не smtp почту фильтровать им не
>получется.
>(по крайней мере одним экземпляром postfix)
>Используйте smtp фильтр или возвращайте почту posfix программкой типа minisendmail.

Угу, его и использует
clamfilter.c:
#ifndef DELIVER                                  
#define DELIVER "/usr/sbin/sendmail"            
#endif            

Есть еще вопрос - как к данной конструкции прилепить еще фильтр типа:

smtp inet n - n - - smtpd
        -o smtd_recipient_restrictions=permit_mynetworks,check_relay_domains
        -o content_filter=spamassassin
  
  
spamassassin unix - n n - - pipe
        user=nobody argv=/usr/local/bin/spamc -f -e
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Postfix filter:dummy"
Сообщение от unk Искать по авторуВ закладки(ok) on 25-Мрт-05, 15:06  (MSK)
>Есть еще вопрос - как к данной конструкции прилепить еще фильтр типа:
Проще да лучше поставить что-то типа amavisd-new (народ на форуме очень хвалит) и будет у вас работать clamav, spamassassin и т.д. будет быстрее и лучше. Если не хотите amavisd, то можно приделать скриптовый кастыль - который получив письмо через pipe(8) сначала отдаст его clamav, а потом spamasssassin'у...
  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Postfix filter:dummy"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 25-Мрт-05, 15:09  (MSK)
>>Есть еще вопрос - как к данной конструкции прилепить еще фильтр типа:
>Проще да лучше поставить что-то типа amavisd-new (народ на форуме очень хвалит)
>и будет у вас работать clamav, spamassassin и т.д. будет быстрее
>и лучше. Если не хотите amavisd, то можно приделать скриптовый кастыль
>- который получив письмо через pipe(8) сначала отдаст его clamav, а
>потом spamasssassin'у...

Я уже пробовал через него и решил отказаться - каждый из его процессов кушает около 13 метров памяти. Достаточно много для программы-посредника.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Postfix filter:dummy"
Сообщение от unk Искать по авторуВ закладки(ok) on 25-Мрт-05, 15:14  (MSK)
>Я уже пробовал через него и решил отказаться - каждый из его
>процессов кушает около 13 метров памяти. Достаточно много для программы-посредника.
Дело ваше - ставьте скриптовую подпорку.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Postfix filter:dummy"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 25-Мрт-05, 15:24  (MSK)
>>Я уже пробовал через него и решил отказаться - каждый из его
>>процессов кушает около 13 метров памяти. Достаточно много для программы-посредника.
>Дело ваше - ставьте скриптовую подпорку.

Вопрос то вот в чем:
Если у меня уже есть такая конструкция:
smtp  inet  n  -  n  -  -  smtpd -o content_filter=filter:dummy

filter  unix  -  n  n  -  -  pipe  flags=R user=postfix \
    argv=/usr/local/bin/clamfilter -F admin@domain.com \
    -f ${sender} -- ${recipient}

Как можно сделать вызов еще одного фильтра?

smtp inet n - n - - smtpd
        -o smtd_recipient_restrictions=permit_mynetworks,check_relay_domains
        -o content_filter=spamassassin
  
spamassassin unix - n n - - pipe
        user=nobody argv=/usr/local/bin/spamc -f -e
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Postfix filter:dummy"
Сообщение от unk Искать по авторуВ закладки(ok) on 25-Мрт-05, 15:31  (MSK)
>Как можно сделать вызов еще одного фильтра?
Я же вам говорю - напишите скрипт который сначала запустит /usr/local/bin/clamfilter, а потом /usr/local/bin/spamc и запускайте этот скрипт в качестве фильтра через pipe(8).
Использовать команду content_filter для pipe(8) с фильтрами вашего типа нельзя - цепочку не построить.
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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