Postfix'i kasutamine Debianiga: erinevus redaktsioonide vahel

Allikas: Kuutõrvaja
Mine navigeerimisribaleMine otsikasti
Imre (arutelu | kaastöö)
Imre (arutelu | kaastöö)
 
(ei näidata sama kasutaja 200 vahepealset redaktsiooni)
1. rida: 1. rida:
===Sissejuhatus===
===Eesmärk===


Postfix on postiedastusagent (ingl. k. mail transport agent, MTA). Postiedastusagendi ülesanne on võtta epost võrgust või lokaalselt vastu ja anda edasi
Eesmärgiks on seadistada käima selliste omadustega postiedastusagent (ingl. k. Mail Transfer Agent, MTA) Postfix


* postijaotusagendile (ingl. k. mail delivery agent, MDA) kirjade kasutajate postkastidesse jaotamiseks
* internetist võetakse vastu domeeni loomaaed.tartu.ee kasutajate epostiaadressidele saadetud kirju aadressil 192.168.0.25
* järgmisele postiedastusagendile
* vastuvõetud loomaaed.tartu.ee domeeni kirjad salvestatakse postimasina failisüsteemi, st tehakse local delivery
* viiruste analüüsi süsteemile
* postimasina abil saab saata kirju välja internetti teistele kasutajatele alamvõrgus 192.168.0.0/24 asuvatest arvutitest
* spami analüüsi süsteemile
* kirjade avalikust võrgust vastuvõtmisel teostatakse saatja ip aadressidele DNSBL kontrolli Spamhaus zen.spamhaus.org nimekirja põhjal


