Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dovecot_master-user

Dovecot Master-User

Diese Dokumentation ist nach dem Kurs: Dovecot bei www.heinlein-support.de - Peer Heinlein entstanden. Hier noch einmal meinen Dank für die Informationen und das ☛ Buch: Dovecot

:!: HINWEIS - Die Nachfolgende Konfiguration von Dovecot setzt eine lauffähige Installation von Dovecot voraus, wie unter nachfolgendem internen Link beschrieben !!!

Dovecot ist ein Open-Source-IMAP-und POP3-E-Mail-Server für Linux bzw. UNIX-ähnlichen Systeme, entwickelt mit dem Hauptaugenmerk auf Sicherheit. Dovecot ist eine ausgezeichnete Wahl für kleine und große Installationen. Dovecot ist schnell und einfach zu installieren, erfordert keine besonderen Voraussetzungen und ist Ressourcenschonend.

Dovecot wird von Timo Sirainen entwickelt.

Beschreibung Externer Link
Homepage http://dovecot.org
Dokumentation http://dovecot.org/documentation.html
Wiki Dovecot2 http://wiki2.dovecot.org/

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

Vorbereitung

Der sogenannte Master-User ist eine besondere Möglichkeit unter Dovecot sich mit der Identität eines anderen Benutzers anzumelden und so auch die Sichtweise des Benutzers zu erlangen, ohne dessen Passwort zu kennen.

Die Brisanz dieser Zugangsmöglichkeit ist ähnlich wie bei dem root-Benutzer in einem Linux-System.

Die Übernahme der Identität eines anderen Benutzers, wird durch eine Ergänzung des Benutzernamens durch einen „Separator“ und der Benutzerkennung des Master-Users bei der Anemeldung durchgeführt.

Nachfolgende syntaktische Darstellung soll dies noch einmal verdeutlichen:

... <Benutzername><Separator><Master-User-Benutzername>

Beispiel:

...
a1 login klaus@tachtler.net*masteruser masteruserpasswort
...

Deshalb ist es notwendig sich vorab darüber Gedanken zu machen, welche Benutzerkennung der Master-User haben soll und auch sehr wichtig, ein sicheres Passwort zu wählen!

Konfiguration

Nachfolgende Konfigurationsschritte sind notwendig, um einen Master-User einzurichten.

/etc/dovecot/master-users

Um auch passwd-file als Authentifizierungsmöglichkeit für den Master-User nutzen zu können, muss dieser wie ein virtuellen Benutzer in einer Datei gespeichert werden. Dazu soll eine Datei mit nachfolgendem Pfad und Namen

  • /etc/dovecot/master-users

mit nachfolgendem Befehl angelegt werden.

# vim /etc/dovecot/master-users

Der Inhalt der Datei /etc/dovecot/master-users muss ebenfalls mindestens nachfolgenden Aufbau haben, wobei die Felder

  • <uid>
  • <gid>
  • <(gecos)>
  • <home>
  • <shell>
  • <extras>

weg gelassen werden, da die Informationen aus diesen Feldern vom zu übernehmenden Benutzer übernommen werden.

<username>:{CODIERUNG}<passwort>:<uid>:<gid>:<(gecos)>:<home>:<shell>:<extras>

Beispiele:

masteruser:{PLAIN}geheim::::::

Abschließend sollten noch die Besitzrechte und die Dateirechte von /etc/dovecot/master-users mit nachfolgenden Befehlen angepasst werden.

Besitzrechte:

# chown root.dovecot /etc/dovecot/master-users

Dateirechte:

# chmod 640 /etc/dovecot/master-users

/etc/dovecot/conf.d/10-auth.conf

auth_master_user_separator

Zuerst ist es erforderlich einen „Separator“ festzulegen, welcher den Benutzernamen vom Master-User-Benutzernamen trennt.

Es sollte ein Zeichen sein, welches z.B. in e-Mail-Adressen nicht vorkommen kann und auch sonst bei Benutzernamen eher keine Rolle spielt.

Am besten eignet sich hierfür das Zeichen: * (Stern).

Dies wird mit nachfolgender Einstellung durchgeführt: (nur relevanter Ausschnitt)

...
# If you want to allow master users to log in by specifying the master
# username within the normal username string (ie. not using SASL mechanism's
# support for it), you can specify the separator character here. The format
# is then <username><separator><master username>. UW-IMAP uses "*" as the
# separator, so that could be a good choice.
# Tachtler
# default: #auth_master_user_separator =
auth_master_user_separator = *
...

auth-master.conf.ext

