Dies ist eine alte Version des Dokuments!


Dovecot, Authentifizierung(en)

Bei der Authentifizierungsquellen kennt Dovecot mehrere Quellen:

  • passwd:
    Als Quellen werden die User-Daten /etc/shadow (Überprüfung des Userenviroments, also $HOME, $UID und $GID) und /etc/passwd (Überprüfung des Passwortes) genutzt.
  • passwd-File:
    Die /etc/dovecot/users Dovecot-eigene User-Verwaltungs-Datei beinhaltet (neben der Überprüfung des Userenviroments, also $HOME, $UID und $GID auch Überprüfung des Passwortes
  • LDAP
    Mit Hilfe von LDAP1) via via annonymous bind oder technischem User kann ebenso die Benutzerverwaltung erfolgen.
  • SQL
    Ebenso können die gängisten SQL-Datenbanken, wie MySQL, PostgreSQL oder SQLite verwendet werden. Weitere Hinweise dazu findet man im Dovecot Wiki.
  • Kerberos
    Nutzt man das GSSAPI2) für Kerberos 5, so benötigt man weiterhin passwd, damit Dovecot $HOME ermitteln kann um in Erfahrung zu bringen, wo sich die Mailbox des erfolgen, nutzt man die Endkunden befindet. Soll über Kerberos lediglich die Authentifizierung über den Ticket Authentification genutzt werden, verwendet man statt dessen die pam_krb5.
  • vpopmail
    Hinweise hierzu findet man im Dovecot Wiki.
  • Dict
    Hinweise zu „Key-value authentication database“ findet man im Dovecot Wiki.
  • static:
    Bei Systemen ohne nötiger Überprüfung von Username und Passwort wird static verwendet, so z.B.:
    1. Proxy Frontend, bei dem das Frontend bereits das Passwort überprüft.
    2. Proxy Backend, bei dem das Backend das Passwort überprüft
    3. SSL Zertifikate, bei der Authentifizierung mit Hilfe von X.509 Client-Zertifikate
    4. Test, zu Testzwecken.

Die Konfiguration der Authentifizierung erfolgt über die Datei /etc/dovecot/conf.d/10-auth.conf und über die jeweils eingebundene auth-<mechanism>.conf.ext aus dem Verzeichnis /etc/dovecot/conf.d/.

 # # ll /etc/dovecot/conf.d/auth-*
-rw-r--r-- 1 root root  499 Nov 24  2013 /etc/dovecot/conf.d/auth-checkpassword.conf.ext
-rw-r--r-- 1 root root  489 Nov 24  2013 /etc/dovecot/conf.d/auth-deny.conf.ext
-rw-r--r-- 1 root root  343 Nov 24  2013 /etc/dovecot/conf.d/auth-dict.conf.ext
-rw-r--r-- 1 root root  924 Nov 24  2013 /etc/dovecot/conf.d/auth-ldap.conf.ext
-rw-r--r-- 1 root root  561 Nov 24  2013 /etc/dovecot/conf.d/auth-master.conf.ext
-rw-r--r-- 1 root root  515 Nov 24  2013 /etc/dovecot/conf.d/auth-passwdfile.conf.ext
-rw-r--r-- 1 root root  788 Nov 24  2013 /etc/dovecot/conf.d/auth-sql.conf.ext
-rw-r--r-- 1 root root  611 Nov 24  2013 /etc/dovecot/conf.d/auth-static.conf.ext
-rw-r--r-- 1 root root 2185 Nov 24  2013 /etc/dovecot/conf.d/auth-system.conf.ext
-rw-r--r-- 1 root root  330 Nov 24  2013 /etc/dovecot/conf.d/auth-vpopmail.conf.ext

Per Default wird der Authentifizierungs-Mechanismus passwd verwendet, also gegen die beiden Systemkonfigurationsdateien /etc/passwd und /etc/shadow. Dies ist mit dem !include-Statement am Ende der Dovecot-Konfigurationsdatei /etc/dovecot/conf.d/10-auth.conf geregelt.

 # vim /etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/10-auth.conf
