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

Allikas: Kuutõrvaja
P (Lehekülg "Postfix'i kasutamine" teisaldatud pealkirja "Postfix'i kasutamine Debianiga" alla)
(Tarkvara paigaldamine)
 
(ei näidata sama kasutaja 107 vahepealset redaktsiooni)
1. rida: 1. rida:
===Sissejuhatus===
+
===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
 +
 
 +
* 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]]
 +
 
 +
===Nimesüsteemi ettevalmistamine===
  
Postfix on postiedastusagent (ingl. k. mail transport agent, MTA). Postiedastusagendi ülesanne on võtta epost võrgust või lokaalselt vastu ja anda edasi
+
Õigesti seadistatud nimesüsteem on postisüsteemi kasutamise eelduseks.
  
* postijaotusagendile (ingl. k. mail delivery agent, MDA) kirjade kasutajate postkastidesse jaotamiseks
+
====MX ja A kirje====
* 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
+
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.
  
                    internet (teised MTA'd)
+
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:
                            v |
+
  looomaaed.tartu.ee.          300    IN      MX      20 mail.loomaaed.tartu.ee.
                            _____
+
 
   spämmi analüüs   <---->  |     | <---- lokaalne meilisaatja (nn /usr/sbin/sendmail STDIO)
+
   ;; AUTHORITY SECTION:
   viiruste analüüs <----> | MTA | <---- MTA klient, nt Icedove või Thunderbird
+
   looomaaed.tartu.ee.          300     IN      NS      ns1.loomaaed.tartu.ee.
                          |_____| ----> postijaotusagent nt Cyrus või lihtsamal juhul kopeeritakse kiri faili /var/mail/kasutajanimilinefail
+
   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
  
===Eesmärk===
+
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
  
Eesmärgiks on seadistada käima selliste omadustega postiedastusagent
+
====PTR kirje====
  
* võtab vastu domeenide loomaaed.tartu.ee ja www.loomaaed.tartu.ee posti
+
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
* saadab mart@loomaaed.tartu.ee aadressile saadetud kirja edasi aadressile
+
 
* salvestab priit@loomaaed.tartu.ee aadressile saadetud kirja faili /var/mail/mart
+
  $ dig -x 192.168.0.24
* võimaldab saata välja alamvõrkudest 192.168.0.0/24 ja 172.16.0.0/24 posti
+
 
 +
  ;; 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===
 
===Postimasina ettevalmistamine===
  
Vaada üle vastavalt vajadustele
+
Postimasinas tuleks esmalt kontrollida, kas arvuti nimi on korrektselt seadistatud. Antud juhul peaks olema failis /etc/hostname kirjas
  
* ntp
+
  # 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
 
* lokaat
 +
* syslog
  
 
===Tarkvara paigaldamine===
 
===Tarkvara paigaldamine===
  
Postfix tarkvara saab paigaldada Debiani paketihaldusest öeldes
+
Postfix tarkvara v. 2.5.5 saab paigaldada Debian Lenny paketihaldusest öeldes
  
 
   bash# apt-get install postfix postfix-doc
 
   bash# apt-get install postfix postfix-doc
51. rida: 134. rida:
 
Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.
 
Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.
  
   Setting up postfix (2.3.8-2) ...
+
   Setting up postfix (2.5.5-1.1) ...
   Adding group `postfix' (GID 105) ...
+
   Adding group `postfix' (GID 107) ...
 
   Done.
 
   Done.
   Adding system user `postfix' (UID 104) ...
+
   Adding system user `postfix' (UID 105) ...
   Adding new user `postfix' (UID 104) with group `postfix' ...
+
   Adding new user `postfix' (UID 105) with group `postfix' ...
 
   Not creating home directory `/var/spool/postfix'.
 
   Not creating home directory `/var/spool/postfix'.
 
   Creating /etc/postfix/dynamicmaps.cf
 
   Creating /etc/postfix/dynamicmaps.cf
 
   Adding tcp map entry to /etc/postfix/dynamicmaps.cf
 
   Adding tcp map entry to /etc/postfix/dynamicmaps.cf
   Adding group `postdrop' (GID 106) ...
+
   Adding group `postdrop' (GID 108) ...
 
   Done.
 
   Done.
   setting myhostname: ria-pg1a.test.kit
+
   setting myhostname: mail.loomaaed.tartu.ee
 
   setting alias maps
 
   setting alias maps
 
   setting alias database
 
   setting alias database
   changing /etc/mailname
+
   changing /etc/mailname to loomaaed.tartu.ee
 
   setting myorigin
 
   setting myorigin
   setting destinations: loomaaed.tartu.ee, ria-pg1a.test.kit, localhost.test.kit, localhost
+
   setting destinations: loomaaed.tartu.ee, mail.loomaaed.tartu.ee, localhost.loomaaed.tartu.ee, localhost
 
   setting relayhost:  
 
   setting relayhost:  
   setting mynetworks: 127.0.0.0/8
+
   setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  setting mailbox_command
 
 
   setting mailbox_size_limit: 0
 
   setting mailbox_size_limit: 0
 
   setting recipient_delimiter: +
 
   setting recipient_delimiter: +
 
   setting inet_interfaces: all
 
   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  
 
   Postfix is now set up with a default configuration.  If you need to make  
   changes, edit
+
   changes, edit /etc/postfix/main.cf (and others) as needed.  To view Postfix configuration
  /etc/postfix/main.cf (and others) as needed.  To view Postfix configuration
 
 
   values, see postconf(1).
 
   values, see postconf(1).
 
    
 
    
84. rida: 167. rida:
 
   Stopping Postfix Mail Transport Agent: postfix.
 
   Stopping Postfix Mail Transport Agent: postfix.
 
   Starting 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
 
Postfixiga on seotud failisüsteemis sellised kataloogid ning failid
  
* /etc/postfix - Postfixi seadistusfailid
+
* /etc/postfix - Postfixi seadistusfailid, kõige olulisemad on main.cf ja master.cf
* /etc/mailname
+
* /etc/mailname - sisuga 'loomaaed.tartu.ee'
 
* /var/spool/postfix - saba (ingl. k. queue)
 
* /var/spool/postfix - saba (ingl. k. queue)
* /var/log/mail.log - logi
+
* /var/log/mail.* - logi
 
* /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb
 
* /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb
 +
* man 5 postconf - manuaal
 +
* /etc/aliases - nn aliases andmebaas
  
===Seadistamine===
+
Tarkvara paigaldamisel esitatud dialoogi saab edaspidi esile kutsuda öeldes
  
Süsteemist väljuva posti ümbriku muutmiseks tuleb kasutada mail.cf failis rida
+
# dpkg-reconfigure postfix
  
  smtp_generic_maps = hash:/etc/postfix/generic
+
===Postfixi seadistamine võtma vastu loomaaed.tartu.ee domeeni kirju===
  
ning /etc/postfix/generic ise sisaldab näiteks selliseid ridu
+
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
  
   www-data@arvuti.sisedomeen   www-bounce@valisdomeen.ee
+
   # postconf -n
   root@arvuti.sisedomee      www-bounce@valisdomeen.ee
+
  alias_database = hash:/etc/aliases
 
+
  alias_maps = hash:/etc/aliases
Muudatuste kehtestamiseks tuleb generic'ikile vastav andmebaas moodustada käsuga
+
  append_dot_mydomain = no
 
+
  biff = no
   # postmap /etc/postfix/generic
+
  config_directory = /etc/postfix
 
+
  html_directory = /usr/share/doc/postfix/html
ning laadida reload'iga Postfix.
+
  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äskuga postconf estitatakse parasjagu kehtetatud Posfixi seadistused
+
Kõigi kehtestatud seadistusparameetrite nimekirja koos väärtustega näeb öeldes
  
 
   # postconf
 
   # postconf
  
ning lisades võtme -n esitatakse main.cf failis ilmutatult kasutatud parameetrite väärtused
+
ning vaikeväärtustega nimekirja öeldes
 
 
  # postconf -n
 
  
Konkreetse parameetri väärtust saab küsida nii, nt
+
  # postfix -d
  
  # postconf mail_version
+
Tarkvara paigaldamise käigus moodustatud seadistused täidavad püstitatud eesmärgi kirjade vastuvõtmise osas
  mail_version = 2.5.5
 
  
===Kasutamine===
+
* 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
  
Aliase olemasolu kontrollimiseks sobib öelda
+
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.
  
  # postmap -q mart@loomaaed.tartu.ee pgsql:/etc/postfix/pgsql-local.cf
+
====Kirja vastuvõtmine====
  
Kirjade sabast ära saatmiseks
+
Kui internetis saata kiri aadressile mart@loomaaed.tartu.ee, siis ilmub Postfixi logisse
  
   # postqueue -f
+
   # 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
  
===Kirjade töötlemine välise programmiga===
+
kus
 
 
Ü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
+
# - internetist aadressilt 192.168.1.150 võetakse ühendust
 +
# - ...
 +
# - eposti kirja identifikaator (message-id) on 20090711125121.7AC116E512@bmail.com
 +
# - kiri on aadressilt priit@bmail.com
 +
# - tcp/ip ühendus arvutiga 192.168.1.150 lõpetatakse
 +
# - sooritatakse nn local delivery, st kiri salvetataks faili /var/mail/mart
  
* /etc/postfix/master.cf failis peab sisaldub sektsioon
+
Järgmised kirjad lisanduvad faili /var/mail/mart.
  
  pf    unix  -      n      n      -      -      pipe 
+
====Vastuvõetud kirja lugemine====
  flags=RDX user=programmikasutaja argv=/bin/pf.pl ${user} ${domain}
 
  
ning kui /bin/pf.pl sisaldab nt
+
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
  
  #!/usr/bin/perl
+
* 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
  open (fh, ">>/tmp/pf.log");
+
* 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
 
 
  print fh "$ARGV[0]\n";
 
  print fh "$ARGV[1]\n\n\n";
 
 
 
  @read=<STDIN>;
 
 
 
  foreach $rida (@read) {
 
    print fh $rida;
 
  }
 
  
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.
+
Alpine paigaldamiseks peab süsteemiadministraator ütlema
  
===Logi ja debugimine===
+
  # apt-get install alpine
  
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.
+
===Postfixi seadistamine saatma välja alamvõrgu 192.168.0.0/24 kirju===
  
  # mailq
+
Kirjade väljasaatmiseks tuleb muuta failis /etc/postfix/main.cf parameetri mynetworks väärtust lisades sinna kasutatava subneti aadressi, tulemusena on vastav rida selline
  ....
 
  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
+
  mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
  
  # postsuper -d C558C4DC80
+
Peale seadistusfaili muutmist tuleb öelda
  
===Spämmi tõrjumine Postfixi sisemiste vahenditega===
+
  # /etc/init.d/postfix reload
  
Näiteks sobib kasutada sellist parameetrit selliste väärtustega
+
====Kirja väljasaatmine====
  
  smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access,
+
Kirja väljasaatmiseks tuleb kasutaja postiprogrammis, nt Icedove seadistada väljuva eposti arvuti aadressiks 192.168.0.25
  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===
+
[[Pilt:Postfix-2.gif]]
  
Selleks, et server võimaldaks krüptida smtp klientide sissetulevaid ühendusi peavad olema seadistusfailis main.cf read
+
Kirja väljasaatmisel tekib logisse
  
   smtpd_tls_key_file = /etc/postfix/serdid/smtp.loomaaed.tartu.ee.pem
+
   1 Jul 11 19:33:09 mail postfix/smtpd[6278]: connect from moraal[192.168.0.10]
   smtpd_tls_cert_file = /etc/postfix/serdid/smtp.loomaaed.tartu.ee.crt
+
  2 Jul 11 19:33:10 mail postfix/smtpd[6278]: 5590C6E50A: client=moraal[192.168.0.10]
   smtpd_tls_CAfile = /etc/postfix/serdid/loomaaed-ca.crt
+
  3 Jul 11 19:33:10 mail postfix/cleanup[6282]: 5590C6E50A: message-id=<4A58BEC5.20506@loomaaed.tartu.ee>
  smtpd_use_tls=yes
+
   4 Jul 11 19:33:10 mail postfix/qmgr[6274]: 5590C6E50A: from=<mart@loomaaed.tartu.ee>, size=484, nrcpt=1 (queue active)
   smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
+
  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
 
kus
  
* smtpd_tls_key_file näitab, millises failis asub sertifikaadile vastav salajane võti
+
# postimasina poole pöördub kasutaja oma töökohaarvutist nt Icedove programmiga
* smtpd_tls_cert_file näitab, millises failis asub sertifikaat
+
# ...
* smtpd_tls_CAfile näitab, millises failis asuvad sertifikaadi allkirjastanud ahela ülemised sertifikaadid
+
# ...
 
+
# kiri on from aadressiga mart@loomaaed.tartu.ee
Selleks, et teha kindlaks, kas postiserver toetab SMTP STARTSSL laiendust sobib öelda
+
# 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
  $ 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===
 
 
 
Amavis http://www.ijs.si/software/amavisd/ tarkvara võimaldab postisüsteemi, nt Postfix, ühendada väliste teenustega ja nende väliste teenuste kasutamist juhtida. Hästi levinud on kasutada Amavisi juhtimisel sellist analüüsi teostavat tarkvara
 
 
 
* ClamAV - viiruste analüüsi tarkvara
 
* Spamassassin - spami analüüsi tarkvara
 
 
 
Amavis tarkvara kasutamist kirjeldab aadressil http://kuutorvaja.eenet.ee/wiki/Amavis_kasutamine_Debian_Lenniga asuv tekst.
 
 
 
===Cyrus===
 
 
 
Postkastihalduse tarkvara Cyrus sisaldab muu hulgas selliseid komponente
 
 
 
* haldusvahendid (cyradm programm)
 
* imap server
 
* pop3 server
 
* testkliendid (IMAP serveri testklientprogramm imtest)
 
 
 
Cyrus tarkvaraga saab pealnäha sarnase tulemuse, so postkastide pidamise saavutada üsna mitmel erineval moel. Käesolev tekst kirjeldab järgmisete omadustega juhtumit
 
 
 
* kõik Cyruse protsessid töötavad ühes ja samas operatsioonisüsteemi eksemplaris
 
* Cyruse imap klientide andmed tulevad välisest PostgreSQL andmebaasist SASL ja omakorda PAM abil
 
* Postfix kasutab PostgreSQL andmebaasi, millest saab teada millistele aadressidele tuleb teha local delivery Cyruse abil
 
* Cyruse postkastidesse saabuvad kirjad Postfix MTA'st LMTP protokolli kasutamise teel
 
* Cyruse postkastidele on ligipääs IMAP ja POP3 serverite kaudu, krüptitud ja krüptimata andmevahetust võimaldades
 
 
 
Sellisel moel käivitatud Cyruse kasutuselevõtmiseks tuleb sooritada näiteks selline tegevuste järgnevus
 
 
 
* paigaldada vajalik hulk Cyrus'e komponent
 
* valmistada ette PostgreSQL andmebaas
 
* valmistada ette PAM komponent
 
* valmistada ette SASL komponent
 
* seadistada Cyrusele administratiivne kasutaja ning tekitada tavakasutajale postkast
 
* seadistada Cyrus käima koos Postfixiga
 
 
 
====Cyrus tarkvara paigaldamine====
 
 
 
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"
 
  TransferLog "/var/log/apache2/sympa.avalik.kit-access.log"
 
 
 
  <Directory "/home/sympa/www">
 
    Options None
 
    AllowOverride All
 
    Order Deny,Allow
 
    Allow from All
 
  </Directory>
 
 
 
  Alias /static-sympa /usr/local/sympa/static_content
 
  ScriptAlias /sympa /usr/local/sympa/bin/wwsympa.fcgi
 
 
 
  </VirtualHost>
 
 
 
Sympa seadistamine toimub peamiselt faili /etc/sympa.conf abil, olulised on järgmised määrangud
 
 
 
  domain  loomaaed.tartu.ee
 
  listmaster      mart@loomaaed.tartu.ee
 
  lang    en_US
 
  supported_lang  en_US,et_EE
 
  db_type Pg
 
  db_name sympa
 
  db_host 10.0.6.221
 
  db_port 5432
 
  db_user postgres
 
  db_passwd sympa
 
 
 
====Sympa käivitamine====
 
 
 
Sympa käivitamine toimub paigaldamise käigus paigaldatud käivitusskriptiga /etc/rc.d/init.d/sympa (mis ehk ilus kopeerida /etc/init.d/sympa'ks). Lisaks peab töötama Apache veebiserver.
 
 
 
Abiks  on jälgida Sympa logi, vaikimini /var/log/syslog. Nt Sympa logib läbi veebiliidese antud korraldusi
 
 
 
  Dec 21 13:38:58 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test]
 
  Dec 21 13:39:12 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test] main::do_admin() do_admin
 
 
 
