Erinevus lehekülje "Postfix'i kasutamine Debianiga" redaktsioonide vahel

Allikas: Kuutõrvaja
(ClamAV)
(Tarkvara paigaldamine)
 
(ei näidata sama kasutaja 135 vahepealset redaktsiooni)
1. rida: 1. rida:
===Sissejuhatus===
 
 
Postfix on postiedastusagent (ingl. k. mail transport agent, MTA). Postiedastusagendi ülesanne on võtta epost võrgust või lokaalselt vastu ja anda edasi
 
 
* postijaotusagendile (ingl. k. mail delivery agent, MDA) kirjade kasutajate postkastidesse jaotamiseks
 
* järgmisele postiedastusagendile
 
* viiruste analüüsi süsteemile
 
* spami analüüsi süsteemile
 
 
Postiedastusagent on epostisüsteemi keskne komponent, mis ühendab kokku kõik eposti liikumisega toimuvad tegevused
 
 
                    internet (teised MTA'd)
 
 
 
                            | ^
 
                            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===
 
===Eesmärk===
  
Eesmärgiks on seadistada käima selliste omadustega postiedastusagent
+
Eesmärgiks on seadistada käima selliste omadustega postiedastusagent (ingl. k. Mail Transfer Agent, MTA) Postfix
 
 
* võtab vastu domeenide loomaaed.tartu.ee ja www.loomaaed.tartu.ee posti
 
* saadab mart@loomaaed.tartu.ee aadressile saadetud kirja edasi aadressile
 
* salvestab priit@loomaaed.tartu.ee aadressile saadetud kirja faili /var/mail/mart
 
* võimaldab saata välja alamvõrkudest 192.168.0.0/24 ja 172.16.0.0/24 posti
 
 
 
===Tarkvara paigaldamine===
 
 
 
Postfix tarkvara saab paigaldada Debiani 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'
 
 
 
* No configuration
 
* 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
+
* 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
  
Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.
+
                        internet 
 
+
                          ...
  Setting up postfix (2.3.8-2) ...
+
                            .
  Adding group `postfix' (GID 105) ...
+
                            v
  Done.
 
  Adding system user `postfix' (UID 104) ...
 
  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'.
+
          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
 
    
 
    
  Running newaliases
+
                Töökohaarvuti B
  Stopping Postfix Mail Transport Agent: postfix.
 
  Starting Postfix Mail Transport Agent: postfix.
 
 
 
Postfixiga on seotud failisüsteemis sellised kataloogid ning failid
 
  
* /etc/postfix - Postfixi seadistusfailid
+
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.
* /etc/mailname
 
* /var/spool/postfix - saba (ingl. k. queue)
 
* /var/log/mail.log - logi
 
* /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb
 
  
===Seadistamine===
+
Püstitatud eesmärki võiks kasutaja edasi arendada
  
Süsteemist väljuva posti ümbriku muutmiseks tuleb kasutada mail.cf failis rida
+
* viiruste analüüsi ja täiendavad spämmianalüüsi lisamisega - [[:Amavis_kasutamine_Debian_Lenniga]]
 +
* kasutajate postkastide pidamise lahendusega - [[:Cyruse_kasutamine_Postfixi_ja_Debianiga]]
 +
* süsteemi kahetasemeliseks muutmine - [[:Kahetasemelise_Postfix'i_süsteemi_kasutamine_Debianiga]]
 +
* greylisting kasutamine postiedastusagendi ees tulemüüris - [[:OpenBSD_spamd_tarkvara_kasutamine]]
  
  smtp_generic_maps = hash:/etc/postfix/generic
+
===Nimesüsteemi ettevalmistamine===
  
ning /etc/postfix/generic ise sisaldab näiteks selliseid ridu
+
Õigesti seadistatud nimesüsteem on postisüsteemi kasutamise eelduseks.
  
  www-data@arvuti.sisedomeen  www-bounce@valisdomeen.ee
+
====MX ja A kirje====
  root@arvuti.sisedomee      www-bounce@valisdomeen.ee
 
  
Muudatuste kehtestamiseks tuleb generic'ikile vastav andmebaas moodustada käsuga
+
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.
  
  # postmap /etc/postfix/generic
+
MX kirje näeb välja nt selline
  
ning laadida reload'iga Postfix.
+
   $ dig @ns.nimeserver.ee loomaaed.tartu.ee mx
 
+
   ...
===Kasutamine===
+
   ;; QUESTION SECTION:
 
+
   ;looomaaed.tartu.ee.                 IN      MX
Aliase olemasolu kontrollimiseks sobib öelda
 
 
 
   # postmap -q mart@loomaaed.tartu.ee pgsql:/etc/postfix/pgsql-local.cf
 
 
 
Kirjade sabast ära saatmiseks
 
 
 
   # postqueue -f
 
 
 
===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";
+
   ;; ANSWER SECTION:
   print fh "$ARGV[1]\n\n\n";
+
   looomaaed.tartu.ee.          300    IN      MX      20 mail.loomaaed.tartu.ee.
 
    
 
    
   @read=<STDIN>;
+
   ;; AUTHORITY SECTION:
 
+
   looomaaed.tartu.ee.           300    IN      NS      ns1.loomaaed.tartu.ee.
  foreach $rida (@read) {
+
   looomaaed.tartu.ee.          300    IN      NS     ns2.loomaaed.tartu.ee.
    print fh $rida;
+
   }
+
  ;; ADDITIONAL SECTION:
 
+
  mail.loomaaed.tartu.ee.      300    IN      A      192.168.0.24
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.
+
  ns1.loomaaed.tartu.ee.      86400    IN      A      192.168.193.163
 
+
   ns2.loomaaed.tartu.ee.     86400    IN      A       192.168.193.164
===Logi ja debugimine===
 
 
 
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.
 
 
 
  # mailq
 
  ....
 
   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
+
Kui kasutaja internetist püüab saata kirja aadressile mart@loomaaed.tartu.ee, siis toimub selline järgnevus
  
  # postsuper -d C558C4DC80
+
* 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
  
===Spämmi tõrjumine Postfixi sisemiste vahenditega===
+
====PTR kirje====
  
Näiteks sobib kasutada sellist parameetrit selliste väärtustega
+
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
  
   smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access,
+
   $ dig -x 192.168.0.24
  reject_unknown_sender_domain, permit_mynetworks, reject_unauth_destination,
 
  reject_rbl_client bl.spamcop.net,
 
  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
 
 
 
===Andmevahetuse krüptimine===
 
 
 
Selleks, et server võimaldaks krüptida smtp klientide sissetulevaid ühendusi peavad olema seadistusfailis main.cf read
 
 
 
  smtpd_tls_key_file = /etc/postfix/serdid/smtp.loomaaed.tartu.ee.pem
 
  smtpd_tls_cert_file = /etc/postfix/serdid/smtp.loomaaed.tartu.ee.crt
 
  smtpd_tls_CAfile = /etc/postfix/serdid/loomaaed-ca.crt
 
  smtpd_use_tls=yes
 
  smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
 
 
 
kus
 
 
 
* smtpd_tls_key_file näitab, millises failis asub sertifikaadile vastav salajane võti
 
* smtpd_tls_cert_file näitab, millises failis asub sertifikaat
 
* smtpd_tls_CAfile näitab, millises failis asuvad sertifikaadi allkirjastanud ahela ülemised sertifikaadid
 
 
 
Selleks, et teha kindlaks, kas postiserver toetab SMTP STARTSSL laiendust sobib öelda
 
 
 
  $ openssl s_client -starttls smtp -showcerts -connect 192.168.1.251:25
 
 
 
===Postisüsteemi testimine===
 
 
 
TODO
 
 
 
====Jõudlus====
 
 
 
TODO
 
 
 
====Spam====
 
 
 
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.
 
 
 
====Viirus====
 
 
 
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.
 
 
 
===Amavis===
 
 
 
Põhimõtteliselt Amavis http://www.ijs.si/software/amavisd/ 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.
 
 
 
Amavis paigaldatakse öeldes
 
 
 
  # apt-get install amavisd-new
 
 
 
Vaikeseadistustega Amavis sobib kasutamiseks
 
 
 
* Amavis kuulab soketil 127.0.0.1:10024
 
* 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
 
 
 
  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
+
   ;; QUESTION SECTION:
    -o content_filter=
+
   ;24.0.168.192.in-addr.arpa.   IN      PTR
    -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=
 
 
 
====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 clamav-daemon
 
 
 
ClamAV kasutamine tuleb 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);
 
 
 
ning lisada kasuaja clamav gruppi amavis
 
 
 
  # grep amavis /etc/group
 
  amavis:x:108:clamav
 
 
 
====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]
+
   ;; ANSWER SECTION:
  Feb  8 23:10:35 smtp1a postfix/cleanup[2146]: 2FA992ECF5: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul>
+
  24.0.168.192.in-addr.arpa. 300 IN      PTR    mail.loomaaed.tartu.ee.
  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>, \
+
   ;; AUTHORITY SECTION:
    Message-ID: <alpine.DEB.1.10.0902082310300.2613@moraal.auul>, mail_id: C+vCuhHWo1Nb, Hits: -, size: 505, queued_as: 2FA992ECF5, 84 ms
+
  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.
   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
+
===Postimasina ettevalmistamine===
  
* 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
+
Postimasinas tuleks esmalt kontrollida, kas arvuti nimi on korrektselt seadistatud. Antud juhul peaks olema failis /etc/hostname kirjas
  
   Feb  8 23:10:35 smtp1a postfix/smtpd[2149]: 08F142ECE1: client=moraal.auul[192.168.2.38]
+
   # cat /etc/hostname
  Feb  8 23:10:35 smtp1a postfix/cleanup[2146]: 08F142ECE1: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul>
+
   mail
  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
+
ning failis /etc/hosts kirjas
  
   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, \
+
   # cat /etc/hosts
    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)
