From raj@wsp.krakow.pl Sun Dec 3 18:47:40 2000 Path: spawn!man.tarnow.pl!news.tpi.pl!bti.pl!news.dtcentrum.com!news.memax.krakow.pl!news.cyf-kr.edu.pl!not-for-mail From: Jaroslaw Rafa Newsgroups: pl.comp.mail.mta Subject: Re: sendmail+procmail ROZWIAZANIE Date: 3 Dec 2000 11:56:03 GMT Organization: Akademia Pedagogiczna w Krakowie Lines: 70 Message-ID: <90dccj$mp3$1@info.cyf-kr.edu.pl> References: <8vbm6c$g1j$1@info.cyf-kr.edu.pl> NNTP-Posting-Host: ultra.wsp.krakow.pl X-Trace: info.cyf-kr.edu.pl 975844563 23331 149.156.24.24 (3 Dec 2000 11:56:03 GMT) X-Complaints-To: news@cyf-kr.edu.pl NNTP-Posting-Date: 3 Dec 2000 11:56:03 GMT X-Newsreader: TIN [UNIX 1.3 unoff BETA 970731; sun4u SunOS 5.5.1] Xref: spawn pl.comp.mail.mta:4612 Zapytalem jakis czas temu: > Kto mi krotko i zwiezle odpowie, co trzeba wpisac w sendmail.mc lub > sendmail.cf zeby podczepic procmaila do sendmaila jako defaultowy filtr > calej poczty? Poniewaz nikt jakos nie kwapil sie do odpowiedzi, poradzilem sobie sam, znalazlszy odpowiedz w archiwum listy dyskusyjnej o procmailu. Robi sie to nawet prosto (jak sie oczywiscie wie jak ;-)) A zatem aby podczepic procmaila do sendmaila tak, aby filtrowal CALA poczte przechodzaca przez serwer, trzeba po pierwsze: miec zdefiniowanego w pliku sendmail.mc mailera "procmail". To nie jest to samo, co podczepienie procmaila jako lokalnego MDA, co mi pare osob proponowalo - to ostatnie robi sie przez wpis "FEATURE(local_procmail)", a to o czym ja pisze przez "MAILER(procmail)". Gdy juz mamy tego mailera, to w pliku sendmail.cf trzeba dodac regule kierujaca do niego cala poczte. W pierwszej linijce reguly 0 dopisujemy: R$* $: $>99 $1 do procmail checks i dodajemy regule 99: ################################################################### ### Ruleset 99 -- procmail part of ruleset zero (can be null) ### ################################################################### S99 R$*<@$+.procmail>$* $@ $1<@$2>$3 # already filtered R$*<@$+>$* $#procmail $@/etc/mail/procmail.rc $:$1<@$2.procmail>$3 Reguly filtrowania dla procmaila sa w pliku /etc/mail/procmail.rc. Trzeba pamietac ze ostatnia regula musi miec postac: :0 ! -oi -f "$@" (ona zwraca wszystkie listy, ktorych procmail nie odfiltrowal, sendmailowi do dalszej wysylki). I to tyle... W moim przypadku, konkretna regula filtrujaca wirusa Romeo&Juliet (bo o to mi chodzilo) wyglada tak (moze sie komus przyda): :0 * ^Content-type:.*multipart { :0 Bh: virus.lock * window.showHelp.*juliet.chm * ^Content-type:.*application/x-msdownload * name=.*romeo.exe * !^X-Loop: MAILER-DAEMON@wsp.krakow.pl | (formail -I"MIME-Version:" -I"Content-type:" -I"X-Priority:" -I"X-MSMail-Priority:" -I"X-MimeOLE:" | \ tee -a /var/log/virus.log | \ formail -r -A"Precedence: junk" \ -I"Subject: wyslales wirusa / you sent a virus" \ -A"X-Loop: MAILER-DAEMON@wsp.krakow.pl" ; \ cat /etc/mail/virus.reply) | $SENDMAIL -t } :0 ! -oi -f "$@" W pliku /etc/mail/virus.reply umiescilem standardowa odpowiedz odsylana nadawcy listu z wirusem ;-). Dodatkowo regula loguje naglowki wszystkich listow z wirusami (bez nieistotnych pol) do pliku /var/log/virus.log - do tego sa dwie pierwsze komendy "formail" i "tee" - jezeli nie potrzebujemy logowania, mozna je pominac. Pozdrowienia, Jaroslaw Rafa raj@inf.wsp.krakow.pl