Kahetasemelise Postfix'i süsteemi kasutamine Debianiga

Allikas: Kuutõrvaja

Sissejuhatus

Turvalisuse, jõudluse või lihtsalt süsteemi modulaarsuse asjaoludest lähtudes seadistakse vahel Postfix süsteemi käima kahetasemeliselt, nö kahel perimeetril, kusuures kõige ees saab täiendavalt pidada greylistingut.

  • greylisting - esimene perimeeter
  • relee - teine perimeeter, internetist smtp ühenduste vastuvõtmine, adressaadikontroll, viirustõrje ning spämmianalüüs
  • delivery - kolmas perimeeer, kirjade postkastidesse jagamine ja aliaste alusel edasisaatmine, listimootorid
             internet
 
                 |
               __|__  
              |     |
              | TM  | OpenBSD spamd (greylisting)
              |_____|
                 |
                 |
             ----|--------|-----------------------------------|------
                          |                                   |
                        __|__                               __|__
                       |     |                             |     |
                       |_____|                             |_____|
 
                     RELEE-MTA1                          DELIVERY-MTA2
                       ClamAV                             @lists.loomaaeed.tartu.ee listid
                     Spamassassin                         @loomaaed.tartu.ee postkastid

Relee seadistamine

Relee arvuti võtab kirjad internetist vastu, aga ei teosta nendega local deliverit, vaid peale adressaadikontrolli ning viiruse ja spämmi kontrolle saadab edasi delivery arvutile.

Adressaadikontroll

Kahetasemelise Postfixi süsteemi puhul on oluline, et relee kontrolliks vastuvõetud kirja adressaati selleks, et saaks sama smtp sessiooni sees anda vajadusel smtp kliendile 550 veateate 'Recipient address rejected: User unknown in relay recipient table'. Vastasel korral võtab relee olematu adressaadile saadetud kirja vastu, pöördub delivery arvuti poole, saab sealt ise 550 teate ja saadab tema poole algselt pöördunud kasutaja envelope aadressil uue kirja veateatega. Kuna aga väga suure tõenäosusega on olematule adressaadile saadetud kiri võltsitud ümbriku aadressidega, siis raiskab postisüsteem asjata oma ressurssi ning risustab internetti järjekordse mõttetu kirjaga, efektiivselt ise spämmi tekitades. Sellise järgnevuse tulemusel saadetud veateate kohta öeldakse "backscatter".

Adressaati saab kontrollida relee arvutis relay_recipient_maps direktiiviga, nt selliselt

 relay_recipient_maps = hash:/etc/postfix/relay_recipients pgsql:/etc/postfix/relay_recipients-pgsql

kus fail /etc/postfix/relay_recipients-txt sisaldab adressaatide või domeeninimede nimekirja, nt

 mart@loomaaed.tartu.ee
 priit@loomaaed.tartu.ee
 @test.loomaaed.tartu.ee

baasi genereerimiseks tuleb öelda

 # postmap /etc/postfix/relay_recipients-txt

/etc/postfix/relay_recipients-pgsql sisaldab baasi ühenduse kirjeldust, nt

 user = cyrus_auth
 password = parool
 hosts = baas.looomaaed.tartu.ee
 dbname = postisysteem
 table = tla.cyrus_auth
 select_field = rcpt
 where_field = alias

Kas adressaat on kontrollitav saab testida öeldes

 # postmap -q mart@loomaaed.tartu.ee pgsql:/etc/postfix/relay_recipients-pgsql
 mart@cyrus.tla

Olematu aadressi küsimisel ei anta vastust ning exit code on 1.

Logis paistab, et andmevahetus kliendiga lõpetati enne kirja sappa võtmist, NOQUEUE (ingl. k. mitte sappa lisatud)

 Jul  8 19:54:09 smtp1a postfix/smtpd[15869]: NOQUEUE: reject: RCPT from vmail.sone.ee[192.168.5.205]: \
   550 5.1.1 <tonn.saadre@loomaaed.tartu.ee>: Recipient address rejected: User unknown in relay recipient table; \
   from=<tiiterror@bmail.com> to=<tonn.saadre@loomaaed.tartu.ee> proto=ESMTP helo=<vmail.sone.ee

Viiruste ja spämmi analüüs

Viirute ja spämmi analüüsi saab relee arvutis korraldada tarkvaraga Amavis, ClamAV ja Spamassassin nii nagu on juhatatud tekstis http://kuutorvaja.eenet.ee/wiki/Amavis_kasutamine_Debian_Lenniga

SMTP ruuting

Nn SMTP ruutingu abil saadab relee vastuvõetud posti edasi delivery arvutile. /etc/postfix/main.cf failis tuleb smtp ruutingu tegemiseks kasutada selliseid direktiive

 relay_domains = loomaaed.tartu.ee
 transport_maps = hash:/etc/postfix/transport

ja transport map failis rida

 loomaaed.tartu.ee :[localdelivery.loomaaed.tartu.ee]

map'i moodustamiseks öelda

 # postmap /etc/postfix/transport

tulemusena tekib faili

 # file /etc/postfix/transport.db
 /etc/postfix/transport.db: Berkeley DB (Hash, version 9, native byte-order)

Delivery seadistamine

Delivery arvuti võtab kirju vastu ainult relee arvutilt ning teostab local delivery või saadab kirjad edasi vastavalt aliaste lahendumisele.

main.cf failis sisaldub mydestination real domeeninimi

 mydestination = localhost, loomaaed.tartu.ee

Kasulikud lisamaterjalid