+
  127.0.0.1       localhost.localdomain localhost
 +
   192.168.96.138  mail.loomaaed.tartu.ee      mail
  
* 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
+
Kontrollimiseks peab hostname programmile süsteem vastama nii
  
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>, \
+
  # hostname
  Message-ID: <alpine.DEB.1.10.0902082310300.2613@moraal.auul>, mail_id: C+vCuhHWo1Nb, Hits: -, size: 505, queued_as: 2FA992ECF5, 84 ms
+
  mail
 +
  # hostname -f
 +
  mail.loomaaed.tartu.ee
  
* Postix võtab vastu kirja Amaviselt ning kirja töötlemine viiakse lõpuni, kiri saadetakse edasi järgmisele postimasinale, smtp.loomaaed.tartu.ee
+
Olgu postimasin ühendatud võrku nii nagu punktis Eesmärk on esitatud, kusjuures
  
  Feb  8 23:10:35 smtp1a postfix/smtpd[2144]: 2FA992ECF5: client=localhost.localdomain[127.0.0.1]
+
* tulemüürist peab saama pöörduda postimasina pordile 25/tcp
  Feb  8 23:10:35 smtp1a postfix/cleanup[2146]: 2FA992ECF5: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul>
+
* postimasin peab saama pöörduda internetti pordile 25/tcp
  Feb  8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: from=<priit@loomaaed.tartu.ee>, size=885, nrcpt=1 (queue active)
+
* postimasin peab saama nimesid lahendada
  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
 
  
====Amavisi karantiinist kirjade väljasaatmine====
+
Lisaks võiks postimasinas olla seadistatud selline tarkvara
  
Amavisi pool karantiini pandud kirju saab saata edasi peale konkreetse kirjaga tutvumist
+
* ntp - ajaserver, õigemini küll kliendi rollis
 +
* lokaat
 +