Mõne seadistusparameetri kehtestumiseks tuleb Sympale ja Apache'le stop ja start öelda.
 
 
 
===Mailman===
 
 
 
Mailman (ingl. k. postiljon) http://www.list.org/ on postiloendite (ingl. k. list) pidamise tarkvara.
 
 
 
Järgnevas kirjaldame kuidas saavutada sellist eesmärki
 
 
 
* ühe Mailman eksempari abil peetakse kolme domeeniga seotud postiloendeid, @lists.loomaaed.tartu.ee, @lists.vagunitehas.tartu.ee, @lists.raudteejaam.tartu.ee
 
* MTA'na kasutatakse Postfixi kusjuures mainitud domeene kasutatakse ainult eposti jaoks
 
* postiloendite haldusliidesed sh arhiivid on ligipääsetavad aadressidelt https://lists.loomaaed.tartu.ee/listinfo, /admin jn
 
 
 
====Mailman tarkvara paigaldamine====
 
  
Tarkvara paigaldamiseks tuleb öelda
+
===Postimasina kasutamine tulemüüri taga NAT võrgus===
  
  # apt-get install mailman
+
Kui postimasin asub aadress-teisendavad tulemüüri taga, siis tuleb Postfixi seadistusfaili /etc/postfix/mail.cf lisada rida
  
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)
+
  proxy_interfaces = 192.168.96.138
  
  For each supported language, Mailman stores default language specific texts in /etc/mailman/LANG/ giving
