Amavis kasutamine Debian Lenniga
Sisukord
- 1 Sissejuhatus
- 2 Tööpõhimõte
- 3 Eesmärk
- 4 Amavis
- 5 ClamAV
- 6 Spamassassin
- 6.1 Spamassassin paigaldamine
- 6.2 Spamassassin seadistamine
- 6.3 /usr/bin/spamassassin skripti kasutamine
- 6.4 spamd ja spamc kasutamine
- 6.5 Kasutajapõhine kasutamine
- 6.6 Amavis + Spamassassin seadistamine
- 6.7 sa-update
- 6.8 Amavis + Spamassassin töö kontrollimine
- 6.9 Postfix+Amavis logi lugemine
- 6.10 Razor
- 6.11 Pyzor
- 6.12 DCC
- 6.13 Bayesian filtri kasutamine
- 6.14 Amavis + Spamassassin töö kontrollimine
- 6.15 Kasulikud lisamaterjalid
- 7 Amavisi karantiinist kirjade väljasaatmine
- 8 Amavisi karantiini kataloogi puhastamine
- 9 Amavis reegliplokkide kasutamine
- 10 Amavisd-nanny
- 11 Amavisd-agent
- 12 Kasulikud lisamaterjalid
Sissejuhatus
Amavis http://www.ijs.si/software/amavisd/ tarkvara võimaldab postisüsteemi, nt Postfix, ühendada väliste teenustega ja nende väliste teenuste kasutamist juhtida. Hästi levinud on kasutada Amavisi juhtimisel sellist analüüsi teostavat tarkvara
- ClamAV - viiruste analüüsi tarkvara
- Spamassassin - spami analüüsi tarkvara
Tööpõhimõte
Käesolevas tekstis kirjeldatakse Postfixiga ühendatud Amavis abil väliste teenuste kasutamist töötlusse võetud (ingl. k. after-queue) kirjadega režiimis, st et kohalik postisüsteem on võtnud kirjaga tegelemist vastutuse endale. Sellises režiimis töötamisel peab tähelepanelikult jälgima, et ei saadeta internetti tagasi asjatuid veateateid, st praktiliselt tuleks kiri kas unustada või saata edasi adressaadile.
Tavaliselt avastab süsteem neljal erineval alusel ebasoovitavat posti
- viiruseanalüüs (ingl. k. virus checking)
- spämmianalüüs (ingl. k. spam scanning)
- keelatud failinimed/tüübid kirjade lisades (ingl. k. banned names/types)
- kirja päiste kontroll (ingl. k. headers_checks)
Kogu süsteemi tööd võiks kirjeldada selline joonis
____ | | Pyozor |____| | Postfix Amavis Spam- | Razor ____ ____ assassin _|__ ____ -------| |---------| |--------------| |-------| | |____| |____| |____| |____| | | | | _|__ _|__ | | | | |____| |____| DCC ClamAV
Eesmärk
Selleks, et käesoleva teksti fookus ära ei kaoks ning tekst ei muutuks üldsõnaliseks olgu seatud eesmärgiks seadistada käima selliste omadustega postisüsteem
- viiruste, spämmi, ebasobivate päiste ning lubamatute lisade osas analüüs toimub domeeni loomaaed.tartu.ee kirjadega; viirustega ja lubamatute lisadega kirjad unustatakse, spämm märgitakse ja saadetakse edasi; ebasobivate päistega kirjad saadetakse edasi
- viiruste, spämmi, ebasobivate päiste ning lubamatute lisade osas analüüs toimub domeeni zoopark.tartu.ee kirjadega; kirjad märgitakse, aga saadetakse edasi
- viiruste ja spämmi analüüsi ei toimu domeeni amavis.tartu.ee ning amavis@tartu.loomaaed.ee aadressi suhtes ja saadetakse edasi
- viiruste ja spämmi suhtes ei kontrollita ip aadressilt 192.168.1.152 saadetud posti
- lubamatute lisade hulka lisatakse järgnevusega '.paha' lõppeva nimega fail
- kõigile analüüsitud kirjadele on lisatud spammianalüüsil leitud tulemused X-Spam-* päiste kujul
- spämmiks arvatud kirjad saadetakse edasi, Subject algusse lisatakse ***** SPAM ******
Amavis
Amavis paigaldatakse öeldes
# apt-get install amavisd-new
ja ta sisaldab
- /etc/amavis/conf.d - seadistusfailid
- /usr/sbin/amavisd-new - deemon
- /usr/sbin/amavisd-release - karantiinitud kirjade haldamise utiliit
- /usr/share/doc/amavisd-new/examples/amavisd.conf-sample.gz - kommenteeritud seadistusfaili näidis
- /etc/init.d/amavis - käivitusskript
Amavis kasutamisel Debian Lenniga peab arvestama, et nö klassikalise amavisd.conf seadistusfaili asemel on kasutusel kataloogi /etc/amavis/conf.d paigutatud mitmete failide vahel jaotatud seadistusfailid.
Postfixi seadistamine
Vaikeseadistustega Amavis sobib Postfixiga nn after-queue režiimis kasutamiseks, mida on kirjeldatud tekstis /usr/share/doc/amavisd-new/README.postfix.gz.
- Amavis kuulab soketil 127.0.0.1:10024, sinna ühendub Postfix Amavis'i poole pöördumiseks
- Amavis pöördub MTA poole tagasi aadressile 127.0.0.1:10025
Selleks, et Postfix kõik talle laekunud posti saadaks läbi Amavisi peab lisama main.cf faili rea
content_filter=amavisfeed:[127.0.0.1]:10024
ning faili master.cf lisama sektsioonid
amavisfeed unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o smtp_tls_note_starttls_offer=no 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o smtpd_restriction_classes= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters -o local_header_rewrite_clients= -o smtpd_milters= -o local_recipient_maps= -o relay_recipient_maps=
Tõenäoliselt on Postfixi juures vaja näidata releetatavad domeenid, nt reaga
relay_domains = /etc/postfix/relay-domains.txt
kus faili sisu on
# cat /etc/postfix/relay-domains.txt loomaaed.tartu.ee zoopark.tartu.ee amavis.tartu.ee
Kuigi ülesandepüstituses seda vajadust ei ole kirjeldatud, selleks, et Amavis saaks saata vajadusel teateid peab lisama seadistusfaili /etc/amavis/conf.d/50-user read
$mailfrom_notify_admin="postmaster\@loomaaed.tartu.ee"; $mailfrom_notify_recip="postmaster\@loomaaed.tartu.ee"; $mailfrom_notify_spamadmin="postmaster\@loomaaed.tartu.ee"; $hdrfrom_notify_sender="postmaster\@loomaaed.tartu.ee";
ClamAV
ClamAV on vaba tarkvaraline viirustõrjeprogramm, mille kasutamisel tarvitatakse ClamAV tasuta viiruste kontrolli andmebaasi teenust. Tavaliselt kutsub Postfix ClamAV välja Amavise abil.
ClamAV paigaldamine
Tarkvara paigaldatakse tavaliselt Debian volatile arhiivis, selleks peab /etc/apt/sources.list sisaldama esimese reana
deb http://ftp.aso.ee/debian-volatile lenny/volatile main contrib non-free
Paigaldamiseks tuleb öelda
# apt-get install clamav clamav-daemon
ClamAV sisaldab
- /etc/init.d/clamav-daemon - deemoni käivitusskript
- /etc/init.d/clamav-freshclam - viiruste andmebaasi uuenduste kopeerimise deemoni käivitusskript
- /etc/clamav/clamd.conf - deemoni seadistusfail
- /etc/clamav/freshclam.conf - viiruste andmebaasi uuenduste deemoni seadistusfail
- /usr/sbin/clamd - deemon
- clamdscan, clamdtop, clamconf - utiliidid
Seadistamine
ClamAV kasutamist juhitakse Amavis seadistusfailidest ning ClamAV enda seadistusfailist ClamAV /etc/clamav/clamd.conf, kus sisalduvad vaikeväärtused võiksid sobida kasutamiseks.
ClamAV kasutamiseks tuleb lisada kasuaja clamav gruppi amavis selleks, et ClamAV saaks töödelda Amavis poolt lahti võetud kirja komponente nagu fail /etc/amavis/conf.d/15-av_scanners õpetab
# cat /etc/amavis/conf.d/15-av_scanners .. ### http://www.clamav.net/ ['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], # NOTE: remember to add the clamav user to the amavis group, and # to properly set clamd to init supplementary groups
Grupi lisamise tulemusena tekib
# grep clamav /etc/group amavis:x:108:clamav
Selleks, et Amavis ei saadaks kirju nn viiruste administraatorile, tuleb seaditada failis /etc/amavis/cond.d/50-user muutujale tühi väärtus
$virus_admin="";
Lõpuks tuleb ClamAV kasutamine Amavis seadistusfailist /etc/amavis/conf.d/15-content_filter_mode lülitada sisse reaga
@bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
ClamAV deemoni kasutamine
Käivitamine toimub öeldes
# /etc/init.d/clamav-daemon start
Käsurealt saab utiliidi clamdscan abil kontrollida faili
$ clamdscan -v /usr/share/doc/postfix /usr/share/doc/postfix: OK ----------- SCAN SUMMARY ----------- Infected files: 0 Time: 0.224 sec (0 m 0 s)
Parasjagu kehtestatud seadistusi näeb öelda
# clamconf
Parasjagu toimuvat viiruste analüüsi kohta näeb andmeid utiliidi clamdtop abil
TODO pilt
Käsureautiliidi clamscan kasutamine
Utiliit clamscan sobib kasutamiseks ilma ClamAV deemonita
$ clamscan /etc/mtab LibClamAV Warning: *********************************************************** LibClamAV Warning: *** This version of the ClamAV engine is outdated. *** LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq *** LibClamAV Warning: *********************************************************** /etc/mtab: OK ----------- SCAN SUMMARY ----------- Known viruses: 582914 Engine version: 0.95.1 Scanned directories: 0 Scanned files: 1 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 4.635 sec (0 m 4 s)
Viiruste andmebaasi uuendamine
ClamAV sisaldab deemonit freshclam, mille ülesandeks on kopeerida võrgust viiruste andmebaasi uuendusi, freshclam seadistusfail on /etc/clamav/freshclam.conf. Deemoni käivitamiseks tuleb öelda
# /etc/init.d/clamav-freshclam start
Logi tekib faili
/var/log/clamav/freshclam.log
Amavis + ClamAV töö kontrollimine
Aadressil http://www.eicar.org/anti_virus_test_file.htm on nö standardne viirus, mille nt ClamAV peaks avastama
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Katsetamiseks tuleks see salvestada tekstifaili reavahetusega lõpus ning lisada kirjale.
Selleks, et veenduda, kas Amavis + ClamAV on korrektselt seadistatud tuleks hankida üks viirus, nt eicar.com, ehk veel parem nö päris viirus ja proovida läbi saata. Süsteemi töötamisel logitakse midagi sellist ning saadetakse teade seadistatud aadressile
Jul 4 15:17:19 post-relee amavis[6792]: (06792-01) Blocked INFECTED (Worm.Mydoom.M), \ [192.168.32.82] [192.168.32.82] <root@ftp.loomaaed.tartu.ee> -> <root@loomaaed.tartu.ee>, quarantine: \ l/virus-lkiahh+wj51i, Message-ID: <Pine.LNX.4.64.0907041810280.2181@ftp.loomaaed.tartu.ee>, \ mail_id: lkiahh+wj51i, Hits: -, size: 41242, 925 ms Jul 4 15:17:19 post-relee postfix/smtp[6811]: 375DB6E44D: to=<root@loomaaed.tartu.ee>, \ relay=127.0.0.1[127.0.0.1]:10024, delay=398, delays=397/0.06/0.09/0.86, dsn=2.7.0, \ status=sent (250 2.7.0 Ok, discarded, id=06792-01 - VIRUS: Worm.Mydoom.M) Jul 4 15:17:19 post-relee postfix/qmgr[5947]: 375DB6E44D: removed
Päris viiruse võiks hankida kui nt mõnda töötava süsteemi karantiini salvestatud faili Icedove abil avada ja kirja lisa (nt .zip vms) salvestada.
Amavis + ClamAV kontrolli läbinud kirjale lisatakse päis
X-Virus-Scanned: Debian amavisd-new at relee.loomaaed.tartu.ee
Spamassassin
Spamassassin (ingl. k. palgamõrvar) http://wiki.apache.org/spamassassin/FrontPage on vaba tarkvraline spämmi analüüsi teostav programm.
Spamassassin paigaldamine
Spamassassin tarkvara paigaldamiseks tuleb öelda
# apt-get install spamassassin
Spamassassin sisaldab
- man Mail::SpamAssassin::Conf - seadistuste manuaal
- /usr/sbin/spamd - deemon
- /etc/default/spamassassin - seadistusfail
- /etc/spamassassin - seadistusfailid
- /etc/init.d/spamassassin - käivitusskript
- sa-learn - Bayesian filtri utiliit
- sa-update - seadistusfailide uuendused
Spamassassin seadistamine
Spamassassini töö juhtimine toimub osalt kaudselt Amavis seadistusfailidest ning otseselt Spamassassini enda seadistusfailidest. Spamassassin koosneb omakorda mitmetest komponentidest
- DNS testid - Spamcop, Spamhaus jt
- kontrollsummade kasutamisel põhinev hajus spämmitõrje andmebaas (ingl. k. checksum-based, distributed, collaborative, spam-detection-and-filtering network) - Vipul's Razor, Pyzor, DCC
- Bayesian analüüs - auto whitelisting (AWL)
- lokaalne uuendatav andmebaas spammi avastamiseks - kataloogis /var/lib/spamassassin/3.002005/updates_spamassassin_org, sa-update abil uuendatav
Spamassassinit saab kasutada mitmes režiimis
- postisüsteemiga kokkuühendatult, nt Postfixi abil; see juhtum vastab käesoleva teksti algul püstitatud eesmärgi täitmisele
- kasutajapõhiselt automaatselt väljakutsutuna, nt Procmail abil
- käsurealt väljakutsutuna
Lisaks saab Spamassassinit kasutada kas
- deemonina - pöördude tema poole nt spamc klientprogrammiga
- iseseisva skriptina - käivitades skripti '/usr/bin/spamassassin'
Spamassassini seadistamisel tuleb otsustada millise eposti jaoks millist analüüsi rakendada, nt kohtvõrgust lähtuvat eposti saab tõenäoliselt tagasihoidlikumalt analüüsida kui avalikust internetist saabuvaid kirju; ja otsustada kuidas Spamassassinit tööle välja kutsuda.
/usr/bin/spamassassin skripti kasutamine
Tarkvara paigaldamise õnnestumise testimiseks sobib Spamassassin käivitada ühe kirja jaoks debug režiimis
$ spamassassin -t -D < /tmp/kiri.txt 2>&1 | less
Sõltuvalt kiri.txt faili sisust võiks saada nt spam puhul sellise tulemuse
... Spam detection software, running on the system "relee.loomaaed.tartu.ee", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Find your soul mate now and meet other Christian Angles today From: Find Christian Angles <Angles@interetcapitalexchange.net> Date: Thu, 2 Jul 2009 10:51:21 -0400 (EDT) To: <mart@loomaaed.tartu.ee> [...] Content analysis details: (10.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 MISSING_MID Missing Message-Id: header 0.0 MISSING_DATE Missing Date: header -0.0 NO_RELAYS Informational: message was not relayed via SMTP 2.5 MISSING_HB_SEP Missing blank line between message header and body 1.6 MISSING_HEADERS Missing To: header 2.0 URIBL_BLACK Contains an URL listed in the URIBL blacklist [URIs: internetcapitalexchange.net] 2.9 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist [URIs: internetcapitalexchange.net] 1.3 MISSING_SUBJECT Missing Subject: header -0.0 NO_RECEIVED Informational: message has no Received headers 0.0 NO_HEADERS_MESSAGE Message appears to be missing most RFC-822 headers
/usr/bin/spamassassin kasutab seadistusfailina ~/.spamassassin/user_prefs faili.
spamd ja spamc kasutamine
spamd ja spamc moodustavad serveri ja kliendi paari. spamd kasutamiseks tuleb failis /etc/default/spamassassin rida
ENABLED=1
ning käivitada deemon käivitusskriptiga öeldes
# /etc/init.d/spamassassin start
Deemoni tööd saab juhtida seadistusfailidega kataloogist /etc/spamassassin, eriti failiga /etc/spamassassin/local.cf, vastavalt ülesandepüstitusele lülitatud sisse või välja sellised komponendid
- use_bayes 1
- bayes_auto_learn 1
- use_auto_whitelist 0
- skip_rbl_checks 1
spamc klient
- vaikimisi pöördub spamd teenusele poole aadressil localhost:783
- kasutab seadistusfaili /etc/spamassassin/spamc.conf
Ja nt -c võtme kasutamiselt ütleb exit code väärtuse abil, kas sisendtekst oli spam või ei olnud
$ spamc -c < /etc/mtab 5.4/5.0 $ echo $? 1
Kasutajapõhine kasutamine
TODO
Amavis + Spamassassin seadistamine
Spamassassini kasutamiseks Amavis kontrolli all tuleb Amavis seadistusfailist /etc/amavis/conf.d/15-content_filter_mode lülitada Spamassassin sisse reaga
@bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Üldiselt soovitatakse Amavisi seadistamiseks kasutada faili /etc/amavis/conf.d/50-user. Kirjutame sinna Spamassassini juhtimiseks teksti algul sõnastatud ülesandele vastavad read
- praktiliselt kõigile spammianalüüsi läbinud kirjadele lisataks vastavad kirjed päisesse
$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level
- aadressilt 192.168.1.152 saadetud kirju ei kontrollita
@mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10 192.168.1.152 ); $policy_bank{'MYNETS'} = { # clients in @mynetworks bypass_spam_checks_maps => [1], # don't spam-check internal mail bypass_banned_checks_maps => [1], # don't banned-check internal mail bypass_header_checks_maps => [1], # don't header-check internal mail bypass_virus_checks_maps => [1], };
- et releetatavate domeenide postile lisataks X-Spam-* päised
@local_domains_maps = ( read_hash("/etc/postfix/relay-domains.txt") );
- loomaaed.tartu.ee ning amavis@loomaaed.tartu.ee kirju ei analüüsita
@bypass_virus_checks_maps = ( [qw( amavis@loomaaed.tartu.ee amavis.tartu.ee )] ); @bypass_spam_checks_maps = ( [qw( amavis@loomaaed.tartu.ee amavis.tartu.ee )] );
sa-update
Kataloogis /var/lib/spamassassin/3.002005 asuvate seadistusfailide uuendamiseks tuleb öelda
# sa-update -D ... [3437] dbg: channel: metadata version = 759778 [3437] dbg: dns: 5.2.3.updates.spamassassin.org => 759778, parsed as 759778 [3437] dbg: channel: current version is 759778, new version is 759778, skipping channel [3437] dbg: diag: updates complete, exiting with code 1
Amavis + Spamassassin töö kontrollimine
Selleks, et veenduda, kas Amavis + Spamassassin töötab tuleks saata nn G-TUBE test-spam ning logisse võiks ilmuda midagi sellist
Jul 4 16:21:33 post-relee amavis[8261]: (08261-02) Blocked SPAM, \ [192.168.32.82] [192.168.32.82] <root@ftp.loomaaed.tartu.ee> -> <root@loomaaed.tartu.ee>, quarantine: 5/spam-5PWqM2GW335p.gz, \ Message-ID: <Pine.LNX.4.64.0907041920500.2181@ftp.loomaaed.tartu.ee>, mail_id: 5PWqM2GW335p, Hits: 1001.449, size: 774, 7291 ms
Mitte-spam kirjade puhul on kirjadele lisatud päisesse
X-Virus-Scanned: Debian amavisd-new at auul.pri.ee X-Spam-Flag: NO X-Spam-Score: 2.899 X-Spam-Level: ** X-Spam-Status: No, score=2.899 tagged_above=2 required=6.31 tests=[TVD_SPACE_RATIO=2.899]
Postfix+Amavis logi lugemine
Kui Postfixiga on ühendatud Amavis (ja omakorda sellega nt ClamAV), siis mail.log faili lugemine osutub pisut keerukamaks, ka seetõttu, et logitud kirjed ei paista olevat nö õiges järjekorras. Nt sellist 'tegelikku' logi
Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: 08F142ECE1: client=moraal.auul[192.168.2.38] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 08F142ECE1: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 08F142ECE1: from=<priit@loomaaed.tartu.ee>, size=505, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: disconnect from moraal.auul[192.168.2.38] Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: 2FA992ECF5: client=localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 2FA992ECF5: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: from=<priit@loomaaed.tartu.ee>, size=885, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: disconnect from localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a amavis[2039]: (02039-03) Passed CLEAN, LOCAL [192.168.2.38] [192.168.2.38] <priit@loomaaed.tartu.ee> -> <mart@loomaaed.tartu.ee>, \ Message-ID: <alpine.DEB.1.10.0902082310300.2613@moraal.auul>, mail_id: C+vCuhHWo1Nb, Hits: -, size: 505, queued_as: 2FA992ECF5, 84 ms Feb 8 23:10:35 smtp1a postfix/smtp[2142]: 08F142ECE1: to=<mart@loomaaed.tartu.ee>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.19, \ delays=0.1/0/0/0.09, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=02039-03, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 2FA992ECF5) Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 08F142ECE1: removed Feb 8 23:10:35 smtp1a postfix/smtp[2147]: 2FA992ECF5: to=<mart@loomaaed.tartu.ee>, relay=smtp.loomaaed.tartu.ee[192.168.32.85]:25, delay=0.03, \ delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 Ok: queued as 199E24DD30) Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: removed
võiks selguse parema arusaamise mõttes lugeda sellises järjekorras
- Postfix võtab kliendilt (moraal.auul) message id'ga 'alpine.DEB.1.10.0902082310300.2613@moraal.auul' kirja vastu, Postfixi sisemine kirja id on 08F142ECE1
Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: 08F142ECE1: client=moraal.auul[192.168.2.38] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 08F142ECE1: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 08F142ECE1: from=<priit@loomaaed.tartu.ee>, size=505, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: disconnect from moraal.auul[192.168.2.38]
- Postfix saadab kirja 08F142ECE1 edasi Amavisile, kusjuures see rida sisaldab ka infot selle kohta, et amavis reinjectis selle kirja tagasi Postfixi id'ga 2FA992ECF5
Feb 8 23:10:35 smtp1a postfix/smtp[2142]: 08F142ECE1: to=<mart@loomaaed.tartu.ee>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.19, \ delays=0.1/0/0/0.09, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=02039-03, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 2FA992ECF5)
- Amavis töötleb message id'ga 'alpine.DEB.1.10.0902082310300.2613@moraal.auul' kirja, peale Postfixi reinjecti on selle kirja id väärtus 2FA992ECF5
Feb 8 23:10:35 smtp1a amavis[2039]: (02039-03) Passed CLEAN, LOCAL [192.168.2.38] [192.168.2.38] <priit@loomaaed.tartu.ee> -> <mart@loomaaed.tartu.ee>, \ Message-ID: <alpine.DEB.1.10.0902082310300.2613@moraal.auul>, mail_id: C+vCuhHWo1Nb, Hits: -, size: 505, queued_as: 2FA992ECF5, 84 ms
- Postix võtab vastu kirja Amaviselt ning kirja töötlemine viiakse lõpuni, kiri saadetakse edasi järgmisele postimasinale, smtp.loomaaed.tartu.ee
Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: 2FA992ECF5: client=localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 2FA992ECF5: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: from=<priit@loomaaed.tartu.ee>, size=885, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: disconnect from localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a postfix/smtp[2147]: 2FA992ECF5: to=<mart@loomaaed.tartu.ee>, relay=smtp.loomaaed.tartu.ee[192.168.32.85]:25, delay=0.03, \ delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 Ok: queued as 199E24DD30) Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: removed
Razor
Tarkvara paigaldamiseks tuleb öelda
# apt-get install razor
Spamassassin + Razor koos kasutamiseks ei tule iseenesest teha muud kui tarkvara paigaldada, Spamassassin kasutab Razorit automaatselt kui see on süsteemi paigaldatud.
Razor suhtleb oma isandaga üle 2703/tcp pordi.
Pyzor
Tarkvara paigaldamiseks tuleb öelda
# apt-get install pyzor # pyzor discover # pyzor ping public.pyzor.org:24441 (200, 'OK')
Teksti kontrollimiseks tuleb öelda
$ cat /tmp/sample-spam.txt | pyzor check public.pyzor.org:24441 (200, 'OK') 153 0
DCC
Kuigi Spamassassin sisaldab DCC pluginat on see vaikimisi sisse lülitamata, kuna juba mõnda aega ei sisalda litsentsitingumuste tõttu Debiani paketihalduses dcc-client paketti.
Bayesian filtri kasutamine
TODO, sa-learn
Amavis + Spamassassin töö kontrollimine
Aadressil http://spamassassin.apache.org/gtube/ on nö standard spammi, mille nt Spamassassin peaks avastama
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Katsetamiseks tuleks see järgnevus sisestada kirja eraldi reane reavahetusega lõpus.
Kasulikud lisamaterjalid
- http://wiki.apache.org/spamassassin/
- http://en.wikipedia.org/wiki/SpamAssassin
- http://en.wikipedia.org/wiki/Vipul%27s_Razor
Amavisi karantiinist kirjade väljasaatmine
Amavisi pool karantiini pandud kirju saab saata edasi peale konkreetse kirjaga tutvumist
# less /var/lib/amavis/virusmails/U/banned-UtWYVe9vAJ-i
öeldes
# amavisd-release U/banned-UtWYVe9vAJ-i 250 2.0.0 Ok, id=rel-UtWYVe9vAJ-i, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 5147E6E3DB
Amavisi karantiini kataloogi puhastamine
Amavisi karantiini kataloogi /var/lib/amavis/virusmail täitumine võib mõjuda kogu süsteemi tööle halvasti, kui see asub /var või / failisüsteemis ja sellepärast on otstarbekas korraldada automaatselt karantiini sattunud vanade kirjade kustutamine. Kasutaja peab ise hindama, kuidas on sobiv teha, nt võiks sobida selline skript, mida käivitatakse cron tööna kord ööpäevas
# cat /root/system/clean-virusmails.sh #!/bin/bash find /var/lib/amavis/virusmails/. -type f -name 'virus-*' -ctime +14 -delete find /var/lib/amavis/virusmails/. -type f -ctime +50 -delete
Amavis reegliplokkide kasutamine
Amavis saab panna tööle nö virtuaalses režiimis, kus ta kuulab erinevatel soketitel, nt 10024 ja 10026 ning kasutab nende puhul erinevat seadistust. Nt saab selliselt hõlpsasti saavutada, et
- domeeni loomaaed.tartu.ee kirjadele rakendatakse ühte komplekti $final_*_destiny väärtusi - nt spam pass'itakse
- domeenile lists.loomaaed.tartu.ee kirjadele rakendatakse teist komplekti $final_*_destiny väärtusi - nt spam discard'itakse
Erinevatele soketitele vastavad erinevad nn reegliplokid, nt kirjeldame failis /etc/amavis/conf.d/50-user ploki LISTS_DISCARD_SPAM
$inet_socket_port = [ 10024, 10026 ]; # default listening socket $interface_policy{'10026'} = 'LISTS_DISCARD_SPAM'; $policy_bank{'LISTS_DISCARD_SPAM'} = { local_domains_maps => [ [qw( lists.loomaaed.tartu.ee )] ], bypass_spam_checks_maps => [ [qw( !lists.loomaaed.tartu.ee .)] ], final_virus_destiny => D_DISCARD, final_banned_destiny => D_DISCARD, final_spam_destiny => D_DISCARD, final_bad_header_destiny => D_PASS, };
Reegliplokki kirjeldades peab tähele panema, et süntaks erineb pisut nö tavalisest vastvate direktiivide esitusest. Nt
@bypass_spam_checks_maps = ( [qw( !lists.loomaaed.tartu.ee .)] );
asemel on reegliplokis
bypass_spam_checks_maps => [ [qw( !lists.loomaaed.tartu.ee .)] ],
Sellele reegliplokile saab kirju saata kasutades nt Postfixi smtpd_recipient_restrictions ja check_recipient_access konstruktsioone
# cat /etc/postfix/main.cf ... smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_recipient_access hash:/etc/postfix/amavis_lists_discard_spam
# cat /etc/postfix/amavis_lists_discard_spam lists.loomaaed.tartu.ee FILTER amavisfeed:[127.0.0.1]:10026
Tulemusena tekib logisse spammi puhul selline sissekanne
Jul 8 00:37:51 smtp1a amavis[2770]: (02770-02) Blocked SPAM, LISTS_DISCARD_SPAM \ [192.168.96.138] [192.168.96.138] <mart@loomaaed.pri.ee> -> <test@lists.loomaaed.tartu.ee>, quarantine: \ d/spam-d+rqVaScSKBr.gz, Message-ID: <4A53C02C.3090203@loomaaed.pri.ee>, mail_id: d+rqVaScSKBr, \ Hits: 7.319, size: 18006, 2233 ms Jul 8 00:37:51 smtp1a postfix/smtp[2788]: BF9B734F0E: to=<test@lists.loomaaed.tartu.ee>, \ relay=127.0.0.1[127.0.0.1]:10026, delay=2.4, delays=0.14/0.01/0/2.2, dsn=2.7.0, status=sent \ (250 2.7.0 Ok, discarded, id=02770-02 - SPAM)
Amavisd-nanny
# export AMAVISD_DB_HOME=/var/lib/amavis/db amavisd-nanny process-id task-id elapsed in elapsed-bar (dots indicate idle) or state idle or busy PID 05993: 0:00:35 .........:.........:.........:..... PID 05994: 0:17:33 .........:.........:.........:..... PID 05993: 0:00:37 .........:.........:.........:..... PID 05994: 0:17:35 .........:.........:.........:..... ...
Amavisd-agent
This is amavisd-agent, a demo program to display SNMP-like counters updated by amavisd-new.
entropy STR uScznvaFtA sysContact STR sysDescr STR amavisd-new-2.6.1 (20080629) sysLocation STR sysName STR mail.auul.pri.ee sysObjectID OID 1.3.6.1.4.1.15312.2.1 sysServices INT 64 sysUpTime Timeticks 140969 (0 days, 0:23:29.69) CacheAttempts 3 8/h 100.0 % (CacheAttempts) CacheMisses 3 8/h 100.0 % (CacheAttempts) ContentBannedMsgs 3 8/h 100.0 % (InMsgs) ContentBannedMsgsInbound 3 8/h 100.0 % (ContentBannedMsgs) ContentBannedMsgsInboundOrInt 3 8/h 100.0 % (ContentBannedMsgs) InMsgs 3 8/h 100.0 % (InMsgs) InMsgsInbound 3 8/h 100.0 % (InMsgs) InMsgsInboundOrInt 3 8/h 100.0 % (InMsgs) InMsgsRecips 3 8/h 100.0 % (InMsgs) InMsgsRecipsInbound 3 8/h 100.0 % (InMsgsInbound) InMsgsRecipsInboundOrInt 3 8/h 100.0 % (InMsgsInboundOrInt) InMsgsSize 0MB 0MB/h 100.0 % (InMsgsSize) InMsgsSizeInbound 0MB 0MB/h 100.0 % (InMsgsSize) LogLines 139 355/h 4633.3 % (InMsgs) OpsDec 3 8/h 100.0 % (InMsgs) OpsDecByArZip 3 8/h 100.0 % (InMsgs) OpsDecByArZipAttempt 3 8/h 100.0 % (InMsgs) OpsDecByMimeParser 3 8/h 100.0 % (InMsgs) OutConnNew 4 10/h 66.7 % (OutMsgs) OutConnQuit 2 5/h 33.3 % (OutMsgs) OutConnReuseFail 1 3/h 16.7 % (OutMsgs) OutConnReuseRecent 2 5/h 33.3 % (OutMsgs) OutConnTransact 6 15/h 100.0 % (OutMsgs) OutDsnMsgs 3 8/h 50.0 % (OutMsgs) OutMsgs 6 15/h 100.0 % (OutMsgs) OutMsgsDelivers 6 15/h 100.0 % (OutMsgs) QuarBannedMsgs 3 8/h 100.0 % (QuarMsgs) QuarMsgs 3 8/h 100.0 % (QuarMsgs) TimeElapsedDecoding 0 s 0.062 s/msg (InMsgs) TimeElapsedReceiving 0 s 0.041 s/msg (InMsgs) TimeElapsedSending 0 s 0.108 s/msg (InMsgs) TimeElapsedTotal 1 s 0.227 s/msg (InMsgs) OpsDecType-exe.exe-ms 3 8/h 100.0 % (InMsgs) OpsDecType-zip 3 8/h 100.0 % (InMsgs)