* syslog
  
  # less /var/lib/amavis/virusmails/U/banned-UtWYVe9vAJ-i
+
===Tarkvara paigaldamine===
  
öeldes
+
Postfix tarkvara v. 2.5.5 saab paigaldada Debian Lenny paketihaldusest öeldes
  
   # amavisd-release U/banned-UtWYVe9vAJ-i
+
   bash# apt-get install postfix postfix-doc
  250 2.0.0 Ok, id=rel-UtWYVe9vAJ-i, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 5147E6E3DB
 
  
====amavisd-nanny====
+
Tavaliselt siis eemaldatakse vaikimisi Debiani standard operatsioonisüsteemi kooseisus esinev Exim Postfixi vastu. Postfixi paigaldamisel tuleb valida 'General type of configuration', valime 'Internet Site'
  
  # export AMAVISD_DB_HOME=/var/lib/amavis/db
+
[[Pilt:Postfix-1.gif]]
  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====
+
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
  
This is amavisd-agent, a demo program to display SNMP-like counters updated by amavisd-new.
+
  loomaaed.tartu.ee
  
  entropy        STR uScznvaFtA
+
Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.
  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)
 
  
===Cyrus===
+
  Setting up postfix (2.5.5-1.1) ...
 
+
   Adding group `postfix' (GID 107) ...
Postkastihalduse tarkvara Cyrus sisaldab muu hulgas selliseid komponente
+
   Done.
 
+
   Adding system user `postfix' (UID 105) ...
* haldusvahendid (cyradm programm)
+
   Adding new user `postfix' (UID 105) with group `postfix' ...
* imap server
+
   Not creating home directory `/var/spool/postfix'.
* pop3 server
+
   Creating /etc/postfix/dynamicmaps.cf
* testkliendid (IMAP serveri testklientprogramm imtest)
+
   Adding tcp map entry to /etc/postfix/dynamicmaps.cf
 
+
   Adding group `postdrop' (GID 108) ...
Cyrus tarkvaraga saab pealnäha sarnase tulemuse, so postkastide pidamise saavutada üsna mitmel erineval moel. Käesolev tekst kirjeldab järgmisete omadustega juhtumit
+
  Done.
 
+
   setting myhostname: mail.loomaaed.tartu.ee
* kõik Cyruse protsessid töötavad ühes ja samas operatsioonisüsteemi eksemplaris
+
   setting alias maps
* Cyruse imap klientide andmed tulevad välisest PostgreSQL andmebaasist SASL ja omakorda PAM abil
+
   setting alias database
* Postfix kasutab PostgreSQL andmebaasi, millest saab teada millistele aadressidele tuleb teha local delivery Cyruse abil
+
   changing /etc/mailname to loomaaed.tartu.ee
* Cyruse postkastidesse saabuvad kirjad Postfix MTA'st LMTP protokolli kasutamise teel
+
   setting myorigin
* Cyruse postkastidele on ligipääs IMAP ja POP3 serverite kaudu, krüptitud ja krüptimata andmevahetust võimaldades
+
   setting destinations: loomaaed.tartu.ee, mail.loomaaed.tartu.ee, localhost.loomaaed.tartu.ee, localhost
 
+
  setting relayhost:
Sellisel moel käivitatud Cyruse kasutuselevõtmiseks tuleb sooritada näiteks selline tegevuste järgnevus
+
   setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
 
+
  setting mailbox_size_limit: 0
* paigaldada vajalik hulk Cyrus'e komponent
+
   setting recipient_delimiter: +
* valmistada ette PostgreSQL andmebaas
+
   setting inet_interfaces: all
* valmistada ette PAM komponent
+
   /etc/aliases does not exist, creating it.
* valmistada ette SASL komponent
+
   WARNING: /etc/aliases exists, but does not have a root alias.
* seadistada Cyrusele administratiivne kasutaja ning tekitada tavakasutajale postkast
 
* seadistada Cyrus käima koos Postfixiga
 
 
 
====Cyrus tarkvara paigaldamine====
 
 
 
Cyrus'e paigaldamiseks tuleb öelda
 
 
 
  # 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
 
 
 
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
 
 
 
  sasl_mech_list: PLAIN
 
  sasl_pwcheck_method: saslauthd
 
 
 
Cyrus käivitusskript on
 
 
 
  # /etc/init.d/cyrus2.2
 
 
 
Cyruse tööd kontrollivad lisaks olulised failid seadistusfailide kataloogist (ingl. k. configuration directory), vaikimisi /var/lib/cyrus
 
 
 
* /var/lib/cyrus/proc - kataloogis asuvad teenust parasjagu kasutavate kasutajate protsessiinfo failid
 
* /var/lib/cyrus/quota - kataloogis asuvad kasutajate kvootide määratlused
 
* /var/lib/cyrus/user - kataloogis asuvad kasutajate .seen ja .sub failid
 
* /var/lib/cyrus/mailboxes.db -
 
* /var/lib/cyrus/deliver.db -
 
* /var/lib/cyrus/tls_sessions.db -
 
* /var/lib/cyrus/annotations.db -
 
 
 
====PostgreSQL andmebaasi ettevalmistamine====
 
 
 
PostgreSQL andmebaasi tabelis hoitakse Cyruse kasutajate autentimiseks vajalikke andmeid.
 
 
 
====PAM komponendi ettevalmistamine====
 
 
 
PostgreSQLi andmebaasi kasutamiseks peab paigaldama paketi üldotstarbelise paketi libpam-pgsql
 
 
 
   # apt-get install libpam-pgsql
 
 
 
PAM komponendi ettevalmistamine toimub failide /etc/pam.d/imap, /etc/pam.d/pop ning /etc/pam_pgsql.conf abil
 
 
 
  # cat /etc/pam.d/imap (sama ka failis /etc/pam.d/pop)
 
  auth        required    pam_pgsql.so
 
  account    required    pam_pgsql.so
 
  password    required    pam_pgsql.so
 
 
 
