Postfix'i kasutamine Debianiga
Sisukord
- 1 Sissejuhatus
- 2 Eesmärk
- 3 Tarkvara paigaldamine
- 4 Seadistamine
- 5 Kasutamine
- 6 Kirjade töötlemine välise programmiga
- 7 Logi ja debugimine
- 8 Spämmi tõrjumine Postfixi sisemiste vahenditega
- 9 Jõudlus
- 10 Amavis
- 11 Cyrus
- 11.1 Cyrus tarkvara paigaldamine
- 11.2 PostgreSQL andmebaasi ettevalmistamine
- 11.3 PAM komponendi ettevalmistamine
- 11.4 SASL komponendi ettevalmistamine
- 11.5 Cyruse administratiivne kasutaja ja kasutajate haldus
- 11.6 Kirjade automaatne jagamine postkastidesse
- 11.7 Cyruse seadistamine käima koos Postfixiga
- 11.8 Cyrus tarkvara uuendamine
- 12 IMAP kliendid
- 13 Sympa
- 14 Mailman
- 15 Kasulikud lisamaterjalid
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
Tarkvara paigaldamine
Postfix tarkvara saab paigaldada Debiani paketihaldusest öeldes
bash# apt-get install postfix
Tavaliselt siis eemaldatakse vaikimisi Debiani standard operatsioonisüsteemi kooseisus esinev Exim Postfixi vastu. Postfixi paigaldamisel tuleb valida 'General type of configuration', 'valime Internet Site'
- No configuration
- Internet Site
- Internet with smarthost
- Satellite system
- Local only
Seejärel küsitakse 'mail name' väärtust, see hakkab esinema läbi selle postisüsteemi välja saadetud kirjade eposti aadresside @ märgist paremal
loomaaed.tartu.ee
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.
Kasutamine
Aliase olemasolu kontrollimiseks sobib öelda
# postmap -q mart@loomaaed.tartu.ee pgsql:/etc/postfix/pgsql-local.cf
Kirjade töötlemine välise programmiga
Ühel või teisel põhjusel võib olla vaja sellist asjakorraldus, et kas postisüsteemi kõiki või vaid teatud tunnustele vastavaid kirju saaks töödelda välise programmiga. Ja selliselt, et väline programm saab andmeid oma stdio'sse ning järele mõned argumendid. Üheks võimaluseks seda korraldada on kostümiseeritud transporti kirjeldamise abil.
- /etc/postfix/main.cf faili tuleb lisada rida
transport_maps = hash:/etc/postfix/transport
- /etc/postfix/transport failis peab sisalduma nt rida
loomaaed.tartu.ee pf
ning tuleb öelda
# postmap /etc/postfix/transport
- /etc/postfix/master.cf failis peab sisaldub sektsioon
pf unix - n n - - pipe flags=RDX user=programmikasutaja argv=/bin/pf.pl ${user} ${domain}
ning kui /bin/pf.pl sisaldab nt
#!/usr/bin/perl open (fh, ">>/tmp/pf.log"); print fh "$ARGV[0]\n"; 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
Jõudlus
Amavis
Põhimõtteliselt Amavis tarkvara iseseisvalt sisulist lisaväärtust postisüsteemile ei paku, aga ta võimaldab ühendada Postfix'i kokku väliste teenustega, näiteks viiruste analüüsi tarkvaraga ClamAV.
Amavis paigaldatakse öeldes
# apt-get install amavisd-new
Vaikeseadistustega Amavis sobib kasutamiseks
- Amavis kuulab soketil 127.0.0.1:10024
- Amavis pöördub MTA poole aadressile 127.0.0.1:10025
Selleks, et Postfix kõik talle laekunud posti saadaks läbi Amavisi peab lisama main.cf faili rea
content_filter=amavisfeed:[127.0.0.1]:10024
ning faili master.cf lisama sektsioonid
amavisfeed unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o smtp_tls_note_starttls_offer=no 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o smtpd_restriction_classes= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters -o local_header_rewrite_clients= -o smtpd_milters= -o local_recipient_maps= -o relay_recipient_maps=
ClamAV
ClamAV on vaba tarkvaraline viirustõrjeprogramm, mille kasutamisel tarvitatakse ClamAV tasuta viiruste kontrolli andmebaasi teenust. Tavaliselt kutsub Postfix ClamAV välja Amavise abil.
Tarkvara paigaldatakse tavaliselt Debian volatile arhiivis, selleks peab /etc/apt/sources.list sisaldama esimese reana
deb http://ftp.aso.ee/debian-volatile lenny/volatile main contrib non-free
Paigaldamiseks tuleb öelda
# apt-get install clamav
Vaikeseadistustega ClamAV sobib kasutamiseks.
Postfix+Amavis logi lugemine
Kui Postfixiga on ühendatud Amavis (ja omakorda sellega nt ClamAV), siis mail.log faili lugemine osutub pisut keerukamaks, ka seetõttu, et logitud kirjed ei paista olevat nö õiges järjekorras. Nt sellist 'tegelikku' logi
Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: 08F142ECE1: client=moraal.auul[192.168.2.38] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 08F142ECE1: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 08F142ECE1: from=<priit@loomaaed.tartu.ee>, size=505, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: disconnect from moraal.auul[192.168.2.38] Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: 2FA992ECF5: client=localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 2FA992ECF5: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: from=<priit@loomaaed.tartu.ee>, size=885, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: disconnect from localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a amavis[2039]: (02039-03) Passed CLEAN, LOCAL [192.168.2.38] [192.168.2.38] <priit@loomaaed.tartu.ee> -> <mart@loomaaed.tartu.ee>, \ Message-ID: <alpine.DEB.1.10.0902082310300.2613@moraal.auul>, mail_id: C+vCuhHWo1Nb, Hits: -, size: 505, queued_as: 2FA992ECF5, 84 ms Feb 8 23:10:35 smtp1a postfix/smtp[2142]: 08F142ECE1: to=<mart@loomaaed.tartu.ee>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.19, \ delays=0.1/0/0/0.09, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=02039-03, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 2FA992ECF5) Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 08F142ECE1: removed Feb 8 23:10:35 smtp1a postfix/smtp[2147]: 2FA992ECF5: to=<mart@loomaaed.tartu.ee>, relay=smtp.loomaaed.tartu.ee[192.168.32.85]:25, delay=0.03, \ delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 Ok: queued as 199E24DD30) Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: removed
võiks selguse parema arusaamise mõttes lugeda sellises järjekorras
- Postfix võtab kliendilt (moraal.auul) message id'ga 'alpine.DEB.1.10.0902082310300.2613@moraal.auul' kirja vastu, Postfixi sisemine kirja id on 08F142ECE1
Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: 08F142ECE1: client=moraal.auul[192.168.2.38] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 08F142ECE1: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 08F142ECE1: from=<priit@loomaaed.tartu.ee>, size=505, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2149]: disconnect from moraal.auul[192.168.2.38]
- Postfix saadab kirja 08F142ECE1 edasi Amavisile, kusjuures see rida sisaldab ka infot selle kohta, et amavis reinjectis selle kirja tagasi Postfixi id'ga 2FA992ECF5
Feb 8 23:10:35 smtp1a postfix/smtp[2142]: 08F142ECE1: to=<mart@loomaaed.tartu.ee>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.19, \ delays=0.1/0/0/0.09, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=02039-03, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 2FA992ECF5)
- Amavis töötleb message id'ga 'alpine.DEB.1.10.0902082310300.2613@moraal.auul' kirja, peale Postfixi reinjecti on selle kirja id väärtus 2FA992ECF5
Feb 8 23:10:35 smtp1a amavis[2039]: (02039-03) Passed CLEAN, LOCAL [192.168.2.38] [192.168.2.38] <priit@loomaaed.tartu.ee> -> <mart@loomaaed.tartu.ee>, \ Message-ID: <alpine.DEB.1.10.0902082310300.2613@moraal.auul>, mail_id: C+vCuhHWo1Nb, Hits: -, size: 505, queued_as: 2FA992ECF5, 84 ms
- Postix võtab vastu kirja Amaviselt ning kirja töötlemine viiakse lõpuni, kiri saadetakse edasi järgmisele postimasinale, smtp.loomaaed.tartu.ee
Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: 2FA992ECF5: client=localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a postfix/cleanup[2146]: 2FA992ECF5: message-id=<alpine.DEB.1.10.0902082310300.2613@moraal.auul> Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: from=<priit@loomaaed.tartu.ee>, size=885, nrcpt=1 (queue active) Feb 8 23:10:35 smtp1a postfix/smtpd[2144]: disconnect from localhost.localdomain[127.0.0.1] Feb 8 23:10:35 smtp1a postfix/smtp[2147]: 2FA992ECF5: to=<mart@loomaaed.tartu.ee>, relay=smtp.loomaaed.tartu.ee[192.168.32.85]:25, delay=0.03, \ delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 Ok: queued as 199E24DD30) Feb 8 23:10:35 smtp1a postfix/qmgr[2141]: 2FA992ECF5: removed
Cyrus
Postkastihalduse tarkvara Cyrus sisaldab muu hulgas selliseid komponente
- 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> 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
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 klienti.
Pine
Üsna levinud nn pseudograafiline postivahetusprogramm, oskab olla muu hulgas IMAPi klient.
Sympa
Tundub, et Debian Lenny paketihaldusega Sympa kasutamine ei ole võimalik. Sympa paigaldamine lähtetekstidest võiks toimuda selliselt.
Paigaldamine
* Seadistada süsteemi sobiv lokaadi tugi, nt et_EE ja en_US, dpkg-reconfugure locales abil. * Sympa saadab nö esimese administraator parooli eposti teavitusena, seega on oluline, et süsteem saaks eposti välja saata, st tuleb seadistada töötav smtp osa.
Lihtsam on, kui enne Sympa lähtetekstis paigaldamist on paigaldatud sellised paketid (vt apt-cache show sympa -> Depends)
# apt-get build-dep sympa # apt-get install sympa (mitte paigaldaa, aga vaadata vajalikud sõltuvused) # apt-get install ftp wget ncftp unzip libconfig-yaml-perl libsoap-lite-perl \ libcgi-pm-perl libcgi-simple-perl libwww-perl postfix \ perl-suid libdbi-perl libdbd-pg-perl libarchive-zip-perl libmailtools-perl libmd5-perl libmsgcat-perl \ libmime-perl libmime-base64-perl libio-stringy-perl libnet-ldap-perl libcgi-fast-perl libcrypt-ciphersaber-perl \ libintl-perl libmime-charset-perl libmime-encwords-perl libtemplate-perl libxml-libxml-perl mhonarc sysklogd \ system-log-daemon lsb-base adduser debconf
Lähtetekstis tuleb paigaldada
HTML::StripScripts HTML::StripScripts::Parser
Seejärel öelda
# ./configure # make # make instakll
Seadistamine
Sympa hoiab oma andmeid andmebaasis, nt sobib kasutada PostgreSQL, baasi ettevalmistamine toimub öeldes
$ psql -U postgres -h hostname baasinimi < /usr/src/sympa-5.4.3/src/etc/script/create_db.Pg
Sympa tööd saab juhtida veebipõhise haldusliidese abil. Nt sobib selline Apache virtualhost
<VirtualHost 10.0.6.222:80> ServerAdmin mart@loomaaed.tartu.ee ServerName sympa.loomaaed.tartu.ee DocumentRoot "/home/sympa/www" ErrorLog "/var/log/apache2/sympa.avalik.kit-error.log" TransferLog "/var/log/apache2/sympa.avalik.kit-access.log" <Directory "/home/sympa/www"> Options None AllowOverride All Order Deny,Allow Allow from All </Directory> Alias /static-sympa /usr/local/sympa/static_content ScriptAlias /sympa /usr/local/sympa/bin/wwsympa.fcgi </VirtualHost>
Sympa seadistamine toimub peamiselt faili /etc/sympa.conf abil, olulised on järgmised määrangud
domain loomaaed.tartu.ee listmaster mart@loomaaed.tartu.ee lang en_US supported_lang en_US,et_EE db_type Pg db_name sympa db_host 10.0.6.221 db_port 5432 db_user postgres db_passwd sympa
Sympa käivitamine
Sympa käivitamine toimub paigaldamise käigus paigaldatud käivitusskriptiga /etc/rc.d/init.d/sympa (mis ehk ilus kopeerida /etc/init.d/sympa'ks). Lisaks peab töötama Apache veebiserver.
Abiks on jälgida Sympa logi, vaikimini /var/log/syslog. Nt Sympa logib läbi veebiliidese antud korraldusi
Dec 21 13:38:58 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test] Dec 21 13:39:12 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test] main::do_admin() do_admin
Mõne seadistusparameetri kehtestumiseks tuleb Sympale ja Apache'le stop ja start öelda.
Mailman
Mailman (ingl. k. postiljon) http://www.list.org/ on postiloendite (ingl. k. list) pidamise tarkvara.
Mailman tarkvara paigaldamine
Tarkvara paigaldamiseks tuleb öelda
# apt-get install mailman
Lisaks mailman paketile paigaldatakse automaatlselt ka Apache veebiserveri kuna tavaliselt toimub Mailmani haldamine üle veebiliidese. Paigaldamise käigus tuleb valida kasutatavad lokaadid, mis tähendab seda, millistes keeltes on võimalik mailmani kasutajaliidest tööle lülitada.
Seejärel teatab installer, et
Missingsitelist 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.
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