...
 
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
 
!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

Will man lediglich den Systemeigenen Usern, die ein Konto auf dem Linux-Host haben, ein Konto zuweisen, kann natürlich der Mechanismus passwd genutzt werden. Bei der Anmeldung kann aber somit „nur“ der Username verwendet werden und def. nicht die eMail-Adresse des Endkunden - ein nogo für Umgebungen mit mehreren virtuellen Maildomänen. Aus diesem Grunde haben wir uns auch bei den Eingangsüberlegungen zu unserem Dovecot-Server, auch gegen diesen Mechanismus ausgesprochen!

Beispiel:

 # grep 1000 /etc/passwd
django:x:1000:1000:django:/home/django:/bin/bash

Der Username django kann zwar benutzt werden, nicht aber django@nausch.org bzw. django@mailserver.guru.

Über die Konfigurationsdatei /etc/dovecot/conf.d/auth-system.conf.ext können bei Bedarf Einstellungen vorgenommen werden.

 # less /etc/dovecot/conf.d/auth-system.conf.ext
/etc/dovecot/conf.d/auth-system.conf.ext
# Authentication for system users. Included from 10-auth.conf.
#
# <doc/wiki/PasswordDatabase.txt>
# <doc/wiki/UserDatabase.txt>
 
# PAM authentication. Preferred nowadays by most systems.
# PAM is typically used with either userdb passwd or userdb static.
# REMEMBER: You'll need /etc/pam.d/dovecot file created for PAM
# authentication to actually work. <doc/wiki/PasswordDatabase.PAM.txt>
passdb {
  driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
  # [cache_key=<key>] [<service name>]
  #args = dovecot
}
 
# System users (NSS, /etc/passwd, or similiar).
# In many systems nowadays this uses Name Service Switch, which is
# configured in /etc/nsswitch.conf. <doc/wiki/AuthDatabase.Passwd.txt>
#passdb {
  #driver = passwd
  # [blocking=no]
  #args = 
#}
 
# Shadow passwords for system users (NSS, /etc/shadow or similiar).
# Deprecated by PAM nowadays.
# <doc/wiki/PasswordDatabase.Shadow.txt>
#passdb {
  #driver = shadow
  # [blocking=no]
  #args = 
#}
 
# PAM-like authentication for OpenBSD.
# <doc/wiki/PasswordDatabase.BSDAuth.txt>
#passdb {
  #driver = bsdauth
  # [blocking=no] [cache_key=<key>]
  #args =
#}
 
##
## User databases
##
 
# System users (NSS, /etc/passwd, or similiar). In many systems nowadays this
# uses Name Service Switch, which is configured in /etc/nsswitch.conf.
userdb {
  # <doc/wiki/AuthDatabase.Passwd.txt>
  driver = passwd
  # [blocking=no]
  #args = 
 
  # Override fields from passwd
  #override_fields = home=/home/virtual/%u
}
 
# Static settings generated from template <doc/wiki/UserDatabase.Static.txt>
#userdb {
  #driver = static
  # Can return anything a userdb could normally return. For example:
  #
  #  args = uid=500 gid=500 home=/var/mail/%u
  #
  # LDA and LMTP needs to look up users only from the userdb. This of course
  # doesn't work with static userdb because there is no list of users.
  # Normally static userdb handles this by doing a passdb lookup. This works
  # with most passdbs, with PAM being the most notable exception. If you do
  # the user verification another way, you can add allow_all_users=yes to
  # the args in which case the passdb lookup is skipped.
  #
  #args =
#}

Links


1)
Lightweight Directory Access Protocol
2)
Generic Security Service Application Program Interface
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • centos/mail_c7/dovecot_6.1406570373.txt.gz
  • Zuletzt geändert: 28.07.2014 17:59.
  • von django