ning
 
 
 
   # cat /etc/pam_pgsql.conf
 
  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====
 
 
 
SASL kompoenendi seadistamine toimub faili /etc/default/saslauthd abil, antud juhtumil on oluline, et SASL deemon oleks käivitatav
 
 
 
  START=yes
 
 
 
ning et SASL töötaks vastu PAM'i
 
 
 
  MECHANISMS="pam"
 
 
 
====Cyruse administratiivne kasutaja ja kasutajate haldus====
 
 
 
Cyrus töö käigus kasutatakse mitmeid nö andmebaase
 
 
 
* 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
 
* 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
 
 
 
 
 
Cyruse administratiivse kasutaja kasutajanimi on kirjas seadistusfailis /etc/imapd.conf, näiteks võiks selleks olla 'cyrus'
 
 
 
  admins: cyrus
 
 
 
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.
 
 
 
Postisüsteemi kasutaja moodustamiseks tuleb kasutaja administratiivse kasutajana cyrus moodustada esmalt sellele kasutajale postkast öeldes
 
 
 
   $ cyradmin --user cyrus localhost
 
  IMAP Password:
 
  localhost.localdomain> cm user.mart
 
  localhost.localdomain> sq user.mart 200000
 
  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
 
 
 
  $ imtest -a mart -u mart localhost -w mardiparool
 
  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
 
 
 
  localhost.localdomain> sam user.mart priit lr
 
  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.
 
 
 
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.
 
 
 
====Kirjade automaatne jagamine postkastidesse====
 
 
 
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).  
 
 
 
Selleks tuleb esmalt moodustada tekstifail, nt
 
 
 
   $ cat /var/spool/sieve/m/mart/default
 
  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
 
 
 
* kirjad, mille päises List-Id: rida sisaldab väärtust debian-mirrors.lists.debian.org tuleb kopeerida kataloogi d-m
 
* 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
 
 
 
  $ /usr/lib/cyrus/bin/sievec /var/spool/sieve/m/mart/default /var/spool/sieve/m/mart/defaultbc
 
 
 
Subject kasutamisel tuleb arvestada, et nn täpitähtede puhul on subject kodeeritud.
 
 
 
====Cyruse seadistamine käima koos Postfixiga====
 
 
 
Selleks, et Postfix annaks LMTP (Local Mail Transport Protocol) protokolli abil kirjad edasi Cyrusele sobib kasutada Postfixi transport'i. Transport moodustatakse tekitades tekstifail
 
 
 
   # cat /etc/postfix/transport
 
  loomaaed.tartu.ee lmtp:unix:/var/run/cyrus/socket/lmtp
 
 
 
ning öeldes
 
 
 
   # postmap /etc/postfix/transport
 
 
 
mille tulemusena tekib Berkeley DB andmebaasi formaadis fail
 
 
 
  /etc/postfix/transport.db
 
 
 
Moodustatud transporti kasutamiseks peab /etc/postfix/main.cf failis sisalduma rida
 
 
 
   transport_maps = hash:/etc/postfix/transport
 
 
 
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.
 
 
 
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
 
 
 
   virtual_alias_maps = pgsql:/etc/postfix/cyrus.cf
 
  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 klient.
 
 
 
Lisaks on võimalik paigaldada OpenPG kasutamiseks Enigmail laiendus öeldes
 
 
 
  # apt-get install enigmail
 
 
 
====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"
+
   Postfix is now set up with a default configuration. If you need to make
   TransferLog "/var/log/apache2/sympa.avalik.kit-access.log"
+
   changes, edit /etc/postfix/main.cf (and others) as needed. To view Postfix configuration
 +
  values, see postconf(1).
 
    
 
    
   <Directory "/home/sympa/www">
+
   After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
    Options None
 
    AllowOverride All
 
    Order Deny,Allow
 
    Allow from All
 
  </Directory>
 
 
    
 
    
   Alias /static-sympa /usr/local/sympa/static_content
+
   Running newaliases
   ScriptAlias /sympa /usr/local/sympa/bin/wwsympa.fcgi
+
   Stopping Postfix Mail Transport Agent: postfix.
    
+
   Starting Postfix Mail Transport Agent: postfix.
   </VirtualHost>
+
   Setting up postfix-doc (2.5.5-1.1) ...
  
Sympa seadistamine toimub peamiselt faili /etc/sympa.conf abil, olulised on järgmised määrangud
+
Postfixiga on seotud failisüsteemis sellised kataloogid ning failid
  
  domain  loomaaed.tartu.ee
+
* /etc/postfix - Postfixi seadistusfailid, kõige olulisemad on main.cf ja master.cf
  listmaster      mart@loomaaed.tartu.ee
+
* /etc/mailname - sisuga 'loomaaed.tartu.ee'
  lang    en_US
+
* /var/spool/postfix - saba (ingl. k. queue)
  supported_lang  en_US,et_EE
+
* /var/log/mail.* - logi
  db_type Pg
+
* /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb
  db_name sympa
+
* man 5 postconf - manuaal
  db_host 10.0.6.221
+
* /etc/aliases - nn aliases andmebaas
  db_port 5432
 
  db_user postgres
 
  db_passwd sympa
 
  
====Sympa käivitamine====
+
Tarkvara paigaldamisel esitatud dialoogi saab edaspidi esile kutsuda öeldes
  
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.
+
# dpkg-reconfigure postfix
  
Abiks  on jälgida Sympa logi, vaikimini /var/log/syslog. Nt Sympa logib läbi veebiliidese antud korraldusi
+
===Postfixi seadistamine võtma vastu loomaaed.tartu.ee domeeni kirju===
  
  Dec 21 13:38:58 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test]
+
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
  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.
+
  # 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
  
===Mailman===
+
Kõigi kehtestatud seadistusparameetrite nimekirja koos väärtustega näeb öeldes
  