+
kus ip aadress on tulemüüri avalik aadress, mida internetist kasutatakse selle postimasina poole pöördumiseks.
  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.
+
===Spämmi tõrjumine DNSBL nimekirja abil===
  
Seejärel teatab installer, et
+
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.
  
  Missing site list
+
DNSBL teenusepakkujaid on internetis palju, sobiva valimisel tuleks arvestada selliseid asjaolusid
 
  Mailman needs a so-called "site list", which is the list from which password reminders and such
 
  are sent out from.  This list needs to be created before mailman will start. To create the list, run
 
  "newlist mailman" and follow the instructions on-screen. Note that you also need to start mailman after
 
  that, using /etc/init.d/mailman start.
 
  
====Mailmani seadistamine====
+
* 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
  
Mailmani listihalduse tarkvara esineb arvutis töötava deemoni kujul ning oluliseks seadistusfailiks on /etc/mailman/mm_cfg.py. Selles tuleks teha sellised muudatused
+
Populaarsed teatud tingimustel tasuta DNSBL teenuse pakkujad on
  
  MAILMAN_SITE_LIST = 'mailman'
+
* Spamhaus - http://www.spamhaus.org/ ja http://en.wikipedia.org/wiki/The_Spamhaus_Project
  DEFAULT_URL_PATTERN = 'https://%s/'
