Stand: August 2010
Aufbau eines sicheren und hochperformanten IMAP-Mailservers mit folgenden Features:
derzeitiger Stand: dovecot-1.2
geplanter Umstieg auf die Version 2.0
ich möchte den mysql-driver in dovecot freischalten und brauche PAM, dazu installiere ich noch die devel-Paktete:
yum install mysql-devel pam-devel
dovecot-2.0 entpacken und im Verzeichnis:
./configure --with-mysql --with-ldap
als Ergebnis sollten diese Zeilen am Ende erscheinen:
SSL ............ : yes (OpenSSL) GSSAPI ......... : no passdbs ........ : static passwd passwd-file shadow pam checkpassword ldap sql > -bsdauth -sia -vpopmail userdbs ........ : static prefetch passwd passwd-file checkpassword ldap sql nss > -vpopmail SQL drivers .... : mysql > -pgsql -sqlite
make sudo make install
Ich teste zunächst mit einem lokalen Nutzer (in der passwd eingetragen) und einem imaps-Postfach. dovecot-2.0 starte ich zunächst auf den Ports 1143 und 1993 (siehe 10-master.conf). Im Thunderbird erstelle ich dazu ein neues imap-konto und gebe diese Ports in der Konfiguration an.
/usr/local/etc/dovecot/dovecot.conf
- Protocols we want to be serving. - protocols = imap pop3 lmtp protocols = imap - listen = *, :: listen = *
/usr/local/etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
/usr/local/etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
/usr/local/etc/dovecot/conf.d/10-master.conf
service imap-login { inet_listener imap { port = 1143 } inet_listener imaps { port = 1993 ssl = yes }
das Zertifikat wird zunächst global bereitgestellt, später werden getrennte Zertifikate für pop3s und imaps zugewiesen (entfällt, wenn die Namen für den pop3-Server und den imap-Server bei den Clients gleich lautet, zB mailbox.fh-schmalkalden.de)
/usr/local/etc/dovecot/conf.d/10-ssl.conf
ssl = yes ssl_cert = </usr/local/etc/ssl/imap.pem ssl_key = </usr/local/etc/ssl/imap.pem
als Test kann auch dieses Kommando ausgeführt werden:
/usr/local/bin/doveconf -n
und diese Ausgabe sollte erscheinen:
disable_plaintext_auth = no listen = * mail_location = maildir:~/Maildir passdb { driver = pam } protocols = imap service imap-login { inet_listener imap { port = 1143 } inet_listener imaps { port = 1993 ssl = yes } } ssl_cert = </usr/local/etc/ssl/imap.pem ssl_key = </usr/local/etc/ssl/imap.pem userdb { driver = passwd }
Test mit Thunderbird und imaps: TEST OK
ich kopiere eine alte lokale Mailbox mit 2000 Emails in das neue Postfach TEST OK
ich habe als Mailbox-Format das Maildir eingestellt. Vorhandene Mailboxen müssen also alle in das neue mdbox-Format konvertiert werden. Das Tool „dsync“ konvertiert ein vorhandenens Maildir in das neue mdbox. Dazu wird vorher das mail_location-Attribut in der Konfig-datei geändert:
- mail_location = maildir:~/Maildir mail_location = mdbox:~/mdbox
dann kann dsync gestartet werden:
/usr/local/bin/dsync -u jens mirror maildir:~/Maildir dsync(jens): Fatal: Mail locations must use the same virtual mailbox hierarchy separator (specify separator for the default namespace)
wegen dieser Fehlermeldung lege ich einen Namespace mit diesen Einstellungen an:
10-mail.conf
namespace { separator = . inbox = yes }
und starte dsync neu:
/usr/local/bin/dsync -u jens mirror maildir:~/Maildir
Im Anschluß befindet sich im Homeverzeichnis zusätzlich zum Maildir ein neues Verzeichnis mdbox. Im Unterverzeichnis „storage“ befinden sich jetzt ca. 130 Dateien mit einer Größe von 2 bis 8 MB:
... -rw------- 1 jens jens 2.0M Aug 6 13:09 m.95 -rw------- 1 jens jens 2.0M Aug 6 13:09 m.96 -rw------- 1 jens jens 2.0M Aug 6 13:09 m.97 ...
Performance-Tests, Postfach als Maildir und mdbox, Maildir ca. 35000 einzelene Dateien, mdbox 680 Files bei gleicher Anzahl von E-Mails (ca. 35000)
Maildir: 1:35 min mdbox: 1:30 min
Beim Backup über das Netzwerk ist zunächst kein Unterschied zu erkennen. Der Overhead bei sehr vielen Dateien (Maildir) wirkt sich hier kaum nachteilig aus.
keine Ergebnisse, Thunderbird hängt sich bei dieser Zahl von markierten E-Mails auf und reagiert nich mehr
neuer Test mit python und imaplib, 15000 E-Mails von einem Ordner in einen anderen, kaum Unterschiede bemerkbar, bei beiden Formaten sind die Nachrichten in 3-4 Sekunden kopiert
Im Moment sieht es so aus, als ob das neue Mailboxformat keine gravierenden Steigerungen in der Performance bringt. Zusätzlich zum Maildir-Format muß bei mdbox regelmäßig die Mailboxen bereinigt werden, das wird nächtlichst mit einem cronjob erledigt und doveadm punge -u user.