Mailman (ingl. k. postiljon) http://www.list.org/ on postiloendite (ingl. k. list) pidamise tarkvara.
+
  # postconf
  
Järgnevas kirjaldame kuidas saavutada sellist eesmärki
+
ning vaikeväärtustega nimekirja öeldes
  
* ühe Mailman eksempari abil peetakse kolme domeeniga seotud postiloendeid, @lists.loomaaed.tartu.ee, @lists.vagunitehas.tartu.ee, @lists.raudteejaam.tartu.ee
+
  # postfix -d
* 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 paigaldamise käigus moodustatud seadistused täidavad püstitatud eesmärgi kirjade vastuvõtmise osas
  
Tarkvara paigaldamiseks tuleb öelda
+
* 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
  
  # apt-get install mailman
+
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.
  
Seejärel küsitakse, millistes keeltes soovitakse, et Mailman oleks võimeline kasutajaga suhtlema, eriti puudutab see valik, millistes keeltes saab saata kasutajatele automaatselt genereeritud kirju (nt teated listiga liitumise kohta)
+
====Kirja vastuvõtmine====
  
  For each supported language, Mailman stores default language specific texts in /etc/mailman/LANG/ giving
+
Kui internetis saata kiri aadressile mart@loomaaed.tartu.ee, siis ilmub Postfixi logisse
  them conffile like treatment with the help of ucf. This means approximately 150kB for each supported
 
  language on the root file system.
 
 
 
  If you need a different set of languages at a later time, just run dpkg-reconfigure mailman.
 
 
 
  NOTE: Languages enabled on existing mailing lists are forcibly re-enabled when deselected and mailman
 
  needs at least one language for displaying its messages.
 
  
Lisaks mailman paketile paigaldatakse automaatlselt ka Apache veebiserver, 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.
+
  # 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
  
Seejärel teatab installer, et
+
kus
  
  Missing site list
+
# - internetist aadressilt 192.168.1.150 võetakse ühendust
+
# - ...
  Mailman needs a so-called "site list", which is the list from which password reminders and such
+
# - eposti kirja identifikaator (message-id) on 20090711125121.7AC116E512@bmail.com
  are sent out from. This list needs to be created before mailman will start. To create the list, run
+
# - kiri on aadressilt priit@bmail.com
  "newlist mailman" and follow the instructions on-screen. Note that you also need to start mailman after
+
# - tcp/ip ühendus arvutiga 192.168.1.150 lõpetatakse
  that, using /etc/init.d/mailman start.
+
# - sooritatakse nn local delivery, st kiri salvetataks faili /var/mail/mart
  
====Mailmani seadistamine====
+
Järgmised kirjad lisanduvad faili /var/mail/mart.
  
Mailmani listihalduse tarkvara esineb arvutis töötava deemoni kujul ning oluliseks seadistusfailiks on /etc/mailman/mm_cfg.py. Selles tuleks teha sellised muudatused
+
====Vastuvõetud kirja lugemine====
  
  MAILMAN_SITE_LIST = 'mailman'
+
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
  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
+
* 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
  
  # newlist mailman mart@loomaaed.tartu.ee parool
+
Alpine paigaldamiseks peab süsteemiadministraator ütlema
  
Seejärel saab listserveri deemoni käivitada
+
  # apt-get install alpine
  
  # /etc/init.d/mailman start
+
===Postfixi seadistamine saatma välja alamvõrgu 192.168.0.0/24 kirju===
  
====Apache veebiserveri seadistamine====
+
Kirjade väljasaatmiseks tuleb muuta failis /etc/postfix/main.cf parameetri mynetworks väärtust lisades sinna kasutatava subneti aadressi, tulemusena on vastav rida selline
  
Ülidselt tuleb veebiserver seadistada käima aadressidel
+
  mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
  
* https://lists.loomaaed.tartu.ee/
+
Peale seadistusfaili muutmist tuleb öelda
* https://lists.vagunitehas.tartu.ee/
 
* https://lists.raudteejaam.tartu.ee/
 
  
tavalisel moel. Mailmanile spetsiifilise osa kohta on toodud näide failis
+
  # /etc/init.d/postfix reload
  
  /etc/mailman/apache.conf
+
====Kirja väljasaatmine====
  
Kokkuvõttes võiks olla lists.loomaaed.tartu.ee virtuaalhosti seadistusfail nt sellise sisuga
+
Kirja väljasaatmiseks tuleb kasutaja postiprogrammis, nt Icedove seadistada väljuva eposti arvuti aadressiks 192.168.0.25
  
  <VirtualHost 10.0.6.221:443>
+
[[Pilt:Postfix-2.gif]]
    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>
 
  
Kontrolliks sobib proovida logida sisse veebipõhisesse haldusliidesesse kasutades mailman listi parooli, kasutajanime ei pea sisestama.
+
Kirja väljasaatmisel tekib logisse
  
[[Pilt:Mailman-1.gif]]
+
  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
  
====Postfixi seadistamine====
+
kus
  
Kui kogu domeeni eposti kasutus on seotud postiloendiga ja ainult postiloendiga, siis saab seadistada Postfixi käima lihtsustatud kujul ja otsekohesemalt. Muu hulgas tähendab see seda, et ei pea kasutama aliases'eid.
+
# 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
  
Sellisel juhul tuleb
+
===Postimasina kasutamine tulemüüri taga NAT võrgus===
  
* kasutada /etc/postfix/main.cf failis
+
Kui postimasin asub aadress-teisendavad tulemüüri taga, siis tuleb Postfixi seadistusfaili /etc/postfix/mail.cf lisada rida
  
   relay_domains = ... lists.loomaaed.tartu.ee, lists.vagunitehas.tartu.ee, lists.raudteejaam.tartu.ee
+
   proxy_interfaces = 192.168.96.138
  transport_maps = hash:/etc/postfix/transport
 
  mailman_destination_recipient_limit = 1
 
  
