Amavis kasutamine Debian Lenniga

Allikas: Kuutõrvaja

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

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)

Kasulikud lisamaterjalid