Dovecot
Sissejuhatus
On lihtne kuid võimekas ja kiirelt arenev imap ja pop3 server mis toetab nii mbox kui maildir formaati, SSL krüpteerimist ja autentimist ning kirjade indekseerimist. Ka oskab Dovecot kasutada autentimisel erinevaid andmebaase näiteks MySQLi, PostgreSQLi, LDAPi või kasutada neid suisa paraleelselt, samuti on Dovecot clusterdamise toega.
Ametlikuks koduleheks on tarkvaral http://www.dovecot.org/
Dovecot on laiemalt tuntud tarkvara mida võib leida enamuse levinud operatsioonisüsteemide näiteks Linux, Solaris, FreeBSD, OpenBSD, NetBSD ja Mac OS X pakihaldusest ning seetõttu pole paigaldusprotsessil arvatavasti tarvidust pikemalt peatuda.
NB Käesolevas teksti on kirjutatud 1.2.6 versioonile tuginedes.
Kasutusnäide
Järgnevalt serveri seadistusfail, kus kasutusel nii imap kui imaps ehk siis plaintext ja ssl krüpteeritud imapi ühendused ja autenditakse vastu pam'i ehk kasutajate info asetseb passwd faili
fail dovecot.conf (asub vastavalt operatsioonisüsteemile kas /etc või /usr/local/etc all)
# kasutatavad protokollid, lisada võib veel pop3 ja pop3s
protocols = imap imaps
log_timestamp = "%Y-%m-%d %H:%M:%S "
log_path = /var/log/dovecot.log
# kuulatakse porte 143 ja 933 kõigil võrguseadmetel
protocol imap {
listen = *:143
ssl_listen = *:993
}
disable_plaintext_auth = no
# ssl sertifikaadid
ssl_cert_file =/usr/local/certs/server.crt
ssl_key_file = /usr/local/certs/server.key
#kasutusel on mbox formaat, asuvad need kasutaja kodukataloogis kaustas mail ja /var/mail all
mail_location = mbox:~/mail/:INBOX=/var/mail/%u
mail_privileged_group = mail
verbose_proctitle = yes
first_valid_gid = 0
mail_cache_fields = flags, date.sent, date.received, size.virtual, size.physical, mime.parts, imap.body, imap.bodystructure
protocol imap {
imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}
# autentimise mehanismused ehk pam ja passwd fail
auth default {
mechanisms = plain login
passdb pam {
}
userdb passwd {
}
#socket autentimiseks
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
Dovecot SASL toetus on olemas alates Postfixi 2.3 versioonist. Postfixi poolelt on vaja esiteks defineerida autentimise socketi asukoht. Tark on viidata rajaga postfixi saba (queue) kausta sest siis saab seda kasutada ka chroot keskonnas asuva postfix korral.
avame selleks faili /etc/postfix/main.cf
smtpd_sasl_type = dovecot smtpd_sasl_path = /var/spool/postfix/private/auth
Dovecoti poolelt on vaja siis samuti defineerida vastav rada socketini mida autentimise informatsiooni vahetamiseks kasutatakse. Antud ülal asuvas näites määratakse see kõige viimases plokis.
Autentimisest leiab pikkemalt juttu postfixi enda lehel
Lisaks on vajalik genereerida ja paigaldada sertifikaadid
$ openssl genrsa -des3 -out server.key 1024 $ openssl req -new -key server.key -out server.csr $ openssl x509 -req -days 300 -in server.csr -signkey server.key -out server.crt $ openssl rsa -in server.key -out server.key
Mis produtseerib failid server.crt ja server.key Mis kopeerida nt siis /usr/local/certs all
/usr/local/certs/server.crt /usr/local/certs/server.key
Palju seadistusnäiteid leiab http://wiki.dovecot.org/HowTo
Muud kasutusjuhud
Mbox, mis on vananenud ja tülikas formaat asemel kasutades maildiri võib kirjutada konfis mail_location rea järgnevalt
mail_location = maildir:~/Maildir
Samuti suudab dovecot olla rohkem kui vaid imapi klient ja näiteks LDA abil võtta maili vastu MTA'lt (postfix nt) ja ise kirjutada selle kasutaja kaustadesse ja failidesse.
Paljusid võtmeid ning kasutusvõimalusi seletakse lahti ametlikus wikis http://wiki.dovecot.org/
Probleemid
Mõne Dovecoti versiooni uuenduse järel on juhtunud olukordi kus failide formaat muunud ning ta annab mailogisse veateateid
imap-login: Login: user=<mart>, method=PLAIN, rip=192.168.10, lip=192.168.1.7 IMAP(mart): FETCH for mailbox INBOX UID 5249 got too little data: 1607 vs 1646 IMAP(mart): Disconnected: Disconnected bytes=84/43456
Seljuhul teeb asja korda kasutaja kodust dovecot.index.* failide kustutamine.
# find /home -type f -name "dovecot.index" -ls -exec rm {} \;
Lingid ja lisamaterjal