Dovecot: virtuelle Domains und Benutzer in Textdateien

Dokumentation: https://doc.dovecot.org/configuration_manual/virtual_users/

Voraussetzung: dovecot-imapd

Benutzer vmail und Mailverzeichnis anlegen:

mkdir -p /srv/vmail/example.com
useradd -r -U -s /bin/false -d /srv/vmail vmail
chown vmail:vmail /srv/vmail/example.com

Dovecot konfigurieren:

/etc/dovecot/local.conf
mail_location = maildir:~/Maildir
auth_username_format = %Lu
userdb {
  args = /srv/vmail/passwd
  default_fields = uid=vmail gid=vmail home=/srv/vmail/%d/%n
  driver = passwd-file
}
passdb {
  args = /srv/vmail/passwd
  driver = passwd-file
}
doveconf auth_username_format

auth_username_format = %Lu

doveconf -n | grep -EA4 '^(userdb|passdb)'
systemctl reload dovecot.service

Benutzer anlegen: 1)

doveadm pw -l
doveadm pw -s BLF-CRYPT | tee -a /srv/vmail/passwd
/srv/vmail/passwd
user1@example.com:{BLF-CRYPT}$2y$05$XF8X/y47o1sfXTiwX5JkzOn0uGvZw9QCtHOKRinCsMc.rtAElVHOG::
user2@example.com:{SSHA256}NZMbbjQl2IsI8Qurnfgl2XjTxD/8eNf4IYD+AdiikArZ+WZI::

Testen

Kennt dovecot die Benutzer?

doveadm user '*'
doveadm user user1@example.com

home /srv/vmail/example.com/user1

Funktioniert die Authentifizierung?

doveadm auth test user1@example.com

auth succeeded

Mit curl:

curl -v --url imap://localhost:143 --user me@klaus-1.lxht.de

OK Logged in

Mit curl + TLS:

curl -v --ssl-reqd --url imaps://example.com:993 --user user1@example.com

Kann man sich lokal anmelden (mit TLS):

openssl s_client -crlf -connect localhost:993
. login user1@example.com xxx