Nachfolgende Anpassungen müssen am Ende an der Konfigurationsdatei /etc/dovecot/conf.d/10-auth.conf ebenfalls noch durchgeführt werden:

Vorher: (Nur relevanter Ausschnitt):

...
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
...

Nachher: (Nur relevanter Ausschnitt):

...
#!include auth-deny.conf.ext
# Tachtler
# default: #!include auth-master.conf.ext
!include auth-master.conf.ext
...

/etc/dovecot/conf.d/auth-master.conf.ext

In der Konfigurationsdatei /etc/dovecot/conf.d/auth-master.conf.ext sind nun die Einstellungen enthalten, um die Nutzung eines Master-User zu realisieren.

(Vollständige Konfigurationsdatei)

# Authentication for master users. Included from 10-auth.conf.
 
# By adding master=yes setting inside a passdb you make the passdb a list
# of "master users", who can log in as anyone else.
# <doc/wiki/Authentication.MasterUsers.txt>
 
# Example master user passdb using passwd-file. You can use any passdb though.
passdb {
  driver = passwd-file
  master = yes
  args = /etc/dovecot/master-users
 
  # Unless you're using PAM, you probably still want the destination user to
  # be looked up from passdb that it really exists. pass=yes does that.
  pass = yes
}

:!: HINWEIS - Es sind keine Anpassungen notwendig !!!

Neustart

Bevor der der dovecot-Daemon/Dienst neu gestartet werden soll, ist eine Überprüfung der korrekten Konfiguration durch nachfolgenden Befehl, zu empfehlen

# doveconf -n
# 2.2.18: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-229.7.2.el7.x86_64 x86_64 CentOS Linux release 7.1.1503 (Core)  
auth_debug = yes
auth_debug_passwords = yes
auth_master_user_separator = *
auth_mechanisms = plain digest-md5 cram-md5 login
auth_verbose = yes
disable_plaintext_auth = no
listen = *
mail_debug = yes
mail_location = maildir:~/Maildir
mbox_write_locks = fcntl
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = INBOX/
  separator = /
}
passdb {
  args = /etc/dovecot/master-users
  driver = passwd-file
  master = yes
  pass = yes
}
passdb {
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
protocols = imap lmtp
service lmtp {
  inet_listener lmtp {
    address = 192.168.0.80
    port = 24
  }
}
ssl = no
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}
verbose_proctitle = yes

:!: HINWEIS - die Konfiguration des dovecot-Daemon/Dienst konnte korrekt gelesen werden, wenn die Konfiguration erscheint, was letztendlich zwar nicht bedeutet, das Sie auch korrekt ist, aber syntaktische Fehler ausschließt !!!

Danach kann der dovecot-Server mit nachfolgendem Befehl neu gestartet werden:

# service dovecot restart
Stopping Dovecot Imap:                                     [  OK  ]
Starting Dovecot Imap:                                     [  OK  ]
bzw.
# systemctl restart dovecot

Login-Test mit doveadm

Um zu Überprüfen, ob eine Anmeldung als Master-User in der Identität eines anderen Benutzers möglich ist, kann nachfolgender Befehl genutzt werden:

# doveadm auth test klaus@tachtler.net*masteruser
Password: 
passdb: klaus@tachtler.net*masteruser auth succeeded
extra fields:
  user=klaus@tachtler.net
  original_user=masteruser
  auth_user=masteruser

:!: HINWEIS - ;-) Es muss das Passwort des Master-Users eingegeben werden!

Login-Test mit telnet

Um zu Überprüfen, ob eine Anmeldung als Master-User in der Identität eines anderen Benutzers von einem entfernten Rechner möglich ist, kann nachfolgender Befehl genutzt werden:

# telnet 192.168.0.80 143
Trying 192.168.0.80...
Connected to 192.168.0.80.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=DIGEST-MD5
AUTH=CRAM-MD5 AUTH=LOGIN] Dovecot ready.
a1 login klaus@tachtler.net*masteruser geheim
a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES
THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY
MOVE SPECIAL-USE] Logged in
a2 list "" "*"
* LIST (\HasChildren) "/" INBOX
a2 OK List completed (0.000 secs).
a3 logout
* BYE Logging out
a3 OK Logout completed.
Connection closed by foreign host.

Erforderliche Benutzereingaben:

  1. telnet 192.168.0.80 143
  2. a1 login klaus@tachtler.net*masteruser geheim
  3. a2 list "" "*"
  4. a3 logout
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/dovecot_master-user.txt · Zuletzt geändert: 2015/07/09 13:45 von klaus