* kasutada /etc/postfix/master.cf failis
+
kus ip aadress on tulemüüri avalik aadress, mida internetist kasutatakse selle postimasina poole pöördumiseks.
  
  mailman unix  -      n      n      -      -      pipe
+
===Spämmi tõrjumine DNSBL nimekirja abil===
  flags=FR user=list
 
  argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${mailbox}
 
  
* kasutada /etc/postfix/transport failis
+
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.
  
  lists.loomaaed.tartu.ee    mailman:
+
DNSBL teenusepakkujaid on internetis palju, sobiva valimisel tuleks arvestada selliseid asjaolusid
  lists.vagunitehas.tartu.ee  mailman:
 
  lists.raudteejaam.tartu.ee  mailman:
 
  
* kasutada /etc/mailman/mm_cfg.py failis
+
* 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
  
  MTA = None # No MTA alias processing required
+
Populaarsed teatud tingimustel tasuta DNSBL teenuse pakkujad on
  DEB_LISTMASTER = 'postmaster@loomaaed.tartu.ee'
 
  
ning lisaks olemasolevatele ridadele
+
* 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
  
  # Default domain for email addresses of newly created MLs
+
Spamhaus esitab oma aadresse kolmes erinevas nimekirjas ja kombineeritud nimekirjadena
  DEFAULT_EMAIL_HOST = 'lists.loomaaed.tartu.ee'
 
  #-------------------------------------------------------------
 
  # Default host for web interface of newly created MLs
 
  DEFAULT_URL_HOST  = 'lists.loomaaed.tartu.ee'
 
  #-------------------------------------------------------------
 
  # Required when setting any of its arguments.
 
  add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
 
  
kaks rida
+
* 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
  
  add_virtualhost('lists.vagunitehas.tartu.ee','lists.vagunitehas.tartu.ee')
+
Kombineeritud nimekirjad on sellised
  add_virtualhost('lists.raudteejaam.tartu.ee','lists.raudteejaam.tartu.ee')
 
  
====Mailmani haldamine====
+
* sbl-xbl.spamhaus.org - SBL+XBL
 +
* zen.spamhaus.org - SBL+XBL+PBL
  
* Listimootori adminstraatori parooli muutmiseks tuleb öelda
+
Spamhaus teenus on nö kodukasutajatele tasuta kasutada teatud tingimustel, kasutamistingimusi saab vaadata üksikasjalikult aadressilt http://www.spamhaus.org/
  
  # mmsitepass uusparool
+
Postfixi seadistamiseks kontrollima SMTP kliendi ip aadressi zen.spamhaus.org nimekirjast peab seadistusfailis /etc/postfix/main.cf olema nt rida
  
Olulised failid asuvad kataloogis /var/lib/mailman
+
   smtpd_recipients_restrictions = permit_mynetworks, reject_unauth_destination,
 
+
     reject_rbl_client zen.spamhaus.org
  lrwxrwxrwx  1 root root  24 Feb 10 09:53 Mailman -> /usr/lib/mailman/Mailman
 
  drwxrwsr-x  4 root list 4096 Feb 10 09:53 archives
 
  lrwxrwxrwx  1 root root  20 Feb 10 09:53 bin -> /usr/lib/mailman/bin
 
  lrwxrwxrwx  1 root root  24 Feb 10 09:53 cgi-bin -> /usr/lib/cgi-bin/mailman
 
  lrwxrwxrwx  1 root root  21 Feb 10 09:53 cron -> /usr/lib/mailman/cron
 
  drwxrwsr-x  2 root list 4096 Feb 10 22:58 data
 
  lrwxrwxrwx  1 root root  25 Feb 10 09:53 icons -> /usr/share/images/mailman
 
  drwxrwsr-x  5 root list 4096 Feb 11 01:04 lists
 
  lrwxrwxrwx  1 root root  17 Feb 10 09:53 locks -> /var/lock/mailman
 
  lrwxrwxrwx  1 root root  16 Feb 10 09:53 logs -> /var/log/mailman
 
  lrwxrwxrwx  1 root root  21 Feb 10 09:53 mail -> /usr/lib/mailman/mail
 
  drwxr-sr-x 37 root list 4096 Feb 10 09:53 messages
 
  lrwxrwxrwx  1 root root  26 Feb 10 09:53 pythonlib -> /usr/lib/mailman/pythonlib
 
  drwxrwsr-x 11 list list 4096 Feb 10 10:57 qfiles
 
  lrwxrwxrwx  1 root root  24 Feb 10 09:53 scripts -> /usr/lib/mailman/scripts
 
  drwxrwsr-x  2 root list 4096 Jan 26 21:52 spam
 
  lrwxrwxrwx  1 root root  12 Feb 10 09:53 templates -> /etc/mailman
 
  drwxrwsr-x  4 root list 4096 Feb 10 09:53 tests
 
 
 
* /etc/mailman - muu hulgas paigaldatud keeled (milles saadetakse kasutajatele teavitusi jms)
 
* lists/test/config.pck - listi test seadistusfail
 
* data/adm.pw - listimootori superuseri parool
 
* archives - listide arhiivid
 
 
 
Listi moodustamiseks tuleb öelda
 
 
 
  # newlist listinime@domeeninimi halduri@epostiaadress halduriparool
 
 
 
Listi seadistuse saab esitada tekstilisel kujul öeldes
 
 
 
  # config_list -o - listinimi
 
 
 
Uue listi juures võiks pöörata tähelepanu sellistele määratlustele
 
 
 
General Options
 
 
 
* real_name - listi nimi, kasutatakse listi aadressis, vasakul @ märki ja reeglina näidatakse listi tekitamisel
 
* owner - listi halduri aadress, sinna saadab listimootor erinevaid automaatselt genereeritud teateid
 
* respond_to_post_request - kas listimootor saadab listi kirja saatnud kasutajale tagasi kirja teatega kui tema kirja modereeritakse, soovitav väärtus on No, et internetti mitte risustada
 
