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

Allikas: Kuutõrvaja
(Kahetasemeliste Postfixi lahenduse kasutamine)
(Andmevahetuse krüptimine)
223. rida: 223. rida:
  
 
   $ openssl s_client -starttls smtp -showcerts -connect 192.168.1.251:25
 
   $ openssl s_client -starttls smtp -showcerts -connect 192.168.1.251:25
 +
 +
====Kasulikud lisamaterjalid====
 +
 +
* http://www.postfix.org/SASL_README.html
  
 
===Postisüsteemi testimine===
 
===Postisüsteemi testimine===

Redaktsioon: 9. juuli 2009, kell 19:00

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ärgiks on seadistada käima selliste omadustega postiedastusagent

  • 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

Postimasina ettevalmistamine

Vaada üle vastavalt vajadustele

  • ntp
  • lokaat

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'

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.3.8-2) ...
 Adding group `postfix' (GID 105) ...
 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'.
 
 Running newaliases
 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
  • /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

Süsteemist väljuva posti ümbriku muutmiseks tuleb kasutada mail.cf failis rida

 smtp_generic_maps = hash:/etc/postfix/generic

ning /etc/postfix/generic ise sisaldab näiteks selliseid ridu

 www-data@arvuti.sisedomeen   www-bounce@valisdomeen.ee
 root@arvuti.sisedomee       www-bounce@valisdomeen.ee

Muudatuste kehtestamiseks tuleb generic'ikile vastav andmebaas moodustada käsuga

 # postmap /etc/postfix/generic

ning laadida reload'iga Postfix.

Käskuga postconf estitatakse parasjagu kehtetatud Posfixi seadistused

 # postconf

ning lisades võtme -n esitatakse main.cf failis ilmutatult kasutatud parameetrite väärtused

 # postconf -n

Konkreetse parameetri väärtust saab küsida nii, nt

 # postconf mail_version
 mail_version = 2.5.5

Kasutamine

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";
 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.

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

 # postsuper -d C558C4DC80

Spämmi tõrjumine Postfixi sisemiste vahenditega

Näiteks sobib kasutada sellist parameetrit selliste väärtustega

 smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access,
  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

Kasulikud lisamaterjalid

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.


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.


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


Milter

TODO

Märkused

  • abiks pisike programm mail, paketist mailx (mis tegelikult paigaldab sõltuvusena paketi bsd-mailx)

Kasulikud lisamaterjalid