Wichtig : Alle weiteren Tips und Tricks, meine Protokolle und meine Berichte gelten nur für opensuse 13.2 !!!
Aufgrund nächtelanger Internet-Recherchen (weil es nämlich doch nicht auf Anhieb funktionierte) betone ich ausdrücklich, alle anderen Linux-Distributionen sind anders und haben andere Fehler oder incompatible Schwächen oder spezielle nervtötende und nächtefüllende Eigenarten.
Hier geht es alleine um eine möglichst sauber funktionierende Mailserver- Installation unter opensuse 13.2 als virtuelle Maschine unter XEN.
.
Dann brauchen wir noch einen POP3/IMAP-Server -
eigentlich wollen wir nur den POP3 Teil davon nutzen
Bislang hatten wir nur den MTA, der die ankommenden und abgehenden E-Mails kontrollierte und transferierte. Doch wir wollen unsere E-Mails selbst aus den Postfächern vom Server abholen und lokal verarbeiten. Das hat auch ganz ernsthafte juristische Gründe bezüglich Datensicherheit und Zugangskontrollen usw. Unser Mailserver soll und darf aus diesen juristischen Gründen nur eine Durchreiche-Platform für unser Benutzer sein. Dort auf unserem Server werden keine E-Mails und deren Anhänge dauerhaft gelagert. Postfacher, die 60 Tage nicht abgerufen werden, werden automatisch geleert.
Unser Abhol-Server-Programm auf dem mail4.ipw.net heißt "dovecot" und läuft paralell zum sendmail-Server und zum Web-Server.
.
Was der POP3/IMAP Sever macht . . .
Dieser Server läßt den externen Benutzer bzw. Postfachinhaber über das sogenannte pop3- oder imap- Protokoll ganz gezielt mit Benutzernamen und Passwort in ein oder mehrere Postfächer rein schaun und deren Inhalte abholen - weiter nichts. Ist der Inhalt abgeholt (bei POP3), wird das POP3-Postfach geleert und ist reif für neue Mails. Natürlich gibt es da noch weitere spezielle Funktionen, aber eigentlich wars das. Zum Beispiel Senden kann dieser Abhol-Server nicht.
.
Und jetzt gehts los mit "dovecot" 2.2.18
Warum gerade dovecot und nicht roundcube oder einer der anderen reinen POP3/imap Server. Unser Datendurchsatz sowie die Anzahl der E-Mails ist im Vergleich zu den ganz großen Anbietern marginal. Wir brauchen keine "mysql"- Datenbak zur Benutzerverwaltung. Es muß einfach und verständlich sein.
zypper install dovecot
Bei mir hats erst mal funktioniert, doch anfänglich gab es "auth"-Fehler.
.
Die drei "sql"-Module brauchen wir nicht
beim Installieren kam auch diese Meldung:
The following 5 NEW packages are going to be installed:
.
- dovecot
- dovecot22 - Version: 2.2.13-3.2.2
- dovecot22-backend-mysql
- dovecot22-backend-pgsql
- dovecot22-backend-sqlite
.
Wir wollen ohne mysql/mariadb auskommen und löschen über YAST die 3 sql Erweiterungen wieder weg - hat geklappt.
Dann muß auch dovecot zuerst konfiguriert werden. Das geht über webmin vordergründig ganz gut, doch wen es einfachnicht funktionieren will, muß man doch hinter die Klissen schaun.
.
Viele dovecot Webseiten sind sehr hilfreich, andere verwirrend
Es gab nur wenige Hilfen für "dovecot zusammen mit sendmail". Und die vielen Hilfen für dovecot mit postfix, exim oder anderen mta-Servern sind für diese (unsere) Kombination nicht immer optimal.
Hier kommen ein paar Links
Die dovecot minimal Installation über webmin oder nach vorgabe
wiki2.dovecot.org/SSL/DovecotConfiguration
.
Die dovecot Konfigurations-Dateien in /etc/dovecot/
Dovecot hat ähnlich wie sendmail eine Masse an Möglichkeiten, sich absolut hoffnungslos zu verstricken.
Die Haupt-Konfig ist diese hier: /etc/dovecot/dovecot.conf
doch es gibt hier neben dran noch viel mehr:
/etc/dovecot/dovecot-dict-auth.conf.ext
/etc/dovecot/dovecot-dict-sql.conf.ext
/etc/dovecot/dovecot-ldap.conf.ext
/etc/dovecot/dovecot-sql.conf.ext
und dann im Verzeichnis /etc/dovecot/conf.d/
10-auth.conf
10-director.conf
10-logging.conf
10-mail.conf
10-master.conf
10-ssl.conf
15-lda.conf
15-mailboxes.conf
20-imap.conf
20-lmtp.conf
20-managesieve.conf
20-pop3.conf
90-acl.conf
90-plugin.conf
90-quota.conf
90-sieve.conf
90-sieve-extprograms.conf
auth-checkpassword.conf.ext
auth-deny.conf.ext
auth-dict.conf.ext
auth-ldap.conf.ext
auth-master.conf.ext
auth-passwdfile.conf.ext
auth-sql.conf.ext
auth-static.conf.ext
auth-system.conf.ext
auth-vpopmail.conf.ext
Hier kann man sich fürchterlich vertun.
Ein falscher Klick im webmin oder eine Zeile aktiviert, deren Sinn man nicht ganz nachvollziehen kann, schon geht nichts mehr. Die Lernkurve ist steil, weil dann sendmail mit eine Rolle spielt, jedenfalls scheinbar.
Die /etc/dovecot/dovecot.conf Datei
## Dovecot configuration file
protocols = imap pop3
base_dir = /var/run/dovecot/
login_greeting = Das ist das dovecot Mail-Interface fuer den mail3.ipw.net.
verbose_proctitle = yes
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
!include_try local.conf
ssl_ca = </etc/webmin/miniserv.pem
mail_full_filesystem_access = no
Die /etc/dovecot/dovecot-dict-auth.conf.ext
# This file is commonly accessed via passdb {} or userdb {} section in conf.d/auth-dict.conf.ext
default_pass_scheme = MD5
iterate_prefix = userdb/
key passdb {
key = passdb/%u
format = json
}
key userdb {
key = userdb/%u
format = json
}
passdb_objects = passdb
userdb_objects = userdb
userdb_fields {
quota_rule = *:storage=%{dict:quota}
mail = maildir:%{dict:userdb.home}/Maildir
}
Die /etc/dovecot/conf.d/10-auth.conf
## Authentication processes
auth_debug_passwords=yes
disable_plaintext_auth = no
auth_mechanisms = plain digest-md5 cram-md5 login
auth_username_format = %n
!include auth-system.conf.ext
Über das Protokollieren von Fehlern und Ereignissen
Wenn es nicht geht, wird es schlimm. Denn die Menge der einstellbaren Optionen ist schier unbegrenzt. Also schalten wir einfach mal alle Log-Funktionen ein und schaun mal, was in den Protokollen drinnen steht.
.
Die /etc/dovecot/conf.d/10-logging.conf
## Log destination.
mail_debug=yes
auth_debug=yes
log_path = /var/log/dovecot-error.log
info_log_path = /var/log/dovecot-info.log
debug_log_path = /var/log/dovecot-debug.log
auth_verbose_passwords = plain
auth_debug_passwords=yes
auth_verbose = yes
auth_debug = yes
mail_debug = yes
verbose_ssl = yes
## Log formatting.
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_log_format_elements = user=<%u> method=%m rip=%r mpid=%e %c %k session=<%{session}>
Natürlich müssen diese Protokolle wieder abgeschaltet werden
Sonst wird der Server recht schnell zugemüllt !!!!!
.
Die /etc/dovecot/conf.d/10-mail.conf
## Mailbox locations and namespaces
#mail_location =
mail_location = mbox:~/mail/:INBOX=/var/mail/%u
namespace inbox {
# Namespace type: private, shared or public
#type = private
inbox = yes
}
# Directory where to look up mail plugins.
mail_plugin_dir = /usr/lib64/dovecot/modules
Die /etc/dovecot/conf.d/10-ssl.conf
## SSL settings
ssl = yes
ssl_options = no_compression
ssl_cert = </etc/webmin/miniserv.pem
ssl_key = </etc/webmin/miniserv.pem
ssl_dh_parameters_length = 2048
ssl_protocols = !SSLv2 !SSLv3
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EEC
ssl_prefer_server_ciphers = yes
Wo stehen die User und Passwörter, die wir benutzen
Es gibt viele Möglichkeiten, die Benutzer bzw. die Eigentümer der Postfächer dieses Servers zu verwalten, schnelle und lagsame und sichere und unsichere. Aufgrund der begrenzten Anzahl der Postfächer bleiben wir bei der ganz normalen Linux Benutzerverwaltung, die über das System-Modul in "webmin" erstellt wird. Die User und Passwörter stehen dann in der Datei /etc/shadow.
.
Die /etc/dovecot/conf.d/auth-system.conf.ext
# Authentication for system users. Included from 10-auth.conf.
passdb {
driver = shadow
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
}
passdb {
driver = passwd
# [blocking=no]
args =
}
## User databases
userdb {
driver = passwd
}
Mit obigen Konfigurationen hat es zumindest mal funktioniert.
Der Zugang zu dem E-Mail-Server zum Abholen von ganzen Postfächern über IMAP mit dem Thunderbird 3.0 und aufwärts hat so funktioniert.
.
Ganz wichtig zur Fehlersuche bei der ssl Verschlüsselung:
Sie brauchen zum Testen mindestens einen (besser 2) andere/fremde ssl/tls basierte E-Mail Accounts - zum Beispiel bei t-online oder gmx.de oder web.de oder irgend einem anderen Freemailer - , mit dem bzw. über den Sie sich selbst Test-Mails kreuz und quer von Server zu Server schicken können und jeweils auch prüfen können, ob diese Mails versendet wurden und auch angekommen sind.
Ohne diese Prüfmethoden stochern sie im Sumpf von fast 200 Konfigurations- Möglichkeiten, die alle untereinander voneinander abhängig sind.
.
.
.