Dovecot 2

Allikas: Kuutõrvaja

Sissejuhatus

Dovecot.png

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 2.0.14 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)

auth_mechanisms = plain login
disable_plaintext_auth = no
first_valid_gid = 0

mail_cache_fields = flags, date.sent, date.received, size.virtual, size.physical, mime.parts, imap.body, imap.bodystructure

#kasutusel on mbox formaat, ehk kirjad asuvad kasutaja kodukataloogis kaustas mail ja /var/mail
mail_location = mbox:~/mail/:INBOX=/var/mail/%u
mail_privileged_group = mail

# autentimise mehanismused ehk pam ja shadow fail
passdb {
  driver = pam
}

# kasutatavad protokollid, lisada võib veel pop3 ja pop3s
protocols = imap

#socket autentimiseks
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}


# kuulatakse porte 143 ja 933 kõigil võrguseadmetel
service imap-login {
  inet_listener imap {
    address = *
    port = 143
  }
  inet_listener imaps {
    address = *
    port = 993
  }
}

# ssl sertifikaadid
ssl_cert = /usr/local/certs/imapd.pem
ssl_key = /usr/local/certs/imapd.pem

userdb {
  driver = passwd
}

verbose_proctitle = yes

protocol imap {
  imap_client_workarounds = delay-newmail   tb-extra-mailbox-sep
}

protocol lda {
  postmaster_address = postmaster@example.com
}

TLS Autentimine

Seletaks veel pisut lahti socketi vajalikkust, ehk siis ülaltoodud konfis olevat blokki

#socket autentimiseks
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}

Maili klient saab selleabil autentida enda vastu postfixi serverit ja e-maile turvaliselt saata. Postfix kasutab kasutaja autentimiseks dovecoti sasl socketit. Ehk äraseletatult pöördub kasutaja enda autentimise küsimusega postfixi poole. Postfix võtab läbi socketi ühendust dovecotiga mis toimetab omakorda autentimise vastu pami ja shadow faili.

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 seda saab 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
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

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

IMAPS ehk imapi krüpteeritult kasutamine

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

Ohtralt seadistusnäiteid leiab urlilt http://wiki.dovecot.org/HowTo

Testimine

Siin on heaks abiks opensslist

$ openssl s_client -connect mail.zoo.tartu.ee:993

Mis peaks vastama eduka ühenduse korral

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

Sinna võib trükkida seejärel autentimise käsu järgneval kujul

a10 login test parool

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/

Lingid ja lisamaterjal

http://en.gentoo-wiki.com/wiki/Dovecot/Install