Postiedastusagent on epostisüsteemi keskne komponent, mis ühendab kokku kõik eposti liikumisega toimuvad tegevused
                        internet 
 
                          ...
                    internet (teised MTA'd)
                            .
                            v
 
          192.168.96.138  _|_
                          |  | Tulemüür
                          |___|
                            |  192.168.0.254/24
                            |                      192.168.0.0/24 alamvõrk
    -----|---------|-------|--------------|-------------------------------
          |        |                      |
        _|_      _|_                    _|_  192.168.0.25/24
        |  |    |  |                  |  |
        |___|    |___|                  |___|
     
    Töökohaarvuti A                        Postimasin
    
    
                            | ^
                Töökohaarvuti B
                            v |
                            _____
  spämmi analüüs  <---->  |    | <---- lokaalne meilisaatja (nn /usr/sbin/sendmail STDIO)
  viiruste analüüs <---->  | MTA | <---- MTA klient, nt Icedove või Thunderbird
                          |_____| ----> postijaotusagent nt Cyrus või lihtsamal juhul kopeeritakse kiri faili /var/mail/kasutajanimilinefail


===Eesmärk===
Kuigi joonisel on kasutatud nö privaatseid aadresse kehtib loogilises mõttes esitus avalike aadresside kasutamise juhu kohta. Punktis [[:Postfix'i_kasutamine_Debianiga#Postimasina kasutamine tulemüüri taga NAT võrgus]] käsitletakse juhtumit, kui postimasin kasutab privaatset aadressi asudes aadress-teisendava tulemüüri taga.


Eesmärgiks on seadistada käima selliste omadustega postiedastusagent
Püstitatud eesmärki võiks kasutaja edasi arendada


* võtab vastu domeenide loomaaed.tartu.ee ja www.loomaaed.tartu.ee posti
* viiruste analüüsi ja täiendavad spämmianalüüsi lisamisega - [[:Amavis_kasutamine_Debian_Lenniga]]
* saadab mart@loomaaed.tartu.ee aadressile saadetud kirja edasi aadressile
* kasutajate postkastide pidamise lahendusega - [[:Cyruse_kasutamine_Postfixi_ja_Debianiga]]
* salvestab priit@loomaaed.tartu.ee aadressile saadetud kirja faili /var/mail/mart
* süsteemi kahetasemeliseks muutmine - [[:Kahetasemelise_Postfix'i_süsteemi_kasutamine_Debianiga]]
* võimaldab saata välja alamvõrkudest 192.168.0.0/24 ja 172.16.0.0/24 posti
* greylisting kasutamine postiedastusagendi ees tulemüüris - [[:OpenBSD_spamd_tarkvara_kasutamine]]


===Tarkvara paigaldamine===
===Nimesüsteemi ettevalmistamine===


Postfix tarkvara saab paigaldada Debiani paketihaldusest öeldes
Õigesti seadistatud nimesüsteem on postisüsteemi kasutamise eelduseks.


  bash# apt-get install postfix
====MX ja A kirje====


Tavaliselt siis eemaldatakse vaikimisi Debiani standard operatsioonisüsteemi kooseisus esinev Exim Postfixi vastu. Postfixi paigaldamisel tuleb valida 'General type of configuration', 'valime Internet Site'
Selleks, et avalikus internetis saaksid ülidselt teised kasutajad (nt Gmail kasutajad) saata kirju nt aadressil mart@loomaaed.tartu.ee peab olema avalikus nimesüsteemis kirjeldatud domeeni loomaaed.tartu.ee MX (mail exchange, meilivahetuskoht) kirje. Selleks tuleb pöörduda nimeteenuse pakkuja poole ning öelda milline on kasutatav avalik ip aadress ning millist domeeninime soovitakse kasutama asuda, põhimõtteliselt saab tehnilises mõttes sellise soovi alusel avalikus nimesüsteemis vajalikud muudatused teha.


* No configuration
MX kirje näeb välja nt selline
* Internet Site
* Internet with smarthost
* Satellite system
* Local only
 
Seejärel küsitakse 'mail name' väärtust, see hakkab esinema läbi selle postisüsteemi välja saadetud kirjade eposti aadresside @ märgist paremal
 
  loomaaed.tartu.ee
 
Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.


   Setting up postfix (2.3.8-2) ...
   $ dig @ns.nimeserver.ee loomaaed.tartu.ee mx
  Adding group `postfix' (GID 105) ...
   ...
  Done.
   ;; QUESTION SECTION:
  Adding system user `postfix' (UID 104) ...
   ;looomaaed.tartu.ee.                 IN      MX
  Adding new user `postfix' (UID 104) with group `postfix' ...
  Not creating home directory `/var/spool/postfix'.
  Creating /etc/postfix/dynamicmaps.cf
  Adding tcp map entry to /etc/postfix/dynamicmaps.cf
  Adding group `postdrop' (GID 106) ...
  Done.
  setting myhostname: ria-pg1a.test.kit
  setting alias maps
  setting alias database
  changing /etc/mailname
  setting myorigin
  setting destinations: loomaaed.tartu.ee, ria-pg1a.test.kit, localhost.test.kit, localhost
  setting relayhost:
   setting mynetworks: 127.0.0.0/8
  setting mailbox_command
  setting mailbox_size_limit: 0
  setting recipient_delimiter: +
   setting inet_interfaces: all
 
   Postfix is now set up with a default configuration. If you need to make
  changes, edit
  /etc/postfix/main.cf (and others) as needed.  To view Postfix configuration
  values, see postconf(1).
    
    
   After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
   ;; ANSWER SECTION:
  looomaaed.tartu.ee.          300    IN      MX      20 mail.loomaaed.tartu.ee.
    
    
   Running newaliases
   ;; AUTHORITY SECTION:
   Stopping Postfix Mail Transport Agent: postfix.
  looomaaed.tartu.ee.          300    IN      NS      ns1.loomaaed.tartu.ee.
   Starting Postfix Mail Transport Agent: postfix.
  looomaaed.tartu.ee.          300    IN      NS      ns2.loomaaed.tartu.ee.
   ;; ADDITIONAL SECTION:
  mail.loomaaed.tartu.ee.      300    IN      A      192.168.0.24
  ns1.loomaaed.tartu.ee.      86400    IN      A      192.168.193.163
   ns2.loomaaed.tartu.ee.      86400    IN      A      192.168.193.164


Postfixiga on seotud failisüsteemis sellised kataloogid ning failid
Kui kasutaja internetist püüab saata kirja aadressile mart@loomaaed.tartu.ee, siis toimub selline järgnevus


* /etc/postfix - Postfixi seadistusfailid
* kasutaja süsteemi postiedastusagent küsib avalikust nimesüsteemist loomaaed.tartu.ee postimasina nime, saab teada MX kirjest teada, et postimasina nimi on mail.loomaaed.tartu.ee
* /etc/mailname
* kasutaja süsteemi postiedastusagent saab lisaks A kirjest teada, et mail.loomaaed.tartu.ee postimasin asub aadressil 192.168.0.24
* /var/spool/postfix - saba (ingl. k. queue)
* kasutaja süsteemi postiedastusagent võtab aadressile mart@loomaaed.tartu.ee kirja saamise asjus ühendust soketil 192.168.0.25:25 töötava postiedastusagendiga
* /var/log/mail.log - logi
* /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb


===Seadistamine===
====PTR kirje====


Süsteemist väljuva posti ümbriku muutmiseks tuleb kasutada mail.cf failis rida
Tihtipeale on teised internetis töötavad postimasinad seadistatud käima selliselt, et nad konktrollivad, kas MX kirje domeeninimele (mail.loomaaed.tartu.ee) vastava ip aadressi (192.168.0.24) pöördteisendus on olemas, või veel enam, langeb kokku MX domeeninimega. Sellise kontrolli läbimiseks peab olema nimesüsteemis seadistatud korrentne PTR kirje, antud juhul selline


   smtp_generic_maps = hash:/etc/postfix/generic
   $ dig -x 192.168.0.24
 
ning /etc/postfix/generic ise sisaldab näiteks selliseid ridu
 
  www-data@arvuti.sisedomeen  www-bounce@valisdomeen.ee
  root@arvuti.sisedomee      www-bounce@valisdomeen.ee
 
Muudatuste kehtestamiseks tuleb generic'ikile vastav andmebaas moodustada käsuga
 
  # postmap /etc/postfix/generic
 
ning laadida reload'iga Postfix.
 
===Kasutamine===
 
Aliase olemasolu kontrollimiseks sobib öelda
 
  # postmap -q mart@loomaaed.tartu.ee pgsql:/etc/postfix/pgsql-local.cf
 
===Kirjade töötlemine välise programmiga===
 
Ühel või teisel põhjusel võib olla vaja sellist asjakorraldus, et kas postisüsteemi kõiki või vaid teatud tunnustele vastavaid kirju saaks töödelda välise programmiga. Ja selliselt, et väline programm saab andmeid oma stdio'sse ning järele mõned argumendid. Üheks võimaluseks seda korraldada on kostümiseeritud transporti kirjeldamise abil.
 
* /etc/postfix/main.cf faili tuleb lisada rida
 
  transport_maps = hash:/etc/postfix/transport
 
* /etc/postfix/transport failis peab sisalduma nt rida
 
  loomaaed.tartu.ee pf
 
ning tuleb öelda
 
  # postmap /etc/postfix/transport
 
* /etc/postfix/master.cf failis peab sisaldub sektsioon
 
  pf    unix  -      n      n      -      -      pipe 
  flags=RDX user=programmikasutaja argv=/bin/pf.pl ${user} ${domain}
 
ning kui /bin/pf.pl sisaldab nt
 
  #!/usr/bin/perl
  open (fh, ">>/tmp/pf.log");
    
    
   print fh "$ARGV[0]\n";
   ;; QUESTION SECTION:
   print fh "$ARGV[1]\n\n\n";
   ;24.0.168.192.in-addr.arpa.    IN      PTR
    
    
   @read=<STDIN>;
   ;; ANSWER SECTION:
  24.0.168.192.in-addr.arpa. 300 IN      PTR    mail.loomaaed.tartu.ee.
    
    
   foreach $rida (@read) {
   ;; AUTHORITY SECTION:
    print fh $rida;
  0.168.192.in-addr.arpa. 86400  IN      NS      ns1.loomaaed.tartu.ee.
   }
   0.168.192.in-addr.arpa. 86400  IN      NS      ns2.loomaaed.tartu.ee.


Siis selle faili algusse kirjutatakse epostiaadressi @ märgist vasemale ja paremale jääv osa erinevatele ridadele ning kirja sisu kusjuures lisatakse päisele mõned read vastavalt sellele, mida lipud flags järel ütlevad.
===Postimasina ettevalmistamine===


===Logi ja debugimine===
Postimasinas tuleks esmalt kontrollida, kas arvuti nimi on korrektselt seadistatud. Antud juhul peaks olema failis /etc/hostname kirjas


Kui mingil põhjusel on tarvis uurida mõnda parasjagu sabas olevat kirja, siis sobib selleks programm postcat. Tavaliselt saab logist või mailq programmi väljundist teada kirja identifikaatori ning selle abil õnnesub sabast kirjale  vastav fail üles leida.
  # cat /etc/hostname
  mail


  # mailq
ning failis /etc/hosts kirjas
  ....
  C558C4DC80      794 Sat Dec 20 10:18:55  bounce@loomaaed.tartu.ee
            (connect to smtp-gw.loomaaed.tartu.ee[10.0.2.5]: Connection refused)
                                        mart@loomaaed.tartu.ee
  ..
  # find /var/spool/postfix -name C558C4DC80 -ls
  313873    4 -rw-------  1 postfix  postfix      257 Dec 21 23:14 /var/spool/postfix/defer/C/C558C4DC80
  318592    4 -rwx------  1 postfix  postfix      1001 Dec 22 00:20 /var/spool/postfix/deferred/C/C558C4DC80
 
  # postcat /var/spool/postfix/deferred/C/C558C4DC80
  ...
  nö inimloetaval kujul formateeritud väljund


Kui on vajadus sabas olev kiri kustutada, siis ei tohiks seda teha niisama failisüsteemist vastavate failide kustutamise teel vaid tuleb kasutada nt programmi postsuper, öeldes
  # cat /etc/hosts
  127.0.0.1      localhost.localdomain localhost
  192.168.96.138  mail.loomaaed.tartu.ee      mail


  # postsuper -d C558C4DC80
Kontrollimiseks peab hostname programmile süsteem vastama nii


===Spämmi tõrjumine Postfixi sisemiste vahenditega===
  # hostname
  mail
  # hostname -f
  mail.loomaaed.tartu.ee


Näiteks sobib kasutada sellist parameetrit selliste väärtustega
Olgu postimasin ühendatud võrku nii nagu punktis Eesmärk on esitatud, kusjuures


  smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access,
* tulemüürist peab saama pöörduda postimasina pordile 25/tcp
  reject_unknown_sender_domain, permit_mynetworks, reject_unauth_destination,
* postimasin peab saama pöörduda internetti pordile 25/tcp
  reject_rbl_client bl.spamcop.net,
* postimasin peab saama nimesid lahendada
  reject_rbl_client cn-kr.blackholes.us,
  reject_rbl_client nigeria.blackholes.us,
  reject_rbl_client argentina.blackholes.us,
  reject_rbl_client proxies.blackholes.easynet.nl


Lisaks võiks postimasinas olla seadistatud selline tarkvara


===Jõudlus===
* ntp - ajaserver, õigemini küll kliendi rollis
* lokaat
* syslog


===Amavis===
===Tarkvara paigaldamine===


Põhimõtteliselt Amavis tarkvara iseseisvalt sisulist lisaväärtust postisüsteemile ei paku, aga ta võimaldab ühendada Postfix'i kokku väliste teenustega, näiteks viiruste analüüsi tarkvaraga ClamAV.
Postfix tarkvara v. 2.5.5 saab paigaldada Debian Lenny paketihaldusest öeldes


Amavis paigaldatakse öeldes
  bash# apt-get install postfix postfix-doc


  # apt-get install amavisd-new
Tavaliselt siis eemaldatakse vaikimisi Debiani standard operatsioonisüsteemi kooseisus esinev Exim Postfixi vastu. Postfixi paigaldamisel tuleb valida 'General type of configuration', valime 'Internet Site'


Vaikeseadistustega Amavis sobib kasutamiseks
[[Pilt:Postfix-1.gif]]


* Amavis kuulab soketil 127.0.0.1:10024
Seejärel küsitakse 'mail name' väärtust, see hakkab esinema läbi selle postisüsteemi välja saadetud kirjade eposti aadresside @ märgist paremal
* Amavis pöördub MTA poole aadressile 127.0.0.1:10025


Selleks, et Postfix kõik talle laekunud posti saadaks läbi Amavisi peab lisama main.cf faili rea
  loomaaed.tartu.ee


  content_filter=amavisfeed:[127.0.0.1]:10024
Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.


ning faili master.cf lisama sektsioonid
  Setting up postfix (2.5.5-1.1) ...
 
  Adding group `postfix' (GID 107) ...
   amavisfeed unix    -      -      n      -      2    smtp
  Done.
    -o smtp_data_done_timeout=1200
  Adding system user `postfix' (UID 105) ...
    -o smtp_send_xforward_command=yes
  Adding new user `postfix' (UID 105) with group `postfix' ...
    -o smtp_tls_note_starttls_offer=no
  Not creating home directory `/var/spool/postfix'.
  Creating /etc/postfix/dynamicmaps.cf
  Adding tcp map entry to /etc/postfix/dynamicmaps.cf
  Adding group `postdrop' (GID 108) ...
  Done.
  setting myhostname: mail.loomaaed.tartu.ee
  setting alias maps
  setting alias database
  changing /etc/mailname to loomaaed.tartu.ee
  setting myorigin
  setting destinations: loomaaed.tartu.ee, mail.loomaaed.tartu.ee, localhost.loomaaed.tartu.ee, localhost
  setting relayhost:
  setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  setting mailbox_size_limit: 0
   setting recipient_delimiter: +
  setting inet_interfaces: all
  /etc/aliases does not exist, creating it.
  WARNING: /etc/aliases exists, but does not have a root alias.
    
    
   127.0.0.1:10025 inet n    -      n      -      -    smtpd
   Postfix is now set up with a default configuration. If you need to make
    -o content_filter=
  changes, edit /etc/postfix/main.cf (and others) as neededTo view Postfix configuration
    -o smtpd_delay_reject=no
   values, see postconf(1).
    -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=
 
====ClamAV====
 
ClamAV on vaba tarkvaraline viirustõrjeprogramm, mille kasutamisel tarvitatakse ClamAV tasuta viiruste kontrolli andmebaasi teenust. Tavaliselt kutsub Postfix ClamAV välja Amavise abil.
 
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
 
Vaikeseadistustega ClamAV sobib kasutamiseks.
 
====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]
   After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
  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>, \
   Running newaliases
    Message-ID: <alpine.DEB.1.10.0902082310300.2613@moraal.auul>, mail_id: C+vCuhHWo1Nb, Hits: -, size: 505, queued_as: 2FA992ECF5, 84 ms
  Stopping Postfix Mail Transport Agent: postfix.
 
   Starting Postfix Mail Transport Agent: postfix.
   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, \
  Setting up postfix-doc (2.5.5-1.1) ...
    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
Postfixiga on seotud failisüsteemis sellised kataloogid ning failid


* 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
* /etc/postfix - Postfixi seadistusfailid, kõige olulisemad on main.cf ja master.cf
 
* /etc/mailname - sisuga 'loomaaed.tartu.ee'
  Feb  8 23:10:35 smtp1a postfix/smtpd[2149]: 08F142ECE1: client=moraal.auul[192.168.2.38]
* /var/spool/postfix - saba (ingl. k. queue)
  Feb  8 23:10:35 smtp1a postfix/cleanup[2146]: 08F142ECE1: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul>
* /var/log/mail.* - logi
  Feb  8 23:10:35 smtp1a postfix/qmgr[2141]: 08F142ECE1: from=<priit@loomaaed.tartu.ee>, size=505, nrcpt=1 (queue active)
* /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb
  Feb  8 23:10:35 smtp1a postfix/smtpd[2149]: disconnect from moraal.auul[192.168.2.38]
* man 5 postconf - manuaal
 
* /etc/aliases - nn aliases andmebaas
* 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
 
===Cyrus===


Postkastihalduse tarkvara Cyrus sisaldab muu hulgas selliseid komponente
Tarkvara paigaldamisel esitatud dialoogi saab edaspidi esile kutsuda öeldes


* haldusvahendid (cyradm programm)
# dpkg-reconfigure postfix
* imap server
* pop3 server
* testkliendid (IMAP serveri testklientprogramm imtest)


Cyrus tarkvaraga saab pealnäha sarnase tulemuse, so postkastide pidamise saavutada üsna mitmel erineval moel. Käesolev tekst kirjeldab järgmisete omadustega juhtumit
===Postfixi seadistamine võtma vastu loomaaed.tartu.ee domeeni kirju===


* kõik Cyruse protsessid töötavad ühes ja samas operatsioonisüsteemi eksemplaris
Parasjagu kehtestatud seadistusi saab küsida öeldes 'postconf -n', -n võti tähendab, et esitatakse seadistused, mis on /etc/postfix/main.cf failis kirjeldatud
* Cyruse imap klientide andmed tulevad välisest PostgreSQL andmebaasist SASL ja omakorda PAM abil
* Postfix kasutab PostgreSQL andmebaasi, millest saab teada millistele aadressidele tuleb teha local delivery Cyruse abil
* Cyruse postkastidesse saabuvad kirjad Postfix MTA'st LMTP protokolli kasutamise teel
* Cyruse postkastidele on ligipääs IMAP ja POP3 serverite kaudu, krüptitud ja krüptimata andmevahetust võimaldades


Sellisel moel käivitatud Cyruse kasutuselevõtmiseks tuleb sooritada näiteks selline tegevuste järgnevus
  # postconf -n
  alias_database = hash:/etc/aliases
  alias_maps = hash:/etc/aliases
  append_dot_mydomain = no
  biff = no
  config_directory = /etc/postfix
  html_directory = /usr/share/doc/postfix/html
  inet_interfaces = all
  mailbox_size_limit = 0
  mydestination = loomaaed.tartu.ee, mail.loomaaed.tartu.ee, localhost.loomaaed.tartu.ee, localhost
  myhostname = mail.loomaaed.tartu.ee
  mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  myorigin = /etc/mailname
  readme_directory = /usr/share/doc/postfix
  recipient_delimiter = +
  relayhost =
  smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
  smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
  smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
  smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
  smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
  smtpd_use_tls = yes


* paigaldada vajalik hulk Cyrus'e komponent
Kõigi kehtestatud seadistusparameetrite nimekirja koos väärtustega näeb öeldes
* valmistada ette PostgreSQL andmebaas
* valmistada ette PAM komponent
* valmistada ette SASL komponent
* seadistada Cyrusele administratiivne kasutaja ning tekitada tavakasutajale postkast
* seadistada Cyrus käima koos Postfixiga


====Cyrus tarkvara paigaldamine====
  # postconf


Cyrus'e paigaldamiseks tuleb öelda
ning vaikeväärtustega nimekirja öeldes


   # apt-get install cyrus-pop3d-2.2 cyrus-imapd-2.2 cyrus-doc-2.2 cyrus-clients-2.2 cyrus-admin-2.2 libsasl2-modules libsasl2-2 sasl2-bin
   # postfix -d


Cyrus tarkvara seadistamine toimub peaasjalikult seadistusfaili /etc/imapd.conf muutmise teel. Selleks, et Cyrus kasutaks SASLi antud juhtumi jaoks sobival moel, peavad failis /etc/imapd.conf sisalduma read
Tarkvara paigaldamise käigus moodustatud seadistused täidavad püstitatud eesmärgi kirjade vastuvõtmise osas


  sasl_mech_list: PLAIN
* inet_interfaces - väärtus 'all' tähendab, et Postfix server kuulab kõigil võrguseadmetel port 25/tcp peale tulevaid ühendusi
  sasl_pwcheck_method: saslauthd
* mydestination - väärtuste seas esineb domeeninimi loomaaed.tartu.ee, mis tähendab, et selle domeeni kirju võetaks vastu ja neile tehakse local delivery
* vaikimisi ei ole Postfix avatud relee (ingl. k. open relay), st läbi mail.loomaaed.tartu.ee ei saa avalikust internetist pöördudes saata kirju suvaliste domeenide kasutajatele
* vaikimisi salvestab Postfix local delivery kirjad kasutajanimelistesse failidesse kataloogi /var/mail


Cyrus käivitusskript on
Postfixi seadistusfailis /etc/postfix/main.cf kasutatud direktiivide esinemise järjekord ei ole tehnilises mõttes tähtis va asjaolu, et kui üks ja sama direktiiv on kirjeldatud mitu korda, siis jääb kehtima viimane kirjeldus. Kasutamise mõttes on otstarbekas samalaadseid direktiive grupeerida.


  # /etc/init.d/cyrus2.2
====Kirja vastuvõtmine====


Cyruse tööd kontrollivad lisaks olulised failid seadistusfailide kataloogist (ingl. k. configuration directory), vaikimisi /var/lib/cyrus
Kui internetis saata kiri aadressile mart@loomaaed.tartu.ee, siis ilmub Postfixi logisse


* /var/lib/cyrus/proc - kataloogis asuvad teenust parasjagu kasutavate kasutajate protsessiinfo failid
  # tail -f /var/log/mail.log
* /var/lib/cyrus/quota - kataloogis asuvad kasutajate kvootide määratlused
  ...
* /var/lib/cyrus/user - kataloogis asuvad kasutajate .seen ja .sub failid
  1 Jul 11 15:51:21 mail postfix/smtpd[6618]: connect from post-relee.auul[192.168.1.150]
* /var/lib/cyrus/mailboxes.db -
  2 Jul 11 15:51:21 mail postfix/smtpd[6618]: 77CB1AC112: client=post-relee.auul[192.168.1.150]
* /var/lib/cyrus/deliver.db -
  3 Jul 11 15:51:21 mail postfix/cleanup[6622]: 77CB1AC112: message-id=<20090711125121.7AC116E512@bmail.com>
* /var/lib/cyrus/tls_sessions.db -
  4 Jul 11 15:51:21 mail postfix/qmgr[6304]: 77CB1AC112: from=<priit@bmail.com>, size=516, nrcpt=1 (queue active)
* /var/lib/cyrus/annotations.db -
  5 Jul 11 15:51:21 mail postfix/smtpd[6618]: disconnect from post-relee.auul[192.168.1.150]
  6 Jul 11 15:51:21 mail postfix/local[6623]: 77CB1AC112: to=<mart@loomaaed.tartu.ee>, relay=local, \
    delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
  7 Jul 11 15:51:21 post-lenny postfix/qmgr[6304]: 77CB1AC112: removed


====PostgreSQL andmebaasi ettevalmistamine====
kus


PostgreSQL andmebaasi tabelis hoitakse Cyruse kasutajate autentimiseks vajalikke andmeid.
# - internetist aadressilt 192.168.1.150 võetakse ühendust
# - ...
# - eposti kirja identifikaator (message-id) on 20090711125121.7AC116E512@bmail.com
# - kiri on aadressilt priit@bmail.com
# - tcp/ip ühendus arvutiga 192.168.1.150 lõpetatakse
# - sooritatakse nn local delivery, st kiri salvetataks faili /var/mail/mart


====PAM komponendi ettevalmistamine====
Järgmised kirjad lisanduvad faili /var/mail/mart.


PostgreSQLi andmebaasi kasutamiseks peab paigaldama paketi üldotstarbelise paketi libpam-pgsql
====Vastuvõetud kirja lugemine====


  # apt-get install libpam-pgsql
Postfix on postiedastusagent ja ta ei tegele ise kasutajate postiprogrammide (nt Icedove või Alpine) teenindamisega. Postfixi poolt postimasina failisüsteemi salvestatud nn postkastifailidest /var/mail/kasutajanimi saab kasutaja lugeda kirju kahel moel


PAM komponendi ettevalmistamine toimub failide /etc/pam.d/imap, /etc/pam.d/pop ning /etc/pam_pgsql.conf abil
* kõige otsekohesem, aga praktiliseks kasutamiseks ehk suhteliselt ebamugav on kasutajatel on kirju lugeda nii, et logida sisse kasutajana postimasinasse ja kasutada programmi Alpine, mis oskab sellest failist kirju esitada
* postimasinasse tuleb paigaldada mõni spetsiaalselt kasutajate postiprogrammidega suhtlev tarkvara, nt IMAP server Cyrus, mis oskab võrgus teenindada kasutaja töökoharvutist nt Icedove programmi kui IMAP kliendi pöördumisi


  # cat /etc/pam.d/imap (sama ka failis /etc/pam.d/pop)
Alpine paigaldamiseks peab süsteemiadministraator ütlema
  auth        required    pam_pgsql.so
  account    required    pam_pgsql.so
  password    required    pam_pgsql.so


ning
  # apt-get install alpine


  # cat /etc/pam_pgsql.conf
===Postfixi seadistamine saatma välja alamvõrgu 192.168.0.0/24 kirju===
  host = andmebaasi.hostname
  database = andmebaasinimi
  user = cyrus_auth
  password = cyrus_auth_parool
  table = skeeminimi.tabelinimi
  user_column = username
  pwd_column = passwd
  expired_column = expire_status
  newtok_column = newtok
  debug
  pw_type = md5


====SASL komponendi ettevalmistamine====
Kirjade väljasaatmiseks tuleb muuta failis /etc/postfix/main.cf parameetri mynetworks väärtust lisades sinna kasutatava subneti aadressi, tulemusena on vastav rida selline


SASL kompoenendi seadistamine toimub faili /etc/default/saslauthd abil, antud juhtumil on oluline, et SASL deemon oleks käivitatav
  mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24


  START=yes
Peale seadistusfaili muutmist tuleb öelda


ning et SASL töötaks vastu PAM'i
  # /etc/init.d/postfix reload


  MECHANISMS="pam"
====Kirja väljasaatmine====


====Cyruse administratiivne kasutaja ja kasutajate haldus====
Kirja väljasaatmiseks tuleb kasutaja postiprogrammis, nt Icedove seadistada väljuva eposti arvuti aadressiks 192.168.0.25


Cyrus töö käigus kasutatakse mitmeid nö andmebaase
[[Pilt:Postfix-2.gif]]


* kirjade andmebaas - failisüsteemis salvestatakse iga kiri eraldi faili, vaikimisi asub see kataloogis /var/spool/cyrus/mail; igas postkasti kataloogis on lisaks kirjadele alati kolm faili, cyrus.cache, cyrus.index ja cyrus.header
Kirja väljasaatmisel tekib logisse
* postkastide andmebaas - failis /var/lib/cyrus/mailboxes.db on kirjas süsteemi Cyrus kasutajate ja nende postkastide andmebaas ning mida redigeeritakse cyradmin programmiga
* duplikaatide andmebaas - failis /var/lib/cyrus/deliver.db on andmebaas, mida Cyrus kasutab topelt-sõnumite avastamiseks (nt kui saabub sama message id ja ümbriku väärtusega kiri mitu korda; käsuga '/usr/sbin/ctl_deliver -d' näeb selle baasi sisu)
* Cyruse kasutajate andmebaas - antud juhul asub PostgreSQLi andmebaasis


  1 Jul 11 19:33:09 mail postfix/smtpd[6278]: connect from moraal[192.168.0.10]
  2 Jul 11 19:33:10 mail postfix/smtpd[6278]: 5590C6E50A: client=moraal[192.168.0.10]
  3 Jul 11 19:33:10 mail postfix/cleanup[6282]: 5590C6E50A: message-id=<4A58BEC5.20506@loomaaed.tartu.ee>
  4 Jul 11 19:33:10 mail postfix/qmgr[6274]: 5590C6E50A: from=<mart@loomaaed.tartu.ee>, size=484, nrcpt=1 (queue active)
  5 Jul 11 19:33:10 mail postfix/smtpd[6278]: disconnect from moraal[192.168.10.10]
  6 Jul 11 19:33:10 mail postfix/smtp[6283]: 5590C6E50A: to=<priit@bmail.com>, \
    relay=mail.bmail.com[192.168.32.82]:25, delay=0.3, delays=0.15/0.01/0.03/0.11, dsn=2.0.0, status=sent \
    (250 2.0.0 Ok: queued as 77B0E4A9D2)
  7 Jul 11 19:33:10 mail postfix/qmgr[6274]: 5590C6E50A: removed


Cyruse administratiivse kasutaja kasutajanimi on kirjas seadistusfailis /etc/imapd.conf, näiteks võiks selleks olla 'cyrus'
kus


  admins: cyrus
# postimasina poole pöördub kasutaja oma töökohaarvutist nt Icedove programmiga
# ...
# ...
# kiri on from aadressiga mart@loomaaed.tartu.ee
# tcp/ip ühendus kasutaja töökohaarvutiga lõpetatakse
# kiri on saadetakse aadressile priit@bmail.com võttes ühendust postimasinaga aadressil 192.168.32.82 ja 'status=sent' tähendab, et kiri õnnestus välja saata


Administratiivne kasutaja saab kasutada cyradmin programmi teistele kasutajatele Cyruse postkastide moodustamiseks. Enne kui kasutajana cyrus saab cyradmin programmi kasutada, peab olema see kasutaja PostgreSQL andmebaasi lisatud.
===Postimasina kasutamine tulemüüri taga NAT võrgus===


Postisüsteemi kasutaja moodustamiseks tuleb kasutaja administratiivse kasutajana cyrus moodustada esmalt sellele kasutajale postkast öeldes
Kui postimasin asub aadress-teisendavad tulemüüri taga, siis tuleb Postfixi seadistusfaili /etc/postfix/mail.cf lisada rida


   $ cyradmin --user cyrus localhost
   proxy_interfaces = 192.168.96.138
  IMAP Password:
  localhost.localdomain> cm user.mart
  localhost.localdomain> quit


ning lisaks tuleb kasutaja mart lisada ka PostgreSQL andmebaasi. Seejärel saab kasutaja mart üle IMAP protokolli süsteemi logida. Testimiseks sobib kasutada Cyrus tarkvaraga kaasa tulevat imap klienti imtest, näiteks selliselt
kus ip aadress on tulemüüri avalik aadress, mida internetist kasutatakse selle postimasina poole pöördumiseks.


  $ imtest -a mart -u mart localhost -w mardiparool
===Spämmi tõrjumine DNSBL nimekirja abil===
  S: * OK smtp2a Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+b3 server ready
  C: C01 CAPABILITY
  S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT    THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE
  S: C01 OK Completed
  C: L01 LOGIN mart {7}
  S: + go ahead
  C: <omitted>
  S: L01 OK User logged in
  Authenticated.
  Security strength factor: 0
  . list "" "*"
  * LIST (\HasChildren) "." "INBOX"
  . OK Completed (0.000 secs 6 calls)
  . logout
  * BYE LOGOUT received
  . OK Completed
  Connection closed.


Postkastide haldamise üheks eesmärgiks on seada õigused, millised kasutajad saavad kasutada milliseid postkaste. Vaikimisi on ainult kasutajal endal piiranguteta ligipääs enda postkastile ja seal all olevatele kataloogidele. Cyrus võimaldab ühe kasutaja postkastile või selle mõnele kataloogile lisaks tekitada ligipääsu teise kasuja jaoks. Nt selleks, et kasutaja mart postikasti kataloogi user.mart.bugtraq näeks ka kasutaja priit tuleb öelda cyruse administraatoril
DNSBL (Domain Name System Blocklist) tehnika võimaldab enne kirja vastuvõtmist postimasinal kontrollida tavalise nimepäringu abil, kas tema poole pöörduva SMTP kliendi ip aadress on nö spämmijate nimekirjas või mitte. Postfix toetab sellise kontrolli teostamist.


  localhost.localdomain> sam user.mart priit lr
DNSBL teenusepakkujaid on internetis palju, sobiva valimisel tuleks arvestada selliseid asjaolusid
  localhost.localdomain> lam user.mart
  mart lrswipcda
  priit lr


Ühe kasutaja postkastile teisele kasutaja jaoks ligipääsu võimaldamise abil saab moodustada nn shared foldereid ja bulletin board'e, mis sisuliselt on nö pseudokasutajale kuuluvad postkastid. Tavaliselt on vastavatele postkastidele antud lugemisõigus mitmetele kasutajatele ning mõnele lisaks rohkem õigusi, nt seal kirjade või sinna kirjade kopeerimine kustutamine. Näiteks võiks sellise shared folderi kasutamine toimuda eesmärgiga, et nii ei pea iga üksik kasutaja oma personaalsele aadressile tellima listi kirju. Et kasutaja saaks ligi teise kasutaja välja jagatud postkasti kataloogile tuleb tal enda postiprogrammi abil sinna ennast subskribeerida.
* DNSBL teenusepakkujale usaldatakse otsuse tegemine, millistelt aadressidelt ei saa kõnealusesse postimasinasse kirju saata
* DNSBL teenuseid pakutakse erinevatel tingimustel, nt on tasulisi ja mitte-tasulisi


2008 aasta kontekstis võib tunduda selline IMAP tarkvara kasutamine grupitöövahendina suhteliselt kohmakas, kuid teatud tingimustel võib olla see ka jätkuvalt asjakohane.
Populaarsed teatud tingimustel tasuta DNSBL teenuse pakkujad on


====Kirjade automaatne jagamine postkastidesse====
* Spamhaus - http://www.spamhaus.org/ ja http://en.wikipedia.org/wiki/The_Spamhaus_Project
* Spamcop - http://www.spamcop.net/ ja http://en.wikipedia.org/wiki/SpamCop


Cyrus tarkvara koosseisu kuuluv sieve (ingk. k. sõel) võimaldab nt kirja päise ridade alusel korraldada kirjade salvestamist kasutaja postkasti erinevatesse kataloogidesse (ingl. k. folder).
Spamhaus esitab oma aadresse kolmes erinevas nimekirjas ja kombineeritud nimekirjadena


Selleks tuleb esmalt moodustada tekstifail, nt
* Spamhaus Block List (SBL, sbl.spamhaus.org) - kinnitatud spämmijate ip aadressid
* Exploits Block List (XBL, xbl.spamhaus.org) - nimekiri tuntud viirusi, eksploite, troojalasi jms levitavatest ip aadressidest
* Policy Block List (PBL, pbl.spamhaus.org) - nö kodukasutajate ip aadresside nimekiri, millelt tegelikult ei peaks kasutajad eposti saatma


  $ cat /var/spool/sieve/m/mart/default
Kombineeritud nimekirjad on sellised
  require "fileinto";
        if header :contains "List-Id" "debian-mirrors.lists.debian.org" {
                fileinto "INBOX.d-m";}
        elsif header :contains "To" "mart.kask@loomaaed.tartu.ee" {
                fileinto "INBOX.@loomaaed.tartu.ee";}
        else {
                fileinto "INBOX";}


Antud juhul ütleb sieve fail, et
* sbl-xbl.spamhaus.org - SBL+XBL
* zen.spamhaus.org - SBL+XBL+PBL


* kirjad, mille päises List-Id: rida sisaldab väärtust debian-mirrors.lists.debian.org tuleb kopeerida kataloogi d-m
Spamhaus teenus on nö kodukasutajatele tasuta kasutada teatud tingimustel, kasutamistingimusi saab vaadata üksikasjalikult aadressilt http://www.spamhaus.org/
* kirjad, mille päises To: rida sisaldab väärtust mart.kast@loomaaed.ee tuleb kopeerida kataloogi @loomaaed.ee
* ülejäänud kirjad kopeeritakse lihtsalt inboxi


Tööks tuleb tekstifaili alusel moodustada nn byte-code fail öeldes
Postfixi seadistamiseks kontrollima SMTP kliendi ip aadressi zen.spamhaus.org nimekirjast peab seadistusfailis /etc/postfix/main.cf olema nt rida


   $ /usr/lib/cyrus/bin/sievec /var/spool/sieve/m/mart/default /var/spool/sieve/m/mart/defaultbc
   smtpd_recipients_restrictions = permit_mynetworks, reject_unauth_destination,
    reject_rbl_client zen.spamhaus.org


====Cyruse seadistamine käima koos Postfixiga====
Seda rida tuleks lugeda selliselt


Selleks, et Postfix annaks LMTP (Local Mail Transport Protocol) protokolli abil kirjad edasi Cyrusele sobib kasutada Postfixi transport'i. Transport moodustatakse tekitades tekstifail
* piiranguid kontrollitakse järjest, rakendatakse esimesena klappiv piirang
* kui ükski piirang ei klapi, siis vaikimisi lubatakse andmevahetust
* permit_mynetworks - postfixi smtpd komponent lubab andmevahtust kohalikest võrkudest
* reject_unauth_destination - postfixi smtpd komponent ei luba andmevahetust kui RCPT TO päise järgi ei ole postimasin seadistatud kirja vahendama edasi või ise vastu võtma; see rida tegeleb eituse genereerimisega st kui nt kiri on vahendatav, siis tegeleb selle läbi lubamisega mõni reject_recipients_restrictions järgmine kontroll või lubatakse ta vaikimisi läbi
* reject_rbl_client zen.spamhaus.org - kontrollitakse dns abil Spamhaus teenusest, kas tegemist on tuntud spämmijaga ning vajadusel andmevahetust ei lubata
* permit - kui kiri ei klappinud ühegi kontrolliga, siis lubatakse ta läbi
* kui seadistusfaili rida algab tühiku või tabulatsioonimärgiga, siis loetakse seda eelmise rea jätkuks
* elemente on samaväärne eraldada tühiku või komaga (või mõlemiga)


  # cat /etc/postfix/transport
Piirangute esitamisel on järjekord oluline, sõltub asjaoludest, aga üldiselt on otstarbekas kallimad kontrollid paigutada lõpupoole.
  loomaaed.tartu.ee lmtp:unix:/var/run/cyrus/socket/lmtp


ning öeldes
Kuulates võrku pealt on näha, et postimasin esitab oma seadistatud nimeserveri kaudu päringu Spamhausile ja saab vastuseks, et saatja 192.168.32.86 ip aadress ei ole tuntud spämmija


   # postmap /etc/postfix/transport
   21:35:41.145213 IP 192.168.0.25.52665 > 192.168.96.138.53: 48934+ A? 86.32.168.192.zen.spamhaus.org. (48)
  21:35:42.133214 IP 192.168.96.138.53 > 192.168.0.25.52665: 48934 NXDomain 0/1/0 (112)


mille tulemusena tekib Berkeley DB andmebaasi formaadis fail
Kui aga Spamhausi poolt kiri peatatakse, siis on Postfixi logis kirjas midagi sellist


   /etc/postfix/transport.db
   Jul 11 21:48:47 mail postfix/smtpd[21995]: NOQUEUE: reject: RCPT from unknown[192.168.175.125]:\
    554 5.7.1 Service unavailable; Client host [192.168.175.125] blocked using zen.spamhaus.org; \
    http://www.spamhaus.org /query/bl?ip=192.168.175.125; \
    from=<handbags@spammija.net> to=<rosenqvistrosenqvistrbwf@loomaaed.tartu.ee> proto=ESMTP \
    helo=<125-175-168-192.cab.tiiba.net.ar>


Moodustatud transporti kasutamiseks peab /etc/postfix/main.cf failis sisalduma rida
Nö käsitsi saab ip aadressi Spamhausi kuulumist kontrollida küsides, kuulumisel vastatakse nii


   transport_maps = hash:/etc/postfix/transport
   $ dig +short 125.175.168.192.zen.spamhaus.org
  127.0.0.4


Kusjuures, selleks, et kasutaja postfix saaks sellesse unixi soketisse kirjutada, peab nt lisama postfix kasutaja gruppi mail ning nt kontrollima /etc/postfix/master.conf failis, et lmtp juures ei oleks chroot kirjeldatud.
ja mitte-kuulumisel


Kui Cyruse kasutajate andmed on kirjas nt PostgreSQL andmebaasis, siis tuleb lisaks paigaldada postfix-pgsql pakett, mille lisamisel tehakse sissekanne faili /etc/postfix/dynamicmaps.cf ning lisada seadistusfaili main.cf rida
$ dig +short 125.175.168.192.zen.spamhaus.org
$


  virtual_alias_maps = pgsql:/etc/postfix/cyrus.cf
Või brauseriga küsides aadressilt http://www.spamhaus.org/query/bl?ip=192.168.175.125
  relay_domains = loomaaed.tartu.ee
 
kus /etc/postfix/cyrus.cf sisu on
 
  user = cyrus_auth
  password = parool
  hosts = baas.loomaaed.tartu.ee
  dbname = postisysteem
  table = loomaaed.cyrus_auth
  select_field = rcpt
  where_field = alias
 
====Cyrus tarkvara uuendamine====
 
Cyrus tarkvara järgmised versioonid sisaldavad reeglina vigade parandusi ja uut funktsionaalsust kusjuures tavaliselt säilib olemasolev funktsionaalsus. Reeglina Cyrus tarkvara uuendamisel kasutajate andmed säilitatakse asendades Cyruse nn mootori uuema versiooni vastu. Üldiselt tuleb vanast versioonist võtta kaasa sellised andmed
 
* andmete partitsioonile vastav kataloog (nt 'partition-default: /srv/cyrus/mail'), st kasutajate kirjad
* uusi seadistusfaile tuleb kohendada olemasolevate alusel, /etc/cyrus.conf ja /etc/imapd.conf
* andmed kasutajate autoriseerimiseks, pam seadistused /etc/pam_pgsql.conf, /etc/pam.d/{imap,pop}, andmebaas kasutajate nimede/paroolidega
* postkastide andmebaas, /var/lib/cyrus/mailboxes.db
* kasutajate quotad, /var/lib/cyrus/quota
* kasutajate sieve'id, /var/spool/sieve
* kasutajate postkastide olekud, loetud/lugemata kirjade eristused jms, /var/lib/cyrus/user, nn *.seen andmebaasid
 
Uuenduse tegemisel tuleb tutvuda paketis cyrus-doc-* paketist upgrade'i juhendiga. Tavaliselt juhitakse seal tähelepanu lisaks muudele asjaoludele sellele, et andmebaaside (mailboxes.db, *.seen) jt formaadid oleksid sobivad. Vajadusel saab neid baase teisendada, nt
 
  $ /usr/sbin/cvt_cyrusdb /var/lib/cyrus/mailboxes.db skiplist /var/lib/cyrus/mailboxes.db-berkeley berkeley
 
teisendab skiplist foraadis baasi berkeley formaati.
 
Lisaks, tundub, et kui uude süsteemid kopeerida mailboxes.db, siis samal ajal tuleks kustutada sellised failid, samal ajal peab Cyrus seisma
 
  $ ls -l annotations.db db/* db.backup*/* deliver.db tls_sessions.db
 
Need moodustatakse käivitamisel uuesti.
 
===IMAP kliendid===
 
IMAP klientprogrammid on tavaliselt need programmid mida postisüsteemi kasutaja kasutab saabunud kirjadede lugemiseks. Reeglina kasutaja kasutab neid ka kirjade saatmiseks kuigi kirja saatmine ja lugemine on kaks suhteliselt sõltumatut tegevust tehnilises mõttes.
 
====Icedove====
 
Üsna levinud graafilise kasutajaliidesega postivahetusprogramm, oskab olla muu hulgas IMAPi klienti.
 
====Pine====
 
Üsna levinud nn pseudograafiline postivahetusprogramm, oskab olla muu hulgas IMAPi klient.
 
===Sympa===
 
Tundub, et Debian Lenny paketihaldusega Sympa kasutamine ei ole võimalik. Sympa paigaldamine lähtetekstidest võiks toimuda selliselt.
 
====Paigaldamine====
 
  * Seadistada süsteemi sobiv lokaadi tugi, nt et_EE ja en_US, dpkg-reconfugure locales abil.
  * Sympa saadab nö esimese administraator parooli eposti teavitusena, seega on oluline, et süsteem saaks eposti välja saata, st tuleb seadistada töötav smtp osa.
 
Lihtsam on, kui enne Sympa lähtetekstis paigaldamist on paigaldatud sellised paketid (vt apt-cache show sympa -> Depends)
 
  # apt-get build-dep sympa
  # apt-get install sympa (mitte paigaldaa, aga vaadata vajalikud sõltuvused)
  # apt-get install ftp wget ncftp unzip libconfig-yaml-perl libsoap-lite-perl \
  libcgi-pm-perl libcgi-simple-perl libwww-perl postfix \
  perl-suid libdbi-perl libdbd-pg-perl libarchive-zip-perl libmailtools-perl libmd5-perl libmsgcat-perl \
  libmime-perl libmime-base64-perl libio-stringy-perl libnet-ldap-perl libcgi-fast-perl libcrypt-ciphersaber-perl \
  libintl-perl libmime-charset-perl libmime-encwords-perl libtemplate-perl libxml-libxml-perl mhonarc sysklogd \
  system-log-daemon lsb-base adduser debconf
 
Lähtetekstis tuleb paigaldada
 
HTML::StripScripts
HTML::StripScripts::Parser
 
Seejärel öelda
 
  # ./configure
  # make
  # make instakll
 
====Seadistamine====
 
Sympa hoiab oma andmeid andmebaasis, nt sobib kasutada PostgreSQL, baasi ettevalmistamine toimub öeldes
 
  $ psql -U postgres -h hostname baasinimi < /usr/src/sympa-5.4.3/src/etc/script/create_db.Pg
 
Sympa tööd saab juhtida veebipõhise haldusliidese abil. Nt sobib selline Apache virtualhost
 
  <VirtualHost 10.0.6.222:80>
  ServerAdmin mart@loomaaed.tartu.ee
  ServerName sympa.loomaaed.tartu.ee
  DocumentRoot "/home/sympa/www"
 
  ErrorLog "/var/log/apache2/sympa.avalik.kit-error.log"
  TransferLog "/var/log/apache2/sympa.avalik.kit-access.log"
 
  <Directory "/home/sympa/www">
    Options None
    AllowOverride All
    Order Deny,Allow
    Allow from All
  </Directory>
 
  Alias /static-sympa /usr/local/sympa/static_content
  ScriptAlias /sympa /usr/local/sympa/bin/wwsympa.fcgi
 
  </VirtualHost>
 
Sympa seadistamine toimub peamiselt faili /etc/sympa.conf abil, olulised on järgmised määrangud
 
  domain  loomaaed.tartu.ee
  listmaster      mart@loomaaed.tartu.ee
  lang    en_US
  supported_lang  en_US,et_EE
  db_type Pg
  db_name sympa
  db_host 10.0.6.221
  db_port 5432
  db_user postgres
  db_passwd sympa
 
====Sympa käivitamine====
 
Sympa käivitamine toimub paigaldamise käigus paigaldatud käivitusskriptiga /etc/rc.d/init.d/sympa (mis ehk ilus kopeerida /etc/init.d/sympa'ks). Lisaks peab töötama Apache veebiserver.
 
Abiks  on jälgida Sympa logi, vaikimini /var/log/syslog. Nt Sympa logib läbi veebiliidese antud korraldusi
 
  Dec 21 13:38:58 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test]
  Dec 21 13:39:12 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test] main::do_admin() do_admin
 
Mõne seadistusparameetri kehtestumiseks tuleb Sympale ja Apache'le stop ja start öelda.
 
===Mailman===
 
Mailman (ingl. k. postiljon) http://www.list.org/ on postiloendite (ingl. k. list) pidamise tarkvara.
 
Järgnevas kirjaldame kuidas saavutada sellist eesmärki
 
* ühe Mailman eksempari abil peetakse kolme domeeniga seotud postiloendeid, @lists.loomaaed.tartu.ee, @lists.vagunitehas.tartu.ee, @lists.raudteejaam.tartu.ee
* MTA'na kasutatakse Postfixi kusjuures mainitud domeene kasutatakse ainult eposti jaoks
* postiloendite haldusliidesed sh arhiivid on ligipääsetavad aadressidelt https://lists.loomaaed.tartu.ee/listinfo, /admin jn
 
====Mailman tarkvara paigaldamine====
 
Tarkvara paigaldamiseks tuleb öelda
 
  # apt-get install mailman
 
Lisaks mailman paketile paigaldatakse automaatlselt ka Apache veebiserveri kuna tavaliselt toimub Mailmani haldamine üle veebiliidese. Paigaldamise käigus tuleb valida kasutatavad lokaadid, mis tähendab seda, millistes keeltes on võimalik mailmani kasutajaliidest tööle lülitada.
 
Seejärel teatab installer, et
 
  Missing site list
  Mailman needs a so-called "site list", which is the list from which password reminders and such
  are sent out from.  This list needs to be created before mailman will start. To create the list, run
  "newlist mailman" and follow the instructions on-screen. Note that you also need to start mailman after
  that, using /etc/init.d/mailman start.
 
====Mailmani seadistamine====
 
Mailmani listihalduse tarkvara esineb arvutis töötava deemoni kujul ning oluliseks seadistusfailiks on /etc/mailman/mm_cfg.py. Selles tuleks teha sellised muudatused
 
  MAILMAN_SITE_LIST = 'mailman'
  DEFAULT_URL_PATTERN = 'https://%s/'
  PRIVATE_ARCHIVE_URL = '/private'
  IMAGE_LOGOS        = '/images/mailman/'
  DEFAULT_EMAIL_HOST = 'lists.loomaaed.tartu.ee'
  DEFAULT_URL_HOST  = 'lists.loomaaed.tartu.ee'
  add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
  DEFAULT_SERVER_LANGUAGE = 'en'
  USE_ENVELOPE_SENDER    = 0              # Still used?
  DEFAULT_SEND_REMINDERS = 0
  MTA=None
  DEB_LISTMASTER = 'listmaster@lists.loomaaed.tartu.ee'
 
Kui Mailman on seadistatud, siis tuleb tekitada esimene list
 
  # newlist mailman mart@loomaaed.tartu.ee parool
 
Seejärel saab listserveri deemoni käivitada
 
  # /etc/init.d/mailman start
 
====Apache veebiserveri seadistamine====
 
Ülidselt tuleb veebiserver seadistada käima aadressile https://lists.loomaaed.tartu.ee/ tavalisel moel. Mailmanile spetsiifilise osa kohta on toodud näide failis
 
  /etc/mailman/apache.conf
 
Kokkuvõttes võiks olla lists.loomaaed.tartu.ee virtuaalhosti seadistusfail sellise sisuga
 
  <VirtualHost 10.0.6.221:443>
    ServerName  lists.loomaaed.tartu.ee
    ServerAdmin mart@loomaaed.tartu.ee
    DocumentRoot /srv/www
    ErrorLog    /var/log/apache2/lists.loomaaed.tartu.ee-ssl-error.log
    TransferLog  /var/log/apache2/lists.loomaaed.tartu.ee-ssl-access.log
 
    SSLEngine on
    SSLCertificateFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.crt
    SSLCertificateKeyFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.key
    SSLCACertificateFile /etc/apache2/serdid/ca-sk.crt
   
    <Directory /srv/www>
      Options All
      AllowOverRide None
      Order Allow,Deny
      Allow from All
    </Directory>
   
    RewriteEngine On
    RewriteRule ^/$ https://lists.loomaaed.tartu.ee/listinfo [R]
 
    Alias /pipermail/ /var/lib/mailman/archives/public/
    Alias /images/mailman/ /usr/share/images/mailman/
    ScriptAlias / /usr/lib/cgi-bin/mailman/
 
    <Directory /usr/lib/cgi-bin/mailman/>
      AllowOverride None
      Options ExecCGI
      AddHandler cgi-script .cgi
      Order allow,deny
      Allow from all
    </Directory>
 
    <Directory /var/lib/mailman/archives/public/>
      Options Indexes FollowSymlinks
      AllowOverride None
      Order allow,deny
      Allow from all
    </Directory>
 
    <Directory /usr/share/images/mailman/>
      AllowOverride None
      Order allow,deny
      Allow from all
    </Directory>
 
  </VirtualHost>


===Kasulikud lisamaterjalid===
===Kasulikud lisamaterjalid===


* Tarkvara kodulehekülg - http://cyrusimap.web.cmu.edu/
* http://kuutorvaja.eenet.ee/wiki/Amavis_kasutamine_Debian_Lenniga
* IMAP protokolli kasutamise näited - http://bobpeers.com/technical/telnet_imap.php
* http://kuutorvaja.eenet.ee/wiki/Postfix'i_arhitektuuri_kirjeldus_ja_kasutamise_keerulisemad_võimalused
* apt-get install cyrus-docs-2.2 ja seejärel vaadata brauseriga file:///usr/share/doc/cyrus-doc-2.2/html/index.html
* http://kuutorvaja.eenet.ee/wiki/Postfix
* http://no.spam.ee/header_checks

Viimane redaktsioon: 3. juuni 2010, kell 06:28

Eesmärk

Eesmärgiks on seadistada käima selliste omadustega postiedastusagent (ingl. k. Mail Transfer Agent, MTA) Postfix

  • internetist võetakse vastu domeeni loomaaed.tartu.ee kasutajate epostiaadressidele saadetud kirju aadressil 192.168.0.25
  • vastuvõetud loomaaed.tartu.ee domeeni kirjad salvestatakse postimasina failisüsteemi, st tehakse local delivery
  • postimasina abil saab saata kirju välja internetti teistele kasutajatele alamvõrgus 192.168.0.0/24 asuvatest arvutitest
  • kirjade avalikust võrgust vastuvõtmisel teostatakse saatja ip aadressidele DNSBL kontrolli Spamhaus zen.spamhaus.org nimekirja põhjal
                        internet  
                          ...
                           .
                           v
 
          192.168.96.138  _|_
                         |   | Tulemüür
                         |___|
                           |   192.168.0.254/24
                           |                      192.168.0.0/24 alamvõrk
    -----|---------|-------|--------------|-------------------------------
         |         |                      |
        _|_       _|_                    _|_  192.168.0.25/24
       |   |     |   |                  |   | 
       |___|     |___|                  |___|
      
    Töökohaarvuti A                         Postimasin
 
               Töökohaarvuti B

Kuigi joonisel on kasutatud nö privaatseid aadresse kehtib loogilises mõttes esitus avalike aadresside kasutamise juhu kohta. Punktis Postfix'i_kasutamine_Debianiga#Postimasina kasutamine tulemüüri taga NAT võrgus käsitletakse juhtumit, kui postimasin kasutab privaatset aadressi asudes aadress-teisendava tulemüüri taga.

Püstitatud eesmärki võiks kasutaja edasi arendada

Nimesüsteemi ettevalmistamine

Õigesti seadistatud nimesüsteem on postisüsteemi kasutamise eelduseks.

MX ja A kirje

Selleks, et avalikus internetis saaksid ülidselt teised kasutajad (nt Gmail kasutajad) saata kirju nt aadressil mart@loomaaed.tartu.ee peab olema avalikus nimesüsteemis kirjeldatud domeeni loomaaed.tartu.ee MX (mail exchange, meilivahetuskoht) kirje. Selleks tuleb pöörduda nimeteenuse pakkuja poole ning öelda milline on kasutatav avalik ip aadress ning millist domeeninime soovitakse kasutama asuda, põhimõtteliselt saab tehnilises mõttes sellise soovi alusel avalikus nimesüsteemis vajalikud muudatused teha.

MX kirje näeb välja nt selline

 $ dig @ns.nimeserver.ee loomaaed.tartu.ee mx
 ...
 ;; QUESTION SECTION:
 ;looomaaed.tartu.ee.                  IN      MX
 
 ;; ANSWER SECTION:
 looomaaed.tartu.ee.           300     IN      MX      20 mail.loomaaed.tartu.ee.
 
 ;; AUTHORITY SECTION:
 looomaaed.tartu.ee.           300     IN      NS      ns1.loomaaed.tartu.ee.
 looomaaed.tartu.ee.           300     IN      NS      ns2.loomaaed.tartu.ee.

 ;; ADDITIONAL SECTION:
 mail.loomaaed.tartu.ee.       300     IN      A       192.168.0.24
 ns1.loomaaed.tartu.ee.      86400     IN      A       192.168.193.163
 ns2.loomaaed.tartu.ee.      86400     IN      A       192.168.193.164

Kui kasutaja internetist püüab saata kirja aadressile mart@loomaaed.tartu.ee, siis toimub selline järgnevus

  • kasutaja süsteemi postiedastusagent küsib avalikust nimesüsteemist loomaaed.tartu.ee postimasina nime, saab teada MX kirjest teada, et postimasina nimi on mail.loomaaed.tartu.ee
  • kasutaja süsteemi postiedastusagent saab lisaks A kirjest teada, et mail.loomaaed.tartu.ee postimasin asub aadressil 192.168.0.24
  • kasutaja süsteemi postiedastusagent võtab aadressile mart@loomaaed.tartu.ee kirja saamise asjus ühendust soketil 192.168.0.25:25 töötava postiedastusagendiga

PTR kirje

Tihtipeale on teised internetis töötavad postimasinad seadistatud käima selliselt, et nad konktrollivad, kas MX kirje domeeninimele (mail.loomaaed.tartu.ee) vastava ip aadressi (192.168.0.24) pöördteisendus on olemas, või veel enam, langeb kokku MX domeeninimega. Sellise kontrolli läbimiseks peab olema nimesüsteemis seadistatud korrentne PTR kirje, antud juhul selline

 $ dig -x 192.168.0.24
 
 ;; QUESTION SECTION:
 ;24.0.168.192.in-addr.arpa.    IN      PTR
 
 ;; ANSWER SECTION:
 24.0.168.192.in-addr.arpa. 300 IN      PTR     mail.loomaaed.tartu.ee.
 
 ;; AUTHORITY SECTION:
 0.168.192.in-addr.arpa. 86400  IN      NS      ns1.loomaaed.tartu.ee.
 0.168.192.in-addr.arpa. 86400  IN      NS      ns2.loomaaed.tartu.ee.

Postimasina ettevalmistamine

Postimasinas tuleks esmalt kontrollida, kas arvuti nimi on korrektselt seadistatud. Antud juhul peaks olema failis /etc/hostname kirjas

 # cat /etc/hostname
 mail

ning failis /etc/hosts kirjas

 # cat /etc/hosts
 127.0.0.1       localhost.localdomain localhost
 192.168.96.138  mail.loomaaed.tartu.ee      mail

Kontrollimiseks peab hostname programmile süsteem vastama nii

 # hostname
 mail
 # hostname -f
 mail.loomaaed.tartu.ee

Olgu postimasin ühendatud võrku nii nagu punktis Eesmärk on esitatud, kusjuures

  • tulemüürist peab saama pöörduda postimasina pordile 25/tcp
  • postimasin peab saama pöörduda internetti pordile 25/tcp
  • postimasin peab saama nimesid lahendada

Lisaks võiks postimasinas olla seadistatud selline tarkvara

  • ntp - ajaserver, õigemini küll kliendi rollis
  • lokaat
  • syslog

Tarkvara paigaldamine

Postfix tarkvara v. 2.5.5 saab paigaldada Debian Lenny paketihaldusest öeldes

 bash# apt-get install postfix postfix-doc

Tavaliselt siis eemaldatakse vaikimisi Debiani standard operatsioonisüsteemi kooseisus esinev Exim Postfixi vastu. Postfixi paigaldamisel tuleb valida 'General type of configuration', valime 'Internet Site'

Seejärel küsitakse 'mail name' väärtust, see hakkab esinema läbi selle postisüsteemi välja saadetud kirjade eposti aadresside @ märgist paremal

 loomaaed.tartu.ee

Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.

 Setting up postfix (2.5.5-1.1) ...
 Adding group `postfix' (GID 107) ...
 Done.
 Adding system user `postfix' (UID 105) ...
 Adding new user `postfix' (UID 105) with group `postfix' ...
 Not creating home directory `/var/spool/postfix'.
 Creating /etc/postfix/dynamicmaps.cf
 Adding tcp map entry to /etc/postfix/dynamicmaps.cf
 Adding group `postdrop' (GID 108) ...
 Done.
 setting myhostname: mail.loomaaed.tartu.ee
 setting alias maps
 setting alias database
 changing /etc/mailname to loomaaed.tartu.ee
 setting myorigin
 setting destinations: loomaaed.tartu.ee, mail.loomaaed.tartu.ee, localhost.loomaaed.tartu.ee, localhost
 setting relayhost: 
 setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
 setting mailbox_size_limit: 0
 setting recipient_delimiter: +
 setting inet_interfaces: all
 /etc/aliases does not exist, creating it.
 WARNING: /etc/aliases exists, but does not have a root alias.
 
 Postfix is now set up with a default configuration.  If you need to make 
 changes, edit /etc/postfix/main.cf (and others) as needed.  To view Postfix configuration
 values, see postconf(1).
 
 After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
 
 Running newaliases
 Stopping Postfix Mail Transport Agent: postfix.
 Starting Postfix Mail Transport Agent: postfix.
 Setting up postfix-doc (2.5.5-1.1) ...

Postfixiga on seotud failisüsteemis sellised kataloogid ning failid

  • /etc/postfix - Postfixi seadistusfailid, kõige olulisemad on main.cf ja master.cf
  • /etc/mailname - sisuga 'loomaaed.tartu.ee'
  • /var/spool/postfix - saba (ingl. k. queue)
  • /var/log/mail.* - logi
  • /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb
  • man 5 postconf - manuaal
  • /etc/aliases - nn aliases andmebaas

Tarkvara paigaldamisel esitatud dialoogi saab edaspidi esile kutsuda öeldes

# dpkg-reconfigure postfix

Postfixi seadistamine võtma vastu loomaaed.tartu.ee domeeni kirju

Parasjagu kehtestatud seadistusi saab küsida öeldes 'postconf -n', -n võti tähendab, et esitatakse seadistused, mis on /etc/postfix/main.cf failis kirjeldatud

 # postconf -n
 alias_database = hash:/etc/aliases
 alias_maps = hash:/etc/aliases
 append_dot_mydomain = no
 biff = no
 config_directory = /etc/postfix
 html_directory = /usr/share/doc/postfix/html
 inet_interfaces = all
 mailbox_size_limit = 0
 mydestination = loomaaed.tartu.ee, mail.loomaaed.tartu.ee, localhost.loomaaed.tartu.ee, localhost
 myhostname = mail.loomaaed.tartu.ee
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
 myorigin = /etc/mailname
 readme_directory = /usr/share/doc/postfix
 recipient_delimiter = +
 relayhost = 
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
 smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
 smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
 smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
 smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
 smtpd_use_tls = yes

Kõigi kehtestatud seadistusparameetrite nimekirja koos väärtustega näeb öeldes

 # postconf

ning vaikeväärtustega nimekirja öeldes

 # postfix -d

Tarkvara paigaldamise käigus moodustatud seadistused täidavad püstitatud eesmärgi kirjade vastuvõtmise osas

  • inet_interfaces - väärtus 'all' tähendab, et Postfix server kuulab kõigil võrguseadmetel port 25/tcp peale tulevaid ühendusi
  • mydestination - väärtuste seas esineb domeeninimi loomaaed.tartu.ee, mis tähendab, et selle domeeni kirju võetaks vastu ja neile tehakse local delivery
  • vaikimisi ei ole Postfix avatud relee (ingl. k. open relay), st läbi mail.loomaaed.tartu.ee ei saa avalikust internetist pöördudes saata kirju suvaliste domeenide kasutajatele
  • vaikimisi salvestab Postfix local delivery kirjad kasutajanimelistesse failidesse kataloogi /var/mail

Postfixi seadistusfailis /etc/postfix/main.cf kasutatud direktiivide esinemise järjekord ei ole tehnilises mõttes tähtis va asjaolu, et kui üks ja sama direktiiv on kirjeldatud mitu korda, siis jääb kehtima viimane kirjeldus. Kasutamise mõttes on otstarbekas samalaadseid direktiive grupeerida.

Kirja vastuvõtmine

Kui internetis saata kiri aadressile mart@loomaaed.tartu.ee, siis ilmub Postfixi logisse

 # tail -f /var/log/mail.log
 ...
 1 Jul 11 15:51:21 mail postfix/smtpd[6618]: connect from post-relee.auul[192.168.1.150]
 2 Jul 11 15:51:21 mail postfix/smtpd[6618]: 77CB1AC112: client=post-relee.auul[192.168.1.150]
 3 Jul 11 15:51:21 mail postfix/cleanup[6622]: 77CB1AC112: message-id=<20090711125121.7AC116E512@bmail.com>
 4 Jul 11 15:51:21 mail postfix/qmgr[6304]: 77CB1AC112: from=<priit@bmail.com>, size=516, nrcpt=1 (queue active)
 5 Jul 11 15:51:21 mail postfix/smtpd[6618]: disconnect from post-relee.auul[192.168.1.150]
 6 Jul 11 15:51:21 mail postfix/local[6623]: 77CB1AC112: to=<mart@loomaaed.tartu.ee>, relay=local, \
   delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
 7 Jul 11 15:51:21 post-lenny postfix/qmgr[6304]: 77CB1AC112: removed

kus

  1. - internetist aadressilt 192.168.1.150 võetakse ühendust
  2. - ...
  3. - eposti kirja identifikaator (message-id) on 20090711125121.7AC116E512@bmail.com
  4. - kiri on aadressilt priit@bmail.com
  5. - tcp/ip ühendus arvutiga 192.168.1.150 lõpetatakse
  6. - sooritatakse nn local delivery, st kiri salvetataks faili /var/mail/mart

Järgmised kirjad lisanduvad faili /var/mail/mart.

Vastuvõetud kirja lugemine

Postfix on postiedastusagent ja ta ei tegele ise kasutajate postiprogrammide (nt Icedove või Alpine) teenindamisega. Postfixi poolt postimasina failisüsteemi salvestatud nn postkastifailidest /var/mail/kasutajanimi saab kasutaja lugeda kirju kahel moel

  • kõige otsekohesem, aga praktiliseks kasutamiseks ehk suhteliselt ebamugav on kasutajatel on kirju lugeda nii, et logida sisse kasutajana postimasinasse ja kasutada programmi Alpine, mis oskab sellest failist kirju esitada
  • postimasinasse tuleb paigaldada mõni spetsiaalselt kasutajate postiprogrammidega suhtlev tarkvara, nt IMAP server Cyrus, mis oskab võrgus teenindada kasutaja töökoharvutist nt Icedove programmi kui IMAP kliendi pöördumisi

Alpine paigaldamiseks peab süsteemiadministraator ütlema

 # apt-get install alpine

Postfixi seadistamine saatma välja alamvõrgu 192.168.0.0/24 kirju

Kirjade väljasaatmiseks tuleb muuta failis /etc/postfix/main.cf parameetri mynetworks väärtust lisades sinna kasutatava subneti aadressi, tulemusena on vastav rida selline

 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24

Peale seadistusfaili muutmist tuleb öelda

 # /etc/init.d/postfix reload

Kirja väljasaatmine

Kirja väljasaatmiseks tuleb kasutaja postiprogrammis, nt Icedove seadistada väljuva eposti arvuti aadressiks 192.168.0.25

Kirja väljasaatmisel tekib logisse

 1 Jul 11 19:33:09 mail postfix/smtpd[6278]: connect from moraal[192.168.0.10]
 2 Jul 11 19:33:10 mail postfix/smtpd[6278]: 5590C6E50A: client=moraal[192.168.0.10]
 3 Jul 11 19:33:10 mail postfix/cleanup[6282]: 5590C6E50A: message-id=<4A58BEC5.20506@loomaaed.tartu.ee>
 4 Jul 11 19:33:10 mail postfix/qmgr[6274]: 5590C6E50A: from=<mart@loomaaed.tartu.ee>, size=484, nrcpt=1 (queue active)
 5 Jul 11 19:33:10 mail postfix/smtpd[6278]: disconnect from moraal[192.168.10.10]
 6 Jul 11 19:33:10 mail postfix/smtp[6283]: 5590C6E50A: to=<priit@bmail.com>, \
   relay=mail.bmail.com[192.168.32.82]:25, delay=0.3, delays=0.15/0.01/0.03/0.11, dsn=2.0.0, status=sent \
   (250 2.0.0 Ok: queued as 77B0E4A9D2)
 7 Jul 11 19:33:10 mail postfix/qmgr[6274]: 5590C6E50A: removed

kus

  1. postimasina poole pöördub kasutaja oma töökohaarvutist nt Icedove programmiga
  2. ...
  3. ...
  4. kiri on from aadressiga mart@loomaaed.tartu.ee
  5. tcp/ip ühendus kasutaja töökohaarvutiga lõpetatakse
  6. kiri on saadetakse aadressile priit@bmail.com võttes ühendust postimasinaga aadressil 192.168.32.82 ja 'status=sent' tähendab, et kiri õnnestus välja saata

Postimasina kasutamine tulemüüri taga NAT võrgus

Kui postimasin asub aadress-teisendavad tulemüüri taga, siis tuleb Postfixi seadistusfaili /etc/postfix/mail.cf lisada rida

 proxy_interfaces = 192.168.96.138

kus ip aadress on tulemüüri avalik aadress, mida internetist kasutatakse selle postimasina poole pöördumiseks.

Spämmi tõrjumine DNSBL nimekirja abil

DNSBL (Domain Name System Blocklist) tehnika võimaldab enne kirja vastuvõtmist postimasinal kontrollida tavalise nimepäringu abil, kas tema poole pöörduva SMTP kliendi ip aadress on nö spämmijate nimekirjas või mitte. Postfix toetab sellise kontrolli teostamist.

DNSBL teenusepakkujaid on internetis palju, sobiva valimisel tuleks arvestada selliseid asjaolusid

  • DNSBL teenusepakkujale usaldatakse otsuse tegemine, millistelt aadressidelt ei saa kõnealusesse postimasinasse kirju saata
  • DNSBL teenuseid pakutakse erinevatel tingimustel, nt on tasulisi ja mitte-tasulisi

Populaarsed teatud tingimustel tasuta DNSBL teenuse pakkujad on

Spamhaus esitab oma aadresse kolmes erinevas nimekirjas ja kombineeritud nimekirjadena

  • Spamhaus Block List (SBL, sbl.spamhaus.org) - kinnitatud spämmijate ip aadressid
  • Exploits Block List (XBL, xbl.spamhaus.org) - nimekiri tuntud viirusi, eksploite, troojalasi jms levitavatest ip aadressidest
  • Policy Block List (PBL, pbl.spamhaus.org) - nö kodukasutajate ip aadresside nimekiri, millelt tegelikult ei peaks kasutajad eposti saatma

Kombineeritud nimekirjad on sellised

  • sbl-xbl.spamhaus.org - SBL+XBL
  • zen.spamhaus.org - SBL+XBL+PBL

Spamhaus teenus on nö kodukasutajatele tasuta kasutada teatud tingimustel, kasutamistingimusi saab vaadata üksikasjalikult aadressilt http://www.spamhaus.org/

Postfixi seadistamiseks kontrollima SMTP kliendi ip aadressi zen.spamhaus.org nimekirjast peab seadistusfailis /etc/postfix/main.cf olema nt rida

 smtpd_recipients_restrictions = permit_mynetworks, reject_unauth_destination,
   reject_rbl_client zen.spamhaus.org

Seda rida tuleks lugeda selliselt

  • piiranguid kontrollitakse järjest, rakendatakse esimesena klappiv piirang
  • kui ükski piirang ei klapi, siis vaikimisi lubatakse andmevahetust
  • permit_mynetworks - postfixi smtpd komponent lubab andmevahtust kohalikest võrkudest
  • reject_unauth_destination - postfixi smtpd komponent ei luba andmevahetust kui RCPT TO päise järgi ei ole postimasin seadistatud kirja vahendama edasi või ise vastu võtma; see rida tegeleb eituse genereerimisega st kui nt kiri on vahendatav, siis tegeleb selle läbi lubamisega mõni reject_recipients_restrictions järgmine kontroll või lubatakse ta vaikimisi läbi
  • reject_rbl_client zen.spamhaus.org - kontrollitakse dns abil Spamhaus teenusest, kas tegemist on tuntud spämmijaga ning vajadusel andmevahetust ei lubata
  • permit - kui kiri ei klappinud ühegi kontrolliga, siis lubatakse ta läbi
  • kui seadistusfaili rida algab tühiku või tabulatsioonimärgiga, siis loetakse seda eelmise rea jätkuks
  • elemente on samaväärne eraldada tühiku või komaga (või mõlemiga)

Piirangute esitamisel on järjekord oluline, sõltub asjaoludest, aga üldiselt on otstarbekas kallimad kontrollid paigutada lõpupoole.

Kuulates võrku pealt on näha, et postimasin esitab oma seadistatud nimeserveri kaudu päringu Spamhausile ja saab vastuseks, et saatja 192.168.32.86 ip aadress ei ole tuntud spämmija

 21:35:41.145213 IP 192.168.0.25.52665 > 192.168.96.138.53: 48934+ A? 86.32.168.192.zen.spamhaus.org. (48)
 21:35:42.133214 IP 192.168.96.138.53 > 192.168.0.25.52665: 48934 NXDomain 0/1/0 (112)

Kui aga Spamhausi poolt kiri peatatakse, siis on Postfixi logis kirjas midagi sellist

 Jul 11 21:48:47 mail postfix/smtpd[21995]: NOQUEUE: reject: RCPT from unknown[192.168.175.125]:\
   554 5.7.1 Service unavailable; Client host [192.168.175.125] blocked using zen.spamhaus.org; \
   http://www.spamhaus.org /query/bl?ip=192.168.175.125; \
   from=<handbags@spammija.net> to=<rosenqvistrosenqvistrbwf@loomaaed.tartu.ee> proto=ESMTP \
   helo=<125-175-168-192.cab.tiiba.net.ar>

Nö käsitsi saab ip aadressi Spamhausi kuulumist kontrollida küsides, kuulumisel vastatakse nii

 $ dig +short 125.175.168.192.zen.spamhaus.org
 127.0.0.4

ja mitte-kuulumisel

$ dig +short 125.175.168.192.zen.spamhaus.org
$

Või brauseriga küsides aadressilt http://www.spamhaus.org/query/bl?ip=192.168.175.125

Kasulikud lisamaterjalid