+
* Spamcop - http://www.spamcop.net/ ja http://en.wikipedia.org/wiki/SpamCop
  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
+
Spamhaus esitab oma aadresse kolmes erinevas nimekirjas ja kombineeritud nimekirjadena
 
 
  # newlist mailman mart@loomaaed.tartu.ee parool
 
 
 
Seejärel saab listserveri deemoni käivitada
 
 
 
  # /etc/init.d/mailman start
 
 
 
====Apache veebiserveri seadistamine====
 
 
 
Ülidselt tuleb veebiserver seadistada käima aadressidel
 
 
 
* https://lists.loomaaed.tartu.ee/
 
* https://lists.vagunitehas.tartu.ee/
 
* https://lists.raudteejaam.tartu.ee/
 
 
 
tavalisel moel. Mailmanile spetsiifilise osa kohta on toodud näide failis
 
 
 
  /etc/mailman/apache.conf
 
 
 
Kokkuvõttes võiks olla lists.loomaaed.tartu.ee virtuaalhosti seadistusfail nt sellise sisuga
 
 
 
  <VirtualHost 10.0.6.221:443>
 
    ServerName  lists.loomaaed.tartu.ee
 
    ServerAdmin mart@loomaaed.tartu.ee
 
    DocumentRoot /srv/www
 
    ErrorLog    /var/log/apache2/lists.loomaaed.tartu.ee-ssl-error.log
 
    TransferLog  /var/log/apache2/lists.loomaaed.tartu.ee-ssl-access.log
 
 
 
    SSLEngine on
 
    SSLCertificateFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.crt
 
    SSLCertificateKeyFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.key
 
    SSLCACertificateFile /etc/apache2/serdid/ca-sk.crt
 
   
 
    <Directory /srv/www>
 
      Options All
 
      AllowOverRide None
 
      Order Allow,Deny
 
      Allow from All
 
    </Directory>
 
   
 
    RewriteEngine On
 
    RewriteRule ^/$ https://lists.loomaaed.tartu.ee/listinfo [R]
 
 
 
    Alias /pipermail/ /var/lib/mailman/archives/public/
 
    Alias /images/mailman/ /usr/share/images/mailman/
 
    ScriptAlias / /usr/lib/cgi-bin/mailman/
 
 
 
    <Directory /usr/lib/cgi-bin/mailman/>
 
      AllowOverride None
 
      Options ExecCGI
 
      AddHandler cgi-script .cgi
 
      Order allow,deny
 
      Allow from all
 
    </Directory>
 
 
 
    <Directory /var/lib/mailman/archives/public/>
 
      Options Indexes FollowSymlinks
 
      AllowOverride None
 
      Order allow,deny
 
      Allow from all
 
    </Directory>
 
 
 
    <Directory /usr/share/images/mailman/>
 
      AllowOverride None
 
      Order allow,deny
 
      Allow from all
 
    </Directory>
 
 
 
  </VirtualHost>
 
 
 