* max_message_size - listimootori poolt töödeldava kirja maksimaalne suurus, ehk on tänapäeval 8M sobiv kui rahvas saadab ka kirja lisasid
 
 
 
Passwords
 
 
 
* listi haldusi ja moderaatori paroolide määramine
 
 
 
Membership management
 
 
 
* Listi liikmete lisamine, eemaldamine jm haldus
 
 
 
Privacy Options -> Subscription rules
 
 
 
* advertised - määrab, kas listi nimi esineb listserveri listide nimekirjas aadressil https://lists.loomaaed.tartu.ee/admin/listinimi, võiks valida No, et mitte liigselt tähelepanu tõmmata
 
* subscribe_policy - määrab, mis tingimustel saab tekkida listi uus kasutaja, soovitav on Confirm and approve, et vaikselt ei saaks huvilised ennast ise listi lisada
 
 
 
Archival options
 
 
 
* archive - määrab, kas listi kirjad arhiveeritakse listserveris
 
* archive_private - määrab, kas listi arhiiv on avalik või privaatne, kusjuures privaatne tähendab, et arhiivi saavad näha vaid listi kasutajad ja nad peavad enda veebiliideses autentima, soovitav valida private
 
 
 
Nö ühe domeeni listide nimekirja esitamiseks tuleb öelda
 
 
 
  # list_lists -V lists.raudteejaam.tartu.ee
 
 
 
====Mailmani logi====
 
 
 
Mailmani protsessid logivad oma tegevusi sellistesse failidesse
 
 
 
  /var/log/mailman# ls -l
 
  total 72
 
  -rw-rw-r-- 1 list    list    83 Feb 12 12:04 bounce
 
  -rw-rw-r-- 1 root    list 16860 Feb 12 17:35 error
 
  -rw-rw-r-- 1 list    list  1972 Feb 12 18:06 post
 
  -rw-rw-r-- 1 list    list  729 Feb 12 06:25 qrunner
 
  -rw-rw-r-- 1 list    list  2549 Feb 12 18:17 smtp
 
  -rw-rw-r-- 1 www-data list  753 Feb 12 01:43 subscribe
 
  -rw-rw-r-- 1 list    list  1140 Feb 12 18:17 vette
 
 
 
Listserveri MTA + listimootori läbimisel tekivad kirjast Postfixi logisse sellised sissekanded
 
 
 
  Feb 10 23:05:58 smtp2a postfix/smtpd[28944]: connect from moraal.auul[192.168.2.38]
 
  Feb 10 23:05:58 smtp2a postfix/smtpd[28944]: E57443E4EC: client=moraal.auul[192.168.2.38]
 
  Feb 10 23:05:59 smtp2a postfix/cleanup[28947]: E57443E4EC: message-id=<alpine.DEB.1.10.0902102305480.2613@moraal.auul>
 
  Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E57443E4EC: from=<mart@loomaaed.tartu.ee>, size=523, nrcpt=1 (queue active)
 
  Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: disconnect from moraal.auul[192.168.2.38]
 
  Feb 10 23:05:59 smtp2a postfix/pipe[28998]: E57443E4EC: to=<test@lists.loomaaed.tartu.ee>, relay=mailman, delay=0.3, delays=0.1/0/0/0.2, \
 
    dsn=2.0.0, status=sent (delivered via mailman service)
 
  Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E57443E4EC: removed
 
  Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: connect from localhost.localdomain[127.0.0.1]
 
  Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: E2F1E3E4EC: client=localhost.localdomain[127.0.0.1]
 
  Feb 10 23:05:59 smtp2a postfix/cleanup[28947]: E2F1E3E4EC: message-id=<alpine.DEB.1.10.0902102305480.2613@moraal.auul>
 
  Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E2F1E3E4EC: from=<test-bounces@lists.loomaaed.tartu.ee>, size=1445, nrcpt=1 (queue active)
 
  Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: disconnect from localhost.localdomain[127.0.0.1]
 
   Feb 10 23:06:00 smtp2a postfix/smtp[28995]: E2F1E3E4EC: to=<priit@loomaaed.ee>, relay=mail.loomaaed.tartu.ee[192.168.96.138]:25, \
 
     delay=0.11, delays=0.01/0/0.04/0.06, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 906E42CB28)
 
  Feb 10 23:06:00 smtp2a postfix/qmgr[25982]: E2F1E3E4EC: removed
 
 
 
Logist on ilusti näha süsteemi modulaarsus
 
 
 
* esmalt võetakse kiri vastu smtpd poolt
 
* seejärel antakse kiri edasi pipe abil mailmanile
 
* mailman pöördud smtpd poole ja kiri saadetakse süsteemist välja
 
 
 
====Mailmanile peale paigaldamist uue keele toe lisamine====
 
 
 
Kuigi veebipõhise kasutajaliidese abil on võimalik valida terve hulga keelte seast, millises keeles Mailman kasutajaga suhtleb, toimib ta täieliselt, st nii veebiliides kui automaatselt kasutajatele saadetavad kirjad ainult neis keeltes, mis asuvad /etc/mailman kataloogis. Nt eesti keele puhul peab seal olema kataloog
 
 
 
  /etc/mailman/et
 
 
 
Nende kataloogide tekitamiseks tuleb öelda soovitavalt töötava Mailmani tingimustes
 
 
 
  # dpkg-reconfigure mailman
 
 
 
Seejärel esitatakse kasutajale diagloog
 
 
 
  For each supported language, Mailman stores default language specific texts in /etc/mailman/LANG/ giving
 
  them conffile like treatment with the help of ucf. This means approximately 150kB for each supported
 
  language on the root file system. If you need a different set of languages at a later time, just run
 
  dpkg-reconfigure mailman.                                        |
 
 
 
  NOTE: Languages enabled on existing mailing lists are forcibly re-enabled when deselected and mailman needs
 
  at least one language for displaying its messages.
 
 
 
  Languages to support:
 
  ...
 
 
 
