Erinevus lehekülje "Postfix'i kasutamine Debianiga" redaktsioonide vahel
(→Spämmi tõrjumine RBL nimekirjade abil) |
(→Spämmi tõrjumine RBL nimekirjade abil) |
||
308. rida: | 308. rida: | ||
Kui aga Spamhausi poolt kiri peatatakse, siis on Postfixi logis kirjas midagi sellist | Kui aga Spamhausi poolt kiri peatatakse, siis on Postfixi logis kirjas midagi sellist | ||
− | Jul 11 21:48:47 | + | 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; \ | 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; \ | http://www.spamhaus.org /query/bl?ip=192.168.175.125; \ |
Redaktsioon: 11. juuli 2009, kell 20:59
Sisukord
- 1 Eesmärk
- 2 Nimesüsteemi ettevalmistamine
- 3 Postimasina ettevalmistamine
- 4 Tarkvara paigaldamine
- 5 Postfixi seadistamine võtma vastu loomaaed.tartu.ee domeeni kirju
- 6 Postfixi seadistamine saatma välja alamvõrgu 192.168.0.0/24 kirju
- 7 Postimasina kasutamine tulemüüri taga NAT võrgus
- 8 Spämmi tõrjumine RBL nimekirjade abil
- 9 Piirangute rakendamine töödeldavale epostile
- 10 Seadistamine
- 11 Kasutamine
- 12 Kirjade töötlemine välise programmiga
- 13 Logi ja debugimine
- 14 Postisüsteemi testimine
- 15 Amavis
- 16 IMAP kliendid
- 17 SPF - Sender Policy Framework
- 18 Milter
- 19 Märkused
- 20 Kasulikud lisamaterjalid
Eesmärk
Eesmärgiks on seadistada käima selliste omadustega postiedastusagent Postfix
- võtab internetist vastu domeeni loomaaed.tartu.ee kasutajate epostiaadressidele saadetud kirju aadressil 192.168.0.25
- salvestab vastuvõetud loomaaed.tartu.ee domeeni kirjad oma failisüsteemi, st teeb local delivery
- võimaldab saata kirju välja internetti teistele kasutajatele alamvõrgus 192.168.0.0/24 asuvatest arvutitest
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. Eraldi punktis ... käsitletakse juhtumit, kui postimasin kasutab privaatset aadressi ning asub aadress-teisendava tulemüüri taga.
Püsitatud eesmärk on suhteliselt tagasihoidlik, nö päris postimasinat pidades tuleks lisaks kindlasti töötada edasi
- viiruse ja spämmianalüüsi lisamisega
- kasutajate postkastide pidamise lahendusega
Nimesüsteemi ettevalmistamine
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 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 kirja 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 ns.nimeserver.ee. looomaaed.tartu.ee. 300 IN NS ns.loomaaed.tartu.ee. ;; ADDITIONAL SECTION: mail.loomaaed.tartu.ee. 300 IN A 192.168.96.138 ns.nimserver.ee. 8994 IN A 192.168.193.163 ns.mail.loomaaed.tartu.ee. 300 IN A 192.168.96.138
Kui kasutaja internetist püüab saata kirja aadressile mart@loomaaed.tartu.ee, siis toimub selline järgnevus
- kasutaja süsteemi programm küsib avalikust nimesüsteemist milline on loomaaed.tartu.ee postimasina nimi, saab teada, et mail.loomaaed.tartu.ee
- kasutaja süsteemi programm saab lisaks teada, et mail.loomaaed.tartu.ee postimasin asub aadressil 192.168.96.138
- kasutaja süsteemi programm võtab aadressile mart@loomaaed.tartu.ee kirja saamise asjus ühendust soketil 192.168.96.138:25 töötava postiprogrammiga
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
Tarkvara paigaldamine
Postfix tarkvara v. 2.5.5 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'
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
Postfixi seadistamine võtma vastu loomaaed.tartu.ee domeeni kirju
Postfix tarkvara paigaldamisel osaliselt juba tarkvara ka seadistati, kuid siiski maksab vaadata seadistused üksikasjaliselt üle.
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
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
- - 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
Järgmised kirjad lisanduvad faili /var/mail/mart.
Vastuvõetud kirja lugemine
Kõige otsekohesem, aga suhteliselt ebapraktiline on kasutajatel on kirju lugeda nii, et logida sisse kasutajana postimasinasse ja kasutada programmi alpine.
Alpine paigaldamiseks peab süsteemiadministraator ütlema
# apt-get install alpine
Postfixi seadistamine saatma välja alamvõrgu 192.168.0.0/24 kirju
Kirjade väljasaatmiseks tuleb muuta failis /etc/postfix/main.cf parameetri mynetworks väärtust lisades sinna kasutatava subneti aadressi, tulemusena on vastav rida selline
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
Peale seadistusfaili muutmist tuleb öelda
# /etc/init.d/postfix reload
Kirja väljasaatmine
Kirja väljasaatmiseks tuleb kasutaja postiprogrammis, nt Icedove seadistada väljuva eposti arvuti aadressiks 192.168.0.25
Kirja väljasaatmisel tekib logisse
1 Jul 11 19:33:09 mail postfix/smtpd[6278]: connect from moraal[192.168.0.10] 2 Jul 11 19:33:10 mail postfix/smtpd[6278]: 5590C6E50A: client=moraal[192.168.0.10] 3 Jul 11 19:33:10 mail postfix/cleanup[6282]: 5590C6E50A: message-id=<4A58BEC5.20506@loomaaed.tartu.ee> 4 Jul 11 19:33:10 mail postfix/qmgr[6274]: 5590C6E50A: from=<mart@loomaaed.tartu.ee>, size=484, nrcpt=1 (queue active) 5 Jul 11 19:33:10 mail postfix/smtpd[6278]: disconnect from moraal[192.168.10.10] 6 Jul 11 19:33:10 mail postfix/smtp[6283]: 5590C6E50A: to=<priit@bmail.com>, \ relay=mail.bmail.com[192.168.32.82]:25, delay=0.3, delays=0.15/0.01/0.03/0.11, dsn=2.0.0, status=sent \ (250 2.0.0 Ok: queued as 77B0E4A9D2) 7 Jul 11 19:33:10 mail postfix/qmgr[6274]: 5590C6E50A: removed
kus
- postimasina poole pöördub kasutaja oma töökohaarvutist nt Icedove programmiga
- ...
- ...
- kiri on from aadressiga mart@loomaaed.tartu.ee
- tcp/ip ühendus kasutaja töökohaarvutiga lõpetatakse
- kiri on saadetakse aadressile priit@bmail.com võttes ühendust postimasinaga aadressil 192.168.32.82 ja 'status=sent' tähendab, et kiri õnnestus välja saata
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 RBL nimekirjade abil
Spämmi saab tõrjuda Postfixi sisemiste vahenditega sellistel alustel
- sooritada lokaalselt kontrolle, nt kas pöörduv klient kasutab HELO real oma FQDN väärtust
- sooritada võrgust kontroll, nt kasutada Spamhaus DNS põhist blacklisti
Seadistame nt Postfixi kontrollima ainult võrgust Spamhaus serverist zen.spamhaus.org, kas pöörduva kliendi ip aadress on tuntud spämmisaatja vms
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
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>
Piirangute rakendamine töödeldavale epostile
Postfix võimaldab üksikasjaliselt kontrollida, millist eposti süsteem töötlema hakkab, st võtab vastu ning saadab edasi või edasisaatmise asemel teeb local delivery. Käesolevas punktis käsitletavad piirangud on nn before-queue piirangud, st need rakendatakse enne kirja sabasse (ingl. k. queue) võtmist.
Selleks, et paremini mõista Postfix poolt pakutavate piirangute seadistamise võimalusi, kordame üle milline järgnevust sooritatakse vastavalt SMTP protokollile kui postimasina poole pöördub SMTP klient; rea lõpus on märgitud millist Postfixi piirangute nimekirja on mingi andmevahetuse etapi juures võimalik rakendada.
smtp-client ---> smtp-klient.auul ühendub Postfix serveri 25/tcp pordile <--- smtpd_client_restrictions smtp-server ---> 220 smtp-server.auul ESMTP Postfix (Debian/GNU) smtp-klient ---> EHLO post-klient.auul <--- smtpd_helo_restrictions smtp-server ---> 250-smtp-server.auul 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN smtp-klient ---> MAIL FROM:<priit@loomaaed.tartu.ee> SIZE=325 <--- smtpd_sender_restrictions RCPT TO:<mart@bmail.com> ORCPT=rfc822;mart@bmail.com <--- smtpd_recipient_restrictions DATA smtp-server ---> 250 2.1.0 Ok 250 2.1.5.Ok 354 End data with <CR><LF>.<CR><LF> smtp-klient ---> saadab kirja osa ...
Piirangute nimekiri võib olla mõnel juhul tühi ja mõnel juhul peab kindlasti sisaldama vähemalt kindlaksmääratud piiranguid. Piirangute kontroll toimub selliselt
- piirangute nimekirjast rakendatakse esimene klappinud piirang, järgmisi selle nimekirja piiranguid ei kontrollita
- rakendatakse esimene tulemusega (REJECT, DEFER või PERMIT) lõppenud piirangute nimekiri
Kontrolli tulemus rakendatakse peale RCPT TO andmete saamist.
Nt võiks kasutada sellist piirangute nimekirja, selline on nimekiri vaikimisi Debiani Lenny puhul ja väljund on esitatud järjestatuna rakendamise järjekorras
# postconf | grep smtpd_ | egrep "(_client_|_helo_|_sender_|_recipient_)" | egrep "restrictions " smtpd_client_restrictions = smtpd_helo_restrictions = smtpd_sender_restrictions = smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
Siinjuures tuleb tähele panna asjaolu, et igas reeglite nimekirjas on lubatud kasutada ainult teatud kontrolle, kusjuures igas järgmises on lubatud kasutada eelmiste nimekirjade kontrolle. Antud juhul ongi smtpd_recipient_restrictions juures kasutatud permit_mynetworks'i, mis on iseenesest smtpd_client_restrictions nimekirja kontroll, vt http://www.postfix.org/postconf.5.html
Esitatud näites esimesena kehtestatav ning ainuke piirangute nimekiri on smtpd_recipients_restrictions ja mis sisaldab kahte kontrolli
- permit_mynetworks - lubada saata posti nendest alamvõrkudest, milles asub postimasin
- reject_unauth_destination - keeldutaks töötlemast posti mida ei ole postimasin seadistatud kas vahendama või millele tegema local deliverit
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
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
- Tarkvara kodulehekülg - http://cyrusimap.web.cmu.edu/
- IMAP protokolli kasutamise näited - http://bobpeers.com/technical/telnet_imap.php
- apt-get install cyrus-docs-2.2 ja seejärel vaadata brauseriga file:///usr/share/doc/cyrus-doc-2.2/html/index.html