Kontrolliks sobib proovida logida sisse veebipõhisesse haldusliidesesse kasutades mailman listi parooli, kasutajanime ei pea sisestama.
 
 
 
[[Pilt:Mailman-1.gif]]
 
 
 
====Postfixi seadistamine====
 
 
 
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.
 
 
 
Sellisel juhul tuleb
 
 
 
* kasutada /etc/postfix/main.cf failis
 
 
 
  relay_domains = ... lists.loomaaed.tartu.ee, lists.vagunitehas.tartu.ee, lists.raudteejaam.tartu.ee
 
  transport_maps = hash:/etc/postfix/transport
 
  mailman_destination_recipient_limit = 1
 
 
 
* kasutada /etc/postfix/master.cf failis
 
 
 
  mailman unix  -      n      n      -      -      pipe
 
  flags=FR user=list
 
  argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${mailbox}
 
 
 
* kasutada /etc/postfix/transport failis
 
 
 
  lists.loomaaed.tartu.ee    mailman:
 
  lists.vagunitehas.tartu.ee  mailman:
 
  lists.raudteejaam.tartu.ee  mailman:
 
 
 
* kasutada /etc/mailman/mm_cfg.py failis
 
 
 
  MTA = None # No MTA alias processing required
 
  DEB_LISTMASTER = 'postmaster@loomaaed.tartu.ee'
 
 
 