dpkg-reconfigure käivitab automaatselt Mailmani protsessid.
 
 
 
====Mailmani uuendamine 2.1.5 -> 2.1.11====
 
 
 
Kuigi antud juhul on tegu konkreetse versiooniuuenduse kirjeldusega võib saada siit ideid ka muudeks juhtumiteks. Abiks materjal konkreetseks juhtumiks on www.list.org pealt kopeeritud tar.gz arhiivis UPGRADE failis.
 
 
 
Sammud
 
 
 
* Vana ja uus listimootor käivad erinevates arvutites ja mõlema töö lõpetada.
 
* Kopeerida arhiivid kataloogist /var/lib/mailman/archives ümber uude kohta.
 
* Kopeerida listide seadistused kataloogist /var/lib/mailman/lists/listinimi uude kohta.
 
* Kopeerida ajutiselt peatatud failid /var/lib/mailman/data/heldmsg-* ümber uude kohta.
 
* Käivitada uues kohas listimootor ja veenduda veebipõhises haldusliideses, et seadistused on tulnud ilusti üle, uurida logi.
 
 
 
===SPF - Sender Policy Framework===
 
 
 
SPF (Sender Policy Framework - ingl. k. epost saatja kontrollimise raamistik) http://www.openspf.org/Project_Overview võimaldab saavutada sellised eesmärke
 
 
 
* kaitsta eposti vastuvõtjat ümbriku from aadressi võltsijate eest (eeldusel, et võltsitava domeeninime omanikud oma oma domeenidele kirjeldanud spf või sfp sisuga txt kirjed)
 
* kaitsta domeeninime omanikku ümbriku from aadressi võltsijate tegevuse eest, tulemusena ei saa võltsijad saata kontrollimatult adressaatidele võltsitud eposti
 
 
 
====SPF tööpõhimõtte kirjeldus====
 
 
 
  # apt-get instal spfqtool
 
 
 
====Eposti vastuvõtja ettevalmistamine====
 
 
 
Postfix sisaldab 'Postfix SMTP access policy delegation' http://www.postfix.org/SMTPD_POLICY_README.html süsteemi, mille abil saab ühendada MTA välise lahendusega, antud juhul SPF'iga, selleks, et teostada täiendavat kontrolli, milliste omadustega kirju saab läbi kõnealuse postisüsteemi saata.
 
 
 
Üheks SPF kasutamise võimaluseks on sama MTA sees pidada Postfixi master deemoni poolt käivitatavat Perli skripti, mida jagatakse postfix-policyd-spf-perl paketina, paigaldamiseks tuleb öelda
 
 
 
  # apt-get install postfix-policyd-spf-perl
 
 
 
====Nimesüsteemi ettevalmistamine====
 
 
 
TODO
 
 
 
===Kahetasemeliste Postfixi lahenduse kasutamine===
 
 
 
Turvalisuse, jõudluse või lihtsalt süsteemi modulaarsuse asjaoludest lähtudes seadistakse vahel Postfix süsteemi käima mitmetasemeliselt, nö kahel perimeetril, kusuures kõige ees võib veel pidada greylistingut
 
 
 
* relee - internetist smtp ühenduste vastuvõtmine, viirustõrje ning spämmianalüüs
 
* delivery - kirjade postkastidesse jagamine ja aliaste alusel edasisaatmine, listimootorid
 
 
 
              internet
 
 
 
                  |
 
                __|__ 
 
              |    |
 
              | TM  | spamd (greylisting)
 
              |_____|
 
                  |
 
                  |
 
              ----|--------|-----------------------------------|------
 
                          |                                  |
 
                        __|__                              __|__
 
                        |    |                            |    |
 
                        |_____|                            |_____|
 
 
 
                      RELEE-MTA1                          DELIVERY-MTA2
 
                        clamav                              listid
 
                kasperski antispam (või mingi vaba)        @loomaaed.tartu.ee postkastid
 
                  2nd mx, relee klientidele                relee kohalikele infosüsteemidele
 
  
====Relee seadistamine====
+
Seda rida tuleks lugeda selliselt
  
Relee arvuti võtab kirjad internetist vastu, aga ei teosta nendega local deliverit, vaid peale viiruse ja spämmi kontrolle saadab edasi delivery arvutile.
+
* 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)
  
main.cf failis tuleb kasutada direktiive
+
Piirangute esitamisel on järjekord oluline, sõltub asjaoludest, aga üldiselt on otstarbekas kallimad kontrollid paigutada lõpupoole.
  
relay_domains = loomaaed.tartu.ee
+
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
transport_maps = hash:/etc/postfix/transport
 
  
ja transport map moodustamiseks öelda
+
  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)
  
  # postmap /etc/postfix/transport
+
Kui aga Spamhausi poolt kiri peatatakse, siis on Postfixi logis kirjas midagi sellist
  
====Delivery seadistamine====
+
  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>
  
Delivery arvuti võtab kirju vastu ainult relee arvutilt ning teostab local delivery või saadab kirjad edasi vastavalt aliaste lahendumisele.
+
Nö käsitsi saab ip aadressi Spamhausi kuulumist kontrollida küsides, kuulumisel vastatakse nii
  
main.cf failis sisaldub mydestination real domeeninimi
+
  $ dig +short 125.175.168.192.zen.spamhaus.org
 +
  127.0.0.4
  
  mydestination = localhost, loomaaed.tartu.ee
+
ja mitte-kuulumisel
  
===Märkused===
+
$ dig +short 125.175.168.192.zen.spamhaus.org
 +
$
  
* abiks pisike programm mail, paketist mailx (mis tegelikult paigaldab sõltuvusena paketi bsd-mailx)
+
Või brauseriga küsides aadressilt http://www.spamhaus.org/query/bl?ip=192.168.175.125
  
 
===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 09: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'

Postfix-1.gif

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

Postfix-2.gif

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