Grundkonfiguration

Konfigurations-Optionen: https://docs.kolab.org/administrator-guide/roundcube-settings-reference.html

Authentifizierung

/etc/dovecot/conf.d/10-auth.conf definiert die zulässigen Authentifizierungs-Mechanismen Mit diesem Wert wird der Login über unverschlüsselte Verbindungen verhindert. Ausnahme: Client und Server mit gleicher IP.

disable_plaintext_auth = yes

LOgin Mechanismen:

auth_mechanisms = plain login

Hier wird definiert, ob über lokale userdb authentifiziert wird oder über SQL:

!include auth-sql.conf.ext #!include auth-ldap.conf.ext ## Hier Authentifizierung über lokale userdb ## !include auth-passwdfile.conf.ext

über MySQL

Quelle: https://thomas-leister.de/internet/mailserver-ubuntu-server-dovecot-postfix-mysql/ (für Server 14.04) und https://thomas-leister.de/sicherer-mailserver-dovecot-postfix-virtuellen-benutzern-mysql-ubuntu-server-xenial/ (für Server 16.04)

In dovecot-sql.conf.ext wird der SQL query definiert.

Verbindungsaufbau

connect = host=127.0.0.1 dbname=userauth user=userauth password=XXXXX

Welcher Hash wird benutzt? Achtung: blowfish (BLF-CRYPT) ) wäre theoretisch möglich, wird zur Zeit aber von glibc unter Ubunut nicht unterstützt.

default_pass_scheme = SHA512-CRYPT

Und hier der SELECT. Pro Login werden alle Varianblen über denselben SQL Request ermittelt ("userdb prefetch"):

# password query including userdb info in one request (prefetch) password_query = \ SELECT userid AS user, password, \ home AS userdb_home, uid AS userdb_uid, gid AS userdb_gid \ FROM users WHERE userid = '%n' AND domain = 'netzwissen.de'

Neuer User: Passwort Hash erzeugen

01/2016: Dovecot selber könnte zwar auch Blowfish (BLF-CRYPT), allerdings nicht die glibc in Ubuntu Server 14 » 16 und 18! Siehe auch https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1349252

Verfügbare Hashes testen

Liste

doveadm pw -l

blf-crypt

doveadm pw -s BLF-CRYPT -p secret

Neuen hash erzeugen (SHA512)

doveadm pw -s SHA512-CRYPT -u thomas.rother@miteinander-esslingen.de -p 'XXXXXxxxxxx'

Vom Ergebnis-String alles ab $6$… in die DB schreiben

Login-Test

doveadm pw -t '{SHA512-CRYPT}$xxxxxxxxxxxxxxxxxxxx' -p "xxxxxxxxxxxxxxxxx" (verified)

Sobald BCRYPT mal tut: https://kaworu.ch/blog/2016/04/20/strong-crypt-scheme-with-dovecot-postfixadmin-and-roundcube/