ning lisaks olemasolevatele ridadele
 
 
 
  # Default domain for email addresses of newly created MLs
 
  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
 
 
 
  add_virtualhost('lists.vagunitehas.tartu.ee','lists.vagunitehas.tartu.ee')
 
  add_virtualhost('lists.raudteejaam.tartu.ee','lists.raudteejaam.tartu.ee')
 
 
 
====Mailmani haldamine====
 
 
 
* Listimootori adminstraatori parooli muutmiseks tuleb öelda
 
 
 
  # mmsitepass uusparool
 
 
 
Olulised failid asuvad kataloogis /var/lib/mailman
 
 
 
  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====
+
* 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
  
Relee arvuti võtab kirjad internetist vastu, aga ei teosta nendega local deliverit, vaid peale viiruse ja spämmi kontrolle saadab edasi delivery arvutile.
+
Kombineeritud nimekirjad on sellised
  
main.cf failis tuleb kasutada direktiive
+
* sbl-xbl.spamhaus.org - SBL+XBL
 +
* zen.spamhaus.org - SBL+XBL+PBL
  
  relay_domains = loomaaed.tartu.ee
+
Spamhaus teenus on nö kodukasutajatele tasuta kasutada teatud tingimustel, kasutamistingimusi saab vaadata üksikasjalikult aadressilt http://www.spamhaus.org/
  transport_maps = hash:/etc/postfix/transport
 
  
ja transport map failis rida
+
Postfixi seadistamiseks kontrollima SMTP kliendi ip aadressi zen.spamhaus.org nimekirjast peab seadistusfailis /etc/postfix/main.cf olema nt rida
  
   loomaaed.tartu.ee :[localdelivery.loomaaed.tartu.ee]
+
   smtpd_recipients_restrictions = permit_mynetworks, reject_unauth_destination,
 +
    reject_rbl_client zen.spamhaus.org
  
map'i moodustamiseks öelda
+
Seda rida tuleks lugeda selliselt
  
  # postmap /etc/postfix/transport
+
* 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)
  
tulemusena tekib faili
+
Piirangute esitamisel on järjekord oluline, sõltub asjaoludest, aga üldiselt on otstarbekas kallimad kontrollid paigutada lõpupoole.
  
  # file /etc/postfix/transport.db
+
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
  /etc/postfix/transport.db: Berkeley DB (Hash, version 9, native byte-order)
 
  
====Delivery seadistamine====
+
  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)
  
Delivery arvuti võtab kirju vastu ainult relee arvutilt ning teostab local delivery või saadab kirjad edasi vastavalt aliaste lahendumisele.
+
Kui aga Spamhausi poolt kiri peatatakse, siis on Postfixi logis kirjas midagi sellist
  
main.cf failis sisaldub mydestination real domeeninimi
+
  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>
  
  mydestination = localhost, loomaaed.tartu.ee
+
Nö käsitsi saab ip aadressi Spamhausi kuulumist kontrollida küsides, kuulumisel vastatakse nii
  
===Milter===
+
  $ dig +short 125.175.168.192.zen.spamhaus.org
 +
  127.0.0.4
  
TODO
+
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