Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dovecot_centos_7

Dovecot CentOS 7

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

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: 

Vorbereitungen

Bevor mit der Installation, Konfiguration und der Inbetriebnahme von Dovecot begonnen werden kann, soll hier kurz dargestellt werden, welche Art von Einsatz von Dovecot hier realisiert werden soll.

Vorbereitung - Einsatzzweck

Der nachfolgend beschrieben Einsatzzweck, soll einen Dovecot in eher kleinerer Ausführung darstellen, was jedoch nicht bedeutet, das die nachfolgend beschriebene Installation und Konfiguration, nicht auch für eine

  • Anzahl von mehreren hundert Benutzern mit bis zu einem
  • Datenvolumen von 3 TB Plattenspeicherplatz ermöglichen würde.

Größere Installationen würden jedoch ein etwas anderes, abern nicht grundlegend anderes Vorgehen benötigen!

Vorbereitung - Mailbox-Format

Eine der Entscheidungen sollte sein, welches „Ablagesystem“ Mailbox-Format zum Einsatz kommen soll.

Grundsätzlich gibt es drei sehr bekannte und häufig benutzte „Ablagesysteme“ Mailbox-Formate:

  1. MailDir - siehe auch, externe Links Maildir, Wikipedia - Maildir
    • ✔ jede e-Mail liegt in einer eigenen Datei direkt im Dateisystem
    • ✔ robust, einfach wartbar da nur Ordnerstruktur im Dateisystem
    • ✔ keine Datenbank im Hintergrund, keine Dataisystem-Locking-Mechanismen, NFS-fähig
    • ✘ viele kleine Dateien, aufwendiger beim Backup (Sicherung) der Dateien
    • Einsatz bis ca. 3 TB empfohlen
  2. mbox - siehe auch, externe Links Mbox, Wikipedia - Mbox
    • ✔ schnelleres Backup (Sicherung) da nur wenige Dateien
    • ✘ Dateisystem-Locking-Mechanismen werden benötigt
    • ✘ höhere I/O-Last beim löschen von e-Mails aus der einen großen Datei
    • ✘ Risiko, da alle e-Mails in einer großen Datei, direkt im Dateisystem liegen
    • :!: Einsatz nicht mehr zu empfehlen
  3. (m)dbox - siehe auch, externer Link (m)dbox
    • ✔ schnelleres Backup (Sicherung) da nur wenige Dateien
    • ✔ Verwendung vin aktuelle zwei Speicherorten (ALT-Storage) möglich
    • ✔ optimiertes Dovecot eigenes Format für größere Installationen
    • ✘ Verwendung einer eingebetteten, internen Datenbank (Wikipedia - Berkely DB) im Hintergrund
    • ☛ Administration nur noch über doveadm-Befehle möglich = höheres „KnowHow“ erforderlich
    • ☛ bei der Sicherung (Backup) muss die Datenbank und die Abhängigkeit zu dieser berücksichtigt werden
    • Einsatz ab ca. 3 TB empfohlen

Vorbereitung - Authentifizierung

Eine weitere der Entscheidungen sollte ebenfalls sein, wie sich die Benutzer authentifizieren sollen

Die Authentifizierung bei Dovecot wird als, und soll auch hier als

  • passdb

Konfiguration beschrieben werden.

Mögliche Verfahren sind hier:

  • PAM (/etc/passwd)
  • passwd-file (/etc/dovecot/users) - für Benutzer ohne Login-shell Möglichkeit
  • LDAP
  • ActiveDirectory
  • SQL

um nur einige zu nennen.

Eine weitere Überlegung sollte sein, wie die Kennung für eine Anmeldung an Dovecot aussehen soll.

Nachfolgende zwei Lösungswege sollten in die Überlegungen mit einbezogen werden, beide haben Vor- und Nachteile:

  1. Kennung = e-Mail-Adresse (localpart@domain)
  2. Kennung = username

Vorbereitung - Kontodatenablage

Eine weitere der Entscheidungen sollte ebenfalls sein, wo ggf. weitere Kontodaten / benutzerspezifische Einstellungen für Dovecot hinterlegt werden können.

Die Hinterlegung von Kontodaten / benutzerspezifische Einstellungen wird als, und soll auch hier als

  • userdb

Konfiguration beschrieben werden.

Mögliche Verfahren sind hier:

  • passwd-file (/etc/dovecot/users) - für Benutzer ohne Login-shell Möglichkeit
  • LDAP
  • ActiveDirectory
  • SQL

um nur einige zu nennen.

Beispiele für die Hinterlegung von Kontodaten / benutzerspezifische Einstellungen in Dovecot wären z.B.

  • benutzerspezifische Quotas
  • abweichende Login-Namen zur e-Mail-Adresse
  • Pfadspezifikationen für die e-Mail-Verzeichnisse

Vorbereitung - IMAP-Namensraum

Der IMAP-Namensraum legt fest, welche der beiden Varianten der Darstellung von Ordnern im Hierarchiebaum anzuwenden ist. Die beiden Möglichkeiten sind.

  1. dürfen Ordner in der gleichen Hierarchieebene wie die INBOX vorhanden sein
  2. dürfen Ordner nur unterhalb der Hierarchieebene wie die INBOX vorhanden sein

Des weiteren ist festzulegen, welches Trennzeichnen für Trennung der einzelnen Hierarchien voneinander verwendet werden soll. Historisch bedingt ist das der Punkt (.). Oder sollte ggf., wenn Punkte z.B. in den e-Mail-Adressen erlaubt sind, dies der Schrägstrich (/) sein.

Vorbereitung - Ordner-Prefix

Des weiteren ist festzulegen, welcher Ordner-Prefix für Trennung der einzelnen Hierarchien voneinander verwendet werden soll. Historisch bedingt ist das der Punkt (.). Oder sollte ggf., wenn Punkte z.B. in den e-Mail-Adressen erlaubt sind, dies der Schrägstrich (/) sein.

Festzulegen ist also, welche der beiden nachfolgenden Varianten gewählt werden soll.

  1. INBOX, INBOX.Unterordner, INBOX.Unterordner.Unterordner
  2. INBOX, INBOX\/Unterordner, INBOX\/Unterordner\/Unterordner

Paketinformation

Jede ernst zunehmende Linux-Distribution sollte ein vorkonfiguriertes Dovecot-Paket mit sich bringen. Deswegen ist eine Installation auch unter CentOS eine Sache des Paket-Managers yum.

Zur Installation eines Dovecot-Open-Source-IMAP-und POP3-E-Mail-Servers wird nachfolgendes Paket benötigt:

  • dovecot - ist im base-Repository von CentOS enthalten.

Wer die neuste Version des Dovecot-Open-Source-IMAP-und POP3-E-Mail-Servers als rpm-Paket installieren möchte, kann unter nachfolgenden externen Links, diese herunterladen:

Herunterladen

Nachfolgend soll ein Drittanbieter-Repository, welches von dem mir sehr geschätzten Michael Nausch betrieben wird und eine sichere und verlässliche Quelle für rpm-Pakete darstellt, wie unter nachfolgendem internen Link dargestellt, eingebunden werden:

Installation

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das rpm-Paket - dovecot installiert werden:

# yum install dovecot
Loaded plugins: changelog, priorities
102 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package dovecot.x86_64 1:2.2.18-1.el7.centos will be installed
--> Processing Dependency: libicuuc.so.50()(64bit) for package: 1:dovecot-2.2.18-1.el7.centos.x86_64
--> Processing Dependency: libicui18n.so.50()(64bit) for package: 1:dovecot-2.2.18-1.el7.centos.x86_64
--> Processing Dependency: libicudata.so.50()(64bit) for package: 1:dovecot-2.2.18-1.el7.centos.x86_64
--> Processing Dependency: libclucene-shared.so.1()(64bit) for package: 1:dovecot-2.2.18-1.el7.centos.x86_64
--> Processing Dependency: libclucene-core.so.1()(64bit) for package: 1:dovecot-2.2.18-1.el7.centos.x86_64
--> Running transaction check
---> Package clucene-core.x86_64 0:2.3.3.4-11.el7 will be installed
---> Package libicu.x86_64 0:50.1.2-11.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package         Arch      Version                  Repository             Size
================================================================================
Installing:
 dovecot         x86_64    1:2.2.18-1.el7.centos    mailserver.guru-os    3.4 M
Installing for dependencies:
 clucene-core    x86_64    2.3.3.4-11.el7           base                  528 k
 libicu          x86_64    50.1.2-11.el7            base                  6.9 M

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 11 M
Installed size: 37 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): dovecot-2.2.18-1.el7.centos.x86_64.rpm              | 3.4 MB   00:00     
(2/3): clucene-core-2.3.3.4-11.el7.x86_64.rpm              | 528 kB   00:00     
(3/3): libicu-50.1.2-11.el7.x86_64.rpm                     | 6.9 MB   00:00     
--------------------------------------------------------------------------------
Total                                               18 MB/s |  11 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libicu-50.1.2-11.el7.x86_64                                  1/3 
  Installing : clucene-core-2.3.3.4-11.el7.x86_64                           2/3 
  Installing : 1:dovecot-2.2.18-1.el7.centos.x86_64                         3/3 
  Verifying  : clucene-core-2.3.3.4-11.el7.x86_64                           1/3 
  Verifying  : 1:dovecot-2.2.18-1.el7.centos.x86_64                         2/3 
  Verifying  : libicu-50.1.2-11.el7.x86_64                                  3/3 

Installed:
  dovecot.x86_64 1:2.2.18-1.el7.centos                                          

Dependency Installed:
  clucene-core.x86_64 0:2.3.3.4-11.el7       libicu.x86_64 0:50.1.2-11.el7      

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket dovecot installiert wurden.

# rpm -qil dovecot
Name        : dovecot
Epoch       : 1
Version     : 2.2.18
Release     : 1.el7.centos
Architecture: x86_64
Install Date: Wed 08 Jul 2015 02:31:05 PM CEST
Group       : System Environment/Daemons
Size        : 11259257
License     : MIT and LGPLv2
Signature   : RSA/SHA1, Thu 21 May 2015 11:19:07 PM CEST, Key ID 60ecfb9e8195aea0
Source RPM  : dovecot-2.2.18-1.el7.centos.src.rpm
Build Date  : Thu 21 May 2015 11:17:58 PM CEST
Build Host  : vml000200.dmz.nausch.org
Relocations : (not relocatable)
Packager    : Django <django@mailserver.guru>
URL         : http://www.dovecot.org/
Summary     : Secure imap and pop3 server
Description :
Dovecot is an IMAP server for Linux/UNIX-like systems, written with security
primarily in mind.  It also contains a small POP3 server.  It supports mail
in either of maildir or mbox formats.

The SQL drivers and authentication plug-ins are in their subpackages.
/etc/dovecot
/etc/dovecot/conf.d
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/10-director.conf
/etc/dovecot/conf.d/10-logging.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf
/etc/dovecot/conf.d/15-lda.conf
/etc/dovecot/conf.d/15-mailboxes.conf
/etc/dovecot/conf.d/20-imap.conf
/etc/dovecot/conf.d/20-lmtp.conf
/etc/dovecot/conf.d/20-pop3.conf
/etc/dovecot/conf.d/90-acl.conf
/etc/dovecot/conf.d/90-plugin.conf
/etc/dovecot/conf.d/90-quota.conf
/etc/dovecot/conf.d/auth-checkpassword.conf.ext
/etc/dovecot/conf.d/auth-deny.conf.ext
/etc/dovecot/conf.d/auth-dict.conf.ext
/etc/dovecot/conf.d/auth-ldap.conf.ext
/etc/dovecot/conf.d/auth-master.conf.ext
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/conf.d/auth-static.conf.ext
/etc/dovecot/conf.d/auth-system.conf.ext
/etc/dovecot/conf.d/auth-vpopmail.conf.ext
/etc/dovecot/dovecot.conf
/etc/pam.d/dovecot
/etc/pki/dovecot
/etc/pki/dovecot/certs
/etc/pki/dovecot/certs/dovecot.pem
/etc/pki/dovecot/dovecot-openssl.cnf
/etc/pki/dovecot/private
/etc/pki/dovecot/private/dovecot.pem
/usr/bin/doveadm
/usr/bin/doveconf
/usr/bin/dsync
/usr/lib/systemd/system/dovecot.service
/usr/lib/systemd/system/dovecot.socket
/usr/lib/tmpfiles.d/dovecot.conf
/usr/lib64/dovecot
/usr/lib64/dovecot/auth
/usr/lib64/dovecot/auth/libauthdb_imap.so
/usr/lib64/dovecot/auth/libauthdb_ldap.so
/usr/lib64/dovecot/auth/libdriver_sqlite.so
/usr/lib64/dovecot/auth/libmech_gssapi.so
/usr/lib64/dovecot/dict
/usr/lib64/dovecot/dict/libdriver_sqlite.so
/usr/lib64/dovecot/doveadm
/usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so
/usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so
/usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so
/usr/lib64/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so
/usr/lib64/dovecot/doveadm/lib20_doveadm_fts_plugin.so
/usr/lib64/dovecot/lib01_acl_plugin.so
/usr/lib64/dovecot/lib02_imap_acl_plugin.so
/usr/lib64/dovecot/lib02_lazy_expunge_plugin.so
/usr/lib64/dovecot/lib05_pop3_migration_plugin.so
/usr/lib64/dovecot/lib05_snarf_plugin.so
/usr/lib64/dovecot/lib10_last_login_plugin.so
/usr/lib64/dovecot/lib10_mail_filter_plugin.so
/usr/lib64/dovecot/lib10_quota_plugin.so
/usr/lib64/dovecot/lib11_imap_quota_plugin.so
/usr/lib64/dovecot/lib11_trash_plugin.so
/usr/lib64/dovecot/lib15_notify_plugin.so
/usr/lib64/dovecot/lib20_autocreate_plugin.so
/usr/lib64/dovecot/lib20_expire_plugin.so
/usr/lib64/dovecot/lib20_fts_plugin.so
/usr/lib64/dovecot/lib20_listescape_plugin.so
/usr/lib64/dovecot/lib20_mail_log_plugin.so
/usr/lib64/dovecot/lib20_mailbox_alias_plugin.so
/usr/lib64/dovecot/lib20_quota_clone_plugin.so
/usr/lib64/dovecot/lib20_replication_plugin.so
/usr/lib64/dovecot/lib20_virtual_plugin.so
/usr/lib64/dovecot/lib20_zlib_plugin.so
/usr/lib64/dovecot/lib21_fts_lucene_plugin.so
/usr/lib64/dovecot/lib21_fts_solr_plugin.so
/usr/lib64/dovecot/lib21_fts_squat_plugin.so
/usr/lib64/dovecot/lib30_imap_zlib_plugin.so
/usr/lib64/dovecot/lib90_stats_plugin.so
/usr/lib64/dovecot/lib95_imap_stats_plugin.so
/usr/lib64/dovecot/libdovecot-compression.so.0
/usr/lib64/dovecot/libdovecot-compression.so.0.0.0
/usr/lib64/dovecot/libdovecot-dsync.so.0
/usr/lib64/dovecot/libdovecot-dsync.so.0.0.0
/usr/lib64/dovecot/libdovecot-lda.so.0
/usr/lib64/dovecot/libdovecot-lda.so.0.0.0
/usr/lib64/dovecot/libdovecot-login.so.0
/usr/lib64/dovecot/libdovecot-login.so.0.0.0
/usr/lib64/dovecot/libdovecot-sieve.so.0
/usr/lib64/dovecot/libdovecot-sieve.so.0.0.0
/usr/lib64/dovecot/libdovecot-sql.so.0
/usr/lib64/dovecot/libdovecot-sql.so.0.0.0
/usr/lib64/dovecot/libdovecot-storage.so.0
/usr/lib64/dovecot/libdovecot-storage.so.0.0.0
/usr/lib64/dovecot/libdovecot.so.0
/usr/lib64/dovecot/libdovecot.so.0.0.0
/usr/lib64/dovecot/libdriver_sqlite.so
/usr/lib64/dovecot/libfs_compress.so
/usr/lib64/dovecot/libssl_iostream_openssl.so
/usr/lib64/dovecot/settings
/usr/lib64/dovecot/stats
/usr/lib64/dovecot/stats/libstats_mail.so
/usr/libexec/dovecot
/usr/libexec/dovecot/aggregator
/usr/libexec/dovecot/anvil
/usr/libexec/dovecot/auth
/usr/libexec/dovecot/checkpassword-reply
/usr/libexec/dovecot/config
/usr/libexec/dovecot/decode2text.sh
/usr/libexec/dovecot/deliver
/usr/libexec/dovecot/dict
/usr/libexec/dovecot/director
/usr/libexec/dovecot/dns-client
/usr/libexec/dovecot/doveadm-server
/usr/libexec/dovecot/dovecot-lda
/usr/libexec/dovecot/gdbhelper
/usr/libexec/dovecot/imap
/usr/libexec/dovecot/imap-login
/usr/libexec/dovecot/imap-urlauth
/usr/libexec/dovecot/imap-urlauth-login
/usr/libexec/dovecot/imap-urlauth-worker
/usr/libexec/dovecot/indexer
/usr/libexec/dovecot/indexer-worker
/usr/libexec/dovecot/ipc
/usr/libexec/dovecot/lmtp
/usr/libexec/dovecot/log
/usr/libexec/dovecot/maildirlock
/usr/libexec/dovecot/mkcert.sh
/usr/libexec/dovecot/pop3
/usr/libexec/dovecot/pop3-login
/usr/libexec/dovecot/prestartscript
/usr/libexec/dovecot/quota-status
/usr/libexec/dovecot/rawlog
/usr/libexec/dovecot/replicator
/usr/libexec/dovecot/script
/usr/libexec/dovecot/script-login
/usr/libexec/dovecot/ssl-params
/usr/libexec/dovecot/stats
/usr/libexec/dovecot/xml2text
/usr/sbin/dovecot
/usr/share/doc/dovecot-2.2.18
/usr/share/doc/dovecot-2.2.18/AUTHORS
/usr/share/doc/dovecot-2.2.18/COPYING
/usr/share/doc/dovecot-2.2.18/COPYING.LGPL
/usr/share/doc/dovecot-2.2.18/COPYING.MIT
/usr/share/doc/dovecot-2.2.18/ChangeLog
/usr/share/doc/dovecot-2.2.18/NEWS
/usr/share/doc/dovecot-2.2.18/README
/usr/share/doc/dovecot-2.2.18/documentation.txt
/usr/share/doc/dovecot-2.2.18/dovecot-openssl.cnf
/usr/share/doc/dovecot-2.2.18/example-config
/usr/share/doc/dovecot-2.2.18/example-config/conf.d
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/10-auth.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/10-director.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/10-logging.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/10-mail.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/10-master.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/10-ssl.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/15-lda.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/15-mailboxes.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/20-imap.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/20-lmtp.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/20-pop3.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/90-acl.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/90-plugin.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/90-quota.conf
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-checkpassword.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-deny.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-dict.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-ldap.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-master.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-passwdfile.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-sql.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-static.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-system.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/conf.d/auth-vpopmail.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/dovecot-dict-auth.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/dovecot-dict-sql.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/dovecot-ldap.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/dovecot-sql.conf.ext
/usr/share/doc/dovecot-2.2.18/example-config/dovecot.conf
/usr/share/doc/dovecot-2.2.18/mkcert.sh
/usr/share/doc/dovecot-2.2.18/solr-schema.xml
/usr/share/doc/dovecot-2.2.18/wiki
/usr/share/doc/dovecot-2.2.18/wiki/ACL.txt
/usr/share/doc/dovecot-2.2.18/wiki/AixPluginsSupport.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.CheckPassword.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.Dict.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.LDAP.AuthBinds.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.LDAP.PasswordLookups.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.LDAP.Userdb.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.LDAP.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.Passwd.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.PasswdFile.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.SQL.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.VPopMail.txt
/usr/share/doc/dovecot-2.2.18/wiki/AuthDatabase.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.Caching.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.Kerberos.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.MasterUsers.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.Mechanisms.DigestMD5.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.Mechanisms.NTLM.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.Mechanisms.Winbind.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.Mechanisms.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.MultipleDatabases.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.PasswordSchemes.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.Penalty.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.RestrictAccess.txt
/usr/share/doc/dovecot-2.2.18/wiki/Authentication.txt
/usr/share/doc/dovecot-2.2.18/wiki/BasicConfiguration.txt
/usr/share/doc/dovecot-2.2.18/wiki/Chrooting.txt
/usr/share/doc/dovecot-2.2.18/wiki/Clients.NegativeUIDs.txt
/usr/share/doc/dovecot-2.2.18/wiki/Clients.txt
/usr/share/doc/dovecot-2.2.18/wiki/CompilingSource.txt
/usr/share/doc/dovecot-2.2.18/wiki/Debugging.Authentication.txt
/usr/share/doc/dovecot-2.2.18/wiki/Debugging.ProcessTracing.txt
/usr/share/doc/dovecot-2.2.18/wiki/Debugging.Rawlog.txt
/usr/share/doc/dovecot-2.2.18/wiki/Debugging.Thunderbird.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Arrays.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.AuthProcess.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.AuthProtocol.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Buffers.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Code.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.DoveadmProtocol.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Dsync.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Indexes.Cache.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Indexes.MailIndexApi.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Indexes.MainIndex.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Indexes.TransactionLog.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Indexes.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.InputStreams.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.MailProcess.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Memory.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.OutputStreams.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Plugins.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Processes.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.ErrorHandling.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.Mail.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.MailNamespace.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.MailStorage.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.MailUser.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.Mailbox.Save.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.Mailbox.Search.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.Mailbox.Sync.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.Mailbox.Transaction.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.Mailbox.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.MailboxList.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Storage.Plugins.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.Strings.txt
/usr/share/doc/dovecot-2.2.18/wiki/Design.txt
/usr/share/doc/dovecot-2.2.18/wiki/Dict.txt
/usr/share/doc/dovecot-2.2.18/wiki/Dictionary.txt
/usr/share/doc/dovecot-2.2.18/wiki/Director.txt
/usr/share/doc/dovecot-2.2.18/wiki/DomainLost.txt
/usr/share/doc/dovecot-2.2.18/wiki/Errors.ChgrpNoPerm.txt
/usr/share/doc/dovecot-2.2.18/wiki/FindMailLocation.txt
/usr/share/doc/dovecot-2.2.18/wiki/FinishBasicConfiguration.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.EximAndDovecotSASL.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.ImapcProxy.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.PopBSMTPAndDovecot.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.PopRelay.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.PostfixAndDovecotSASL.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.Rootless.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.SimpleVirtualInstall.txt
/usr/share/doc/dovecot-2.2.18/wiki/HowTo.txt
/usr/share/doc/dovecot-2.2.18/wiki/IndexFiles.txt
/usr/share/doc/dovecot-2.2.18/wiki/LDA.Exim.txt
/usr/share/doc/dovecot-2.2.18/wiki/LDA.Indexing.txt
/usr/share/doc/dovecot-2.2.18/wiki/LDA.Postfix.txt
/usr/share/doc/dovecot-2.2.18/wiki/LDA.Qmail.txt
/usr/share/doc/dovecot-2.2.18/wiki/LDA.Sendmail.txt
/usr/share/doc/dovecot-2.2.18/wiki/LDA.txt
/usr/share/doc/dovecot-2.2.18/wiki/LMTP.Exim.txt
/usr/share/doc/dovecot-2.2.18/wiki/LMTP.txt
/usr/share/doc/dovecot-2.2.18/wiki/Logging.txt
/usr/share/doc/dovecot-2.2.18/wiki/LoginProcess.txt
/usr/share/doc/dovecot-2.2.18/wiki/MDA.txt
/usr/share/doc/dovecot-2.2.18/wiki/MTA.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailLocation.LocalDisk.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailLocation.Maildir.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailLocation.SharedDisk.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailLocation.dbox.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailLocation.mbox.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailLocation.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.Cydir.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.MH.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.Maildir.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.dbox.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.mailstore.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.mbox.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.mbx.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxFormat.txt
/usr/share/doc/dovecot-2.2.18/wiki/MailboxSettings.txt
/usr/share/doc/dovecot-2.2.18/wiki/MboxChildFolders.txt
/usr/share/doc/dovecot-2.2.18/wiki/MboxLocking.txt
/usr/share/doc/dovecot-2.2.18/wiki/MboxProblems.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.BincIMAP.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Courier.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Cyrus.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Dsync.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Gmail.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Linuxconf.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.MailFormat.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Online.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Teapop.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.UW.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.Vm-pop3d.txt
/usr/share/doc/dovecot-2.2.18/wiki/Migration.txt
/usr/share/doc/dovecot-2.2.18/wiki/MissingMailboxes.txt
/usr/share/doc/dovecot-2.2.18/wiki/Mountpoints.txt
/usr/share/doc/dovecot-2.2.18/wiki/NFS.txt
/usr/share/doc/dovecot-2.2.18/wiki/Namespaces.txt
/usr/share/doc/dovecot-2.2.18/wiki/OSCompatibility.txt
/usr/share/doc/dovecot-2.2.18/wiki/POP3Server.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.BSDAuth.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.ExtraFields.AllowNets.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.ExtraFields.Host.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.ExtraFields.NoDelay.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.ExtraFields.NoLogin.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.ExtraFields.Proxy.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.ExtraFields.User.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.ExtraFields.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.IMAP.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.PAM.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.Shadow.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.Static.txt
/usr/share/doc/dovecot-2.2.18/wiki/PasswordDatabase.txt
/usr/share/doc/dovecot-2.2.18/wiki/PerformanceTuning.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Installation.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.ManageSieve.Clients.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.ManageSieve.Configuration.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.ManageSieve.Install.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.ManageSieve.Troubleshooting.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.ManageSieve.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Configuration.Dict.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Configuration.File.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Configuration.LDAP.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Configuration.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Examples.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Extensions.Duplicate.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Extensions.Editheader.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Extensions.Include.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Extensions.SpamtestVirustest.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Extensions.Vacation.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Extensions.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Plugins.Extdata.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Plugins.Extprograms.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Plugins.Pipe.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Plugins.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Troubleshooting.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.Usage.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.Sieve.txt
/usr/share/doc/dovecot-2.2.18/wiki/Pigeonhole.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Autocreate.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Compress.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Expire.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.FTS.Lucene.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.FTS.Solr.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.FTS.Squat.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.FTS.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.LastLogin.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Lazyexpunge.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Listescape.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.MailFilter.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.MailLog.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.MailboxAlias.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Notify.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.QuotaClone.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Snarf.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Stats.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Trash.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Virtual.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.Zlib.txt
/usr/share/doc/dovecot-2.2.18/wiki/Plugins.txt
/usr/share/doc/dovecot-2.2.18/wiki/PostLoginScripting.txt
/usr/share/doc/dovecot-2.2.18/wiki/PreAuth.txt
/usr/share/doc/dovecot-2.2.18/wiki/QuickConfiguration.txt
/usr/share/doc/dovecot-2.2.18/wiki/Quota.Configuration.txt
/usr/share/doc/dovecot-2.2.18/wiki/Quota.Dict.txt
/usr/share/doc/dovecot-2.2.18/wiki/Quota.Dirsize.txt
/usr/share/doc/dovecot-2.2.18/wiki/Quota.FS.txt
/usr/share/doc/dovecot-2.2.18/wiki/Quota.Maildir.txt
/usr/share/doc/dovecot-2.2.18/wiki/Quota.txt
/usr/share/doc/dovecot-2.2.18/wiki/Replication.txt
/usr/share/doc/dovecot-2.2.18/wiki/RunningDovecot.txt
/usr/share/doc/dovecot-2.2.18/wiki/SSL.CertificateClientImporting.txt
/usr/share/doc/dovecot-2.2.18/wiki/SSL.CertificateCreation.txt
/usr/share/doc/dovecot-2.2.18/wiki/SSL.DovecotConfiguration.txt
/usr/share/doc/dovecot-2.2.18/wiki/SSL.SNIClientSupport.txt
/usr/share/doc/dovecot-2.2.18/wiki/SSL.txt
/usr/share/doc/dovecot-2.2.18/wiki/Sasl.txt
/usr/share/doc/dovecot-2.2.18/wiki/SecurityTuning.txt
/usr/share/doc/dovecot-2.2.18/wiki/Services.txt
/usr/share/doc/dovecot-2.2.18/wiki/SharedMailboxes.ClusterSetup.txt
/usr/share/doc/dovecot-2.2.18/wiki/SharedMailboxes.Permissions.txt
/usr/share/doc/dovecot-2.2.18/wiki/SharedMailboxes.Public.txt
/usr/share/doc/dovecot-2.2.18/wiki/SharedMailboxes.Shared.txt
/usr/share/doc/dovecot-2.2.18/wiki/SharedMailboxes.Symlinks.txt
/usr/share/doc/dovecot-2.2.18/wiki/SharedMailboxes.txt
/usr/share/doc/dovecot-2.2.18/wiki/SocketUnavailable.txt
/usr/share/doc/dovecot-2.2.18/wiki/Statistics.txt
/usr/share/doc/dovecot-2.2.18/wiki/SystemUsers.txt
/usr/share/doc/dovecot-2.2.18/wiki/TestInstallation.txt
/usr/share/doc/dovecot-2.2.18/wiki/TestPop3Installation.txt
/usr/share/doc/dovecot-2.2.18/wiki/TimeMovedBackwards.txt
/usr/share/doc/dovecot-2.2.18/wiki/Timeouts.txt
/usr/share/doc/dovecot-2.2.18/wiki/Upgrading.1.0.txt
/usr/share/doc/dovecot-2.2.18/wiki/Upgrading.1.1.txt
/usr/share/doc/dovecot-2.2.18/wiki/Upgrading.1.2.txt
/usr/share/doc/dovecot-2.2.18/wiki/Upgrading.2.0.txt
/usr/share/doc/dovecot-2.2.18/wiki/Upgrading.2.1.txt
/usr/share/doc/dovecot-2.2.18/wiki/Upgrading.2.2.txt
/usr/share/doc/dovecot-2.2.18/wiki/Upgrading.txt
/usr/share/doc/dovecot-2.2.18/wiki/UserDatabase.ExtraFields.txt
/usr/share/doc/dovecot-2.2.18/wiki/UserDatabase.NSS.txt
/usr/share/doc/dovecot-2.2.18/wiki/UserDatabase.Prefetch.txt
/usr/share/doc/dovecot-2.2.18/wiki/UserDatabase.Static.txt
/usr/share/doc/dovecot-2.2.18/wiki/UserDatabase.txt
/usr/share/doc/dovecot-2.2.18/wiki/UserIds.txt
/usr/share/doc/dovecot-2.2.18/wiki/Variables.txt
/usr/share/doc/dovecot-2.2.18/wiki/VirtualUsers.Home.txt
/usr/share/doc/dovecot-2.2.18/wiki/VirtualUsers.txt
/usr/share/doc/dovecot-2.2.18/wiki/WhyDoesItNotWork.txt
/usr/share/doc/dovecot-2.2.18/wiki/maildrop.txt
/usr/share/doc/dovecot-2.2.18/wiki/mutt.txt
/usr/share/doc/dovecot-2.2.18/wiki/uw2dovecot.sh.txt
/usr/share/man/man1/deliver.1.gz
/usr/share/man/man1/doveadm-acl.1.gz
/usr/share/man/man1/doveadm-altmove.1.gz
/usr/share/man/man1/doveadm-auth.1.gz
/usr/share/man/man1/doveadm-backup.1.gz
/usr/share/man/man1/doveadm-batch.1.gz
/usr/share/man/man1/doveadm-config.1.gz
/usr/share/man/man1/doveadm-copy.1.gz
/usr/share/man/man1/doveadm-deduplicate.1.gz
/usr/share/man/man1/doveadm-director.1.gz
/usr/share/man/man1/doveadm-dump.1.gz
/usr/share/man/man1/doveadm-exec.1.gz
/usr/share/man/man1/doveadm-expunge.1.gz
/usr/share/man/man1/doveadm-fetch.1.gz
/usr/share/man/man1/doveadm-flags.1.gz
/usr/share/man/man1/doveadm-force-resync.1.gz
/usr/share/man/man1/doveadm-fts.1.gz
/usr/share/man/man1/doveadm-help.1.gz
/usr/share/man/man1/doveadm-import.1.gz
/usr/share/man/man1/doveadm-index.1.gz
/usr/share/man/man1/doveadm-instance.1.gz
/usr/share/man/man1/doveadm-kick.1.gz
/usr/share/man/man1/doveadm-log.1.gz
/usr/share/man/man1/doveadm-mailbox.1.gz
/usr/share/man/man1/doveadm-mount.1.gz
/usr/share/man/man1/doveadm-move.1.gz
/usr/share/man/man1/doveadm-penalty.1.gz
/usr/share/man/man1/doveadm-proxy.1.gz
/usr/share/man/man1/doveadm-purge.1.gz
/usr/share/man/man1/doveadm-pw.1.gz
/usr/share/man/man1/doveadm-quota.1.gz
/usr/share/man/man1/doveadm-reload.1.gz
/usr/share/man/man1/doveadm-replicator.1.gz
/usr/share/man/man1/doveadm-search.1.gz
/usr/share/man/man1/doveadm-sieve.1.gz
/usr/share/man/man1/doveadm-stop.1.gz
/usr/share/man/man1/doveadm-sync.1.gz
/usr/share/man/man1/doveadm-user.1.gz
/usr/share/man/man1/doveadm-who.1.gz
/usr/share/man/man1/doveadm.1.gz
/usr/share/man/man1/doveconf.1.gz
/usr/share/man/man1/dovecot-lda.1.gz
/usr/share/man/man1/dovecot.1.gz
/usr/share/man/man1/dsync.1.gz
/usr/share/man/man5/dovecot.conf.5.gz
/usr/share/man/man7/doveadm-search-query.7.gz
/var/lib/dovecot
/var/run/dovecot
/var/run/dovecot/empty
/var/run/dovecot/login
/var/run/dovecot/token-login

Installierte Benutzer

Folgender Benutzer wurde ebenfalls angelegt, was mit folgende Befehl überprüft werden kann:

# cat /etc/passwd | grep dove
dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin
dovenull:x:400:400:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin
vmail:x:10000:10000:Dovecot's vmail systemuser:/usr/libexec/dovecot:/sbin/nologin

Desweiteren wurden auch folgende Gruppen angelegt, was mit folgendem Befehl überprüft werden kann:

# cat /etc/group | grep dove
dovecot:x:97:
dovenull:x:400:

Dienst/Deamon-Start einrichten

Um einen Dovecot, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable dovecot.service
ln -s '/usr/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'

Eine Überprüfung, ob beim Neustart des Server der dovecot-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e dovecot.service
dovecot.service                        enabled

bzw.

# systemctl is-enabled dovecot.service
enabled

iptables Regel

Damit der Dovecot als Postfach-Server auch erreichbar ist und nicht die Weitergabe der IP-Paket vom Paketfilter iptables blockiert wird, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22  
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Nachfolgender Befehl, fügt folgende iptables-Regeln dem iptables-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p tcp --dport 24 -j ACCEPT
  • -A INPUT -p tcp --dport 143 -j ACCEPT
  • -A INPUT -p tcp --dport 993 -j ACCEPT
  • -A INPUT -p tcp --dport 4190 -j ACCEPT
  • -A INPUT -p tcp --dport 12340 -j ACCEPT

und hier der Befehl:

# iptables -I INPUT 5 -p tcp --dport 24 -j ACCEPT
# iptables -I INPUT 6 -p tcp --dport 143 -j ACCEPT
# iptables -I INPUT 7 -p tcp --dport 993 -j ACCEPT
# iptables -I INPUT 8 -p tcp --dport 4190 -j ACCEPT
# iptables -I INPUT 9 -p tcp --dport 12340 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:24 state NEW
6        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143 state NEW
7        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993 state NEW
8        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:4190 state NEW
9        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:12340 state NEW
10       0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Die neuen Zeilen sind an Position 5 (INPUT) bis Position 9 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
5        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:24 state NEW
6        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143 state NEW
7        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993 state NEW
8        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:4190 state NEW
9        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:12340 state NEW
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# /usr/sbin/iptables-save > /etc/sysconfig/iptables 

Konfiguration - Grundlagen

Die Konfiguration von Dovecot wird in nachfolgenden Dateien durchgeführt:

  • /etc/dovecot/dovecot.conf

und in allen Dateien mit der Endung - .conf - welche sich im Verzeichnis

  • /etc/dovecot/conf.d/*.conf

befinden - und

  • /etc/dovecot/local.conf

welche die Möglichkeit bietet, die in Ihr gesetzten Konfigurationswerte zu überschreiben, auch wenn diese in vorhergehenden Konfigurationsdateien (abweichend) gesetzt wurden.

:!: HINWEIS - /etc/dovecot/local.conf kann, muss aber nicht vorhanden sein, was an der Art und Weise liegt, wie diese in der Konfigurationsdatei /etc/dovecot/dovecot.conf eingebunden ist. (Siehe hierzu das Ende der Konfigurationsdatei
/etc/dovecot/dovecot.conf

(Nur relevanter Ausschnitt)

...
# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf

# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf

Mit nachfolgendem Befehl, können die Konfigurationsverzeichnisse von Dovecot aufgelistet werden:

# ll /etc/dovecot/*
-rw-r--r-- 1 root root 4380 Jun  2  2014 /etc/dovecot/dovecot.conf

/etc/dovecot/conf.d:
total 112
-rw-r--r-- 1 root root  5296 Jun  2  2014 10-auth.conf
-rw-r--r-- 1 root root  1893 Jun  2  2014 10-director.conf
-rw-r--r-- 1 root root  2727 Jun  2  2014 10-logging.conf
-rw-r--r-- 1 root root 15327 May 21 23:09 10-mail.conf
-rw-r--r-- 1 root root  3383 Jun  2  2014 10-master.conf
-rw-r--r-- 1 root root  2443 May 21 23:11 10-ssl.conf
-rw-r--r-- 1 root root  1668 Jun  2  2014 15-lda.conf
-rw-r--r-- 1 root root  1137 Jun  2  2014 15-mailboxes.conf
-rw-r--r-- 1 root root  2425 Jun  2  2014 20-imap.conf
-rw-r--r-- 1 root root   936 May  7 16:29 20-lmtp.conf
-rw-r--r-- 1 root root  4007 Jun  2  2014 20-pop3.conf
-rw-r--r-- 1 root root   676 Jun  2  2014 90-acl.conf
-rw-r--r-- 1 root root   292 Jun  2  2014 90-plugin.conf
-rw-r--r-- 1 root root  2502 Jun  2  2014 90-quota.conf
-rw-r--r-- 1 root root   499 Jun  2  2014 auth-checkpassword.conf.ext
-rw-r--r-- 1 root root   489 Jun  2  2014 auth-deny.conf.ext
-rw-r--r-- 1 root root   343 Jun  2  2014 auth-dict.conf.ext
-rw-r--r-- 1 root root   924 Jun  2  2014 auth-ldap.conf.ext
-rw-r--r-- 1 root root   561 Jun  2  2014 auth-master.conf.ext
-rw-r--r-- 1 root root   515 Jun  2  2014 auth-passwdfile.conf.ext
-rw-r--r-- 1 root root   788 Jun  2  2014 auth-sql.conf.ext
-rw-r--r-- 1 root root   611 Jun  2  2014 auth-static.conf.ext
-rw-r--r-- 1 root root  2185 Jun  2  2014 auth-system.conf.ext
-rw-r--r-- 1 root root   330 Jun  2  2014 auth-vpopmail.conf.ext

doveconf

Ähnlich wie auch bei Postfix, gibt es bei Dovecot ein Werzeug, mit dem die Konfiguration zur Anzeige gebracht werden kann:

  • /usr/bin/doveconf.

Nachfolgende Übersicht, zeigt eine kleine Auswahl an Optionen, welche mit dem Befehl angewannt werden können:

Befehl Beschreibung
# doveconf
Listet die aktuelle Konfiguration auf
# doveconf -a 
Listet ebenfalls die aktuelle Konfiguration auf
# doveconf -d 
Listet nur die default Konfigurationswerte auf, anstelle der aktuellen Konfiguration
# doveconf -m <MODUL> 
Listet die aktuelle Konfiguration, aber nur auf das angegeben Modul auf - \\z.B.: imap, imap-login, lmtp, pop3 und pop3-login
# doveconf -n 
Listet nur alle nicht Standard Konfigurationswerte auf
# doveconf -N 
Listet alle nicht Standard Konfigurationswerte und zusätzlich alle explizit gesetzten Standard Konfigurationswerte auf

Eine aktuelle und vollständige Liste aller Optionen, bringt die man-Page von /usr/bin/doveconf mit, welche mit nachfolgendem Befehl zur Anzeige gebracht werden kann:

# man doveconf

Abschließend eine Auflistung aller nicht Standard Konfigurationswerte, welche nach der Installation bereits gesetzt sind (Distributionsabhängig), was mit nachfolgendem Befehl durchgeführt werden kann:

# 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)  
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 = 
}
passdb {
  driver = pam
}
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}

Konfiguration - Basiskonfiguration

/etc/dovecot/dovecot.conf

Nachfolgend sollen die ersten grundlegenden Konfigurationen vorgenommen werden.

protocols

Ein der ersten Entscheidungen kann sein, welches Protokoll der Dovecot überhaupt zur Kommunikation mit dem Client anbieten soll.

Nachfolgend kann z.B. durch eine Änderung des Standard, hier z.B. das Protokoll pop3 - nicht mehr angeboten werden, was jedoch standardmäßig der Fall ist.

Nachfolgende Änderung zeigt nur noch die Verwendung der Protokolle - imap und lmtp. Dazu ist die Konfigurationsdatei /etc/dovecot/dovecot.conf wie folgt anzupassen (nur relevanter Ausschnitt):

...
# Protocols we want to be serving.
# Tachtler
# default: #protocols = imap pop3 lmtp
protocols = imap lmtp
...

listen

Weiterhin kann mit nachfolgender Einstellung bestimmt werden, auf welchen IP-Adressen Dovecot überhaupt zur Kommunikation mit dem Client lauschen soll.

Nachfolgend kann z.B. durch eine Änderung des Standard, hier z.B. die IP-Adressart IPv6 - nicht mehr angeboten werden, was jedoch standardmäßig der Fall ist.

Nachfolgende Änderung zeigt nur noch die Verwendung der IP-Adressen aus dem Bereich - IPv4. Dazu ist die Konfigurationsdatei /etc/dovecot/dovecot.conf wie folgt anzupassen (nur relevanter Ausschnitt):

...
# A comma separated list of IPs or hosts where to listen in for connections. 
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
# Tachtler
# default: #listen = *, ::
listen = *
...

verbose_proctitle

Mit dieser Einstellung kann festgelegt werden, das weitere Informationen zum aktuell bei Dovecot angemeldeten Benutzer, in der Prozessliste-/übersicht, welche z.B. mit dem Befehl ps zur Anzeige gebracht werden kann, aufgelistet werden. Es spielt hierbei keine Rolle, über welches Protokoll der Benutzer bei Dovecot angemeldet ist.

Nachfolgende Einstellung aktiviert die erweiterte Anzeige beim Befehl ps und der Prozessliste-/übersicht der bei Dovecot angemeldeten Benutzer (nur relevanter Ausschnitt):

...
# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
# Tachtler
# default: #verbose_proctitle = no
verbose_proctitle = yes
...

Nachfolgende Befehle demonstrieren die Anzeige eines bei Dovecot angemeldeten Benutzer, einmal - ohne und einmal mit - erweiterter Prozessliste-/übersicht.

ohne - erweiterter Prozessliste-/übersicht

# ps ax | grep dovecot/imap
11346 ?        S      0:00 dovecot/imap
11348 pts/2    S+     0:00 grep --color=auto dovecot/imap

mit - erweiterter Prozessliste-/übersicht

# ps ax | grep dovecot/imap
11530 ?        S      0:00 dovecot/imap [username@example.com 192.168.0.4]
11532 pts/1    S+     0:00 grep --color=auto dovecot/imap

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

Zu beginn einer neuen Dovecot Installation, kann es hilfreich sein das Logging bzw. das Loglevel so zu konfigurieren, dass ein erweitertes Logging in der Log-Datei

  • /var/log/maillog

erfolgt.

auth_verbose

Durch setzen des Konfigurationswertes wie nachfolgend beschrieben, werden alle nicht erfolgreichen Anmeldeversuche und der Grund für die nicht erfolgreiche Anmeldung zusätzlich in die Log-Datei /var/log/maillog geschrieben (nur relevanter Ausschnitt).

...
##
## Logging verbosity and debugging.
##
 
# Log unsuccessful authentication attempts and the reasons why they failed.
# Tachtler
# default: #auth_verbose = no
auth_verbose = yes
...

auth_debug

Durch setzen des Konfigurationswertes wie nachfolgend beschrieben, werden erweiterte Informationen, wie z.B. geladene Module, zusätzlich in die Log-Datei /var/log/maillog geschrieben (nur relevanter Ausschnitt).

...
# Even more verbose logging for debugging purposes. Shows for example SQL
# queries.
# Tachtler - INSTALLATION -
# default: #auth_debug = no
auth_debug = yes
...

auth_debug_passwords

Durch setzen des Konfigurationswertes wie nachfolgend beschrieben, werden Passwörter im Klartext und des zum Einsatz kommende Schema, zusätzlich in die Log-Datei /var/log/maillog geschrieben (nur relevanter Ausschnitt).

...
# In case of password mismatches, log the passwords and used scheme so the
# problem can be debugged. Enabling this also enables auth_debug.
# Tachtler - INSTALLATION -
# default: #auth_debug_passwords = no
auth_debug_passwords = yes
...

mail_debug

Durch setzen des Konfigurationswertes wie nachfolgend beschrieben, werden zusätzliche Informationen zum e-Mail-Prozess, wie z.B. Dovecot die e-Mail-Verzeichnisse des Benutzer ermittelt, zusätzlich in die Log-Datei /var/log/maillog geschrieben (nur relevanter Ausschnitt).

...
# Enable mail process debugging. This can help you figure out why Dovecot
# isn't finding your mails.
# Tachtler - INSTALLATION -
# default: #mail_debug = no
mail_debug = yes
...

:!: HINWEIS - Alle mit dem Kommentar versehenen Änderungen

# Tachtler - INSTALLATION -

sollten in PRODUKTIVEN Umgebungen nicht gesetzt werden!

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

In der Konfigurationsdatei wird festgelegt, welche Art von „Ablagesystem“ Mailbox-Format verwendet werden soll und wo die e-Mail (Postfächer) im Dateisystem abgelegt werden sollen und welche plugins verwendet werden.

mail_location

Durch setzen des Konfigurationswertes wie nachfolgend beschrieben, werden zwei Parameter bestimmt.

  1. Welche Art von „Ablagesystem“ Mailbox-Format verwendet werden soll
  2. Wo die e-Mail (Postfächer) im Dateisystem abgelegt werden sollen

Welche Arten von „Ablagesystem“ Mailbox-Format es gibt, kann unter nachfolgendem internen Link nachgelesen werden:

:!: HINWEIS - Hier soll das „Ablagesystem“ bzw. der Mailbox-Format Maildir verwendet werden!

(Nur relevanter Ausschnitt):

...
# There are a few special variables you can use, eg.:
#
#   %u - username
#   %n - user part in user@domain, same as %u if there's no domain
#   %d - domain part in user@domain, empty if there's no domain
#   %h - home directory
#
# See doc/wiki/Variables.txt for full list. Some examples:
#
#   mail_location = maildir:~/Maildir
#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
# <doc/wiki/MailLocation.txt>
#
# Tachtler
# default: #mail_location = 
mail_location = maildir:~/Maildir
...

:!: WICHTIG - Die Definition ~/ in mail_location = maildir:~/Maildir bedeutet nicht, das hier ein vorhandenes home-Verzeichnis eines existierenden Benutzer verwendet werden muss!

:!: HINWEIS - Die Angabe ~/ bedeutet vielmehr, dass hier eine Angabe erfolgt bei der unterhalb dieser Angabe dann der Ordner Maildir angelegt wird!

:!: HINWEIS - Das home-Verzeichnis bei virtuellen Benutzer, welche keine Login-shell haben, kann z.B. in einer separaten Datei passwd-file oder z.B. auch im LDAP definiert werden.

Erklärung:

mail_location = maildir:~/Maildir
Wert Beschreibung
maildir: Das verwendete Mailbox-Format ist das Maildir-Format
~ Dynamischer Pfad-Teil zum Dateisystem zum home-Verzeichnis
/Maildir Pfad-Trenner und Ordnername unter dem die Maildir-Struktur angelegt wird

Beispiel: Hinter der Angabe ~/ könnte sich z.B. nachfolgende Definition pro Benutzer verbergen:

  • /srv/vmail/%Ld/%Ln - localpart@domain = /srv/vmail/domain/localpart
  • /srv/vmail/%Lu - user123 = /srv/vmail/user123

Erklärung Nachfolgende Erklärungen zu oben gezeigtem Beispiel:

Wert Beschreibung
/%Lu Pfad-Trenner und variabler Pfad-Teil in Kleinschrift umgewandelter unername - z.B. user1234 oder auch locapart@domain sein
/%Ld Pfad-Trenner und variabler Pfad-Teil in Kleinschrift umgewandelter domain-Teil aus locapart@domain
/%Ln Pfad-Trenner und variabler Pfad-Teil in Kleinschrift umgewandelter localpart-Teil aus locapart@domain

namespace inbox

Nachfolgende Definitionen stellt die Konfiguration für die INBOX der Benutzers dar.

type

Der Standardwert ist hier auf private gesetzt. Nachfolgende Werte sind hier möglich

  • private = nur für den Benutzer ersichtlich
  • shared = ersichtlich für Benutzer, welche die entsprechenden Rechte (acl) freigegeben bzw. erhalten haben
  • public = wie shared, jedoch obliegt hier die Verwaltung keinem Benutzer, sondern dem System Administrator

:!: WICHTIG - Der hier gesetzte Standardwert type = private sollte beibehalten werden, da dies die persönliche mailbox des Benutzers darstellt und diese auch „privat“ bleiben sollte!

(Nur relevanter Ausschnitt):

...
# If you need to set multiple mailbox locations or want to change default
# namespace settings, you can do it by defining namespace sections.
#
# You can have private, shared and public namespaces. Private namespaces
# are for user's personal mails. Shared namespaces are for accessing other
# users' mailboxes that have been shared. Public namespaces are for shared
# mailboxes that are managed by sysadmin. If you create any shared or public
# namespaces you'll typically want to enable ACL plugin also, otherwise all
# users can access all the shared mailboxes, assuming they have permissions
# on filesystem level to do so.
namespace inbox {
  # Namespace type: private, shared or public
  #type = private
...
separator

Nachfolgend wird das Trennzeichen für die Hierarchieebenen festgelegt. Dies sollte für alle namespaces gleich sein und nicht unterschiedlich vergeben werden. Hier soll der Schrägstrich (/) verwendet werden!

(Nur relevanter Ausschnitt):

...
  # Hierarchy separator to use. You should use the same separator for all
  # namespaces or some clients get confused. '/' is usually a good one.
  # The default however depends on the underlying mail storage format.
  # Tachtler
  # default: #separator = 
  separator = /
...
prefix

Nachfolgend wird der Präfix, unter der der einzelne namespace erreichbar ist festgelegt. Dies sollte für jeden namespace unterschiedlich vergeben werden. Hier soll dies (INBOX/) sein!

(Nur relevanter Ausschnitt):

...
  # Prefix required to access this namespace. This needs to be different for
  # all namespaces. For example "Public/".
  # Tachtler
  # default: #prefix = 
  prefix = INBOX/
...
location

Die Angebe in einem namespace überschreibt die Angabe mail_location, welche außerhalb der jeweiligen namespace Definition bereits „global“ gesetzt wurde. Dies sollte jedoch auf dem Standardwert = leer belassen werden.

(Nur relevanter Ausschnitt):

...
  # Physical location of the mailbox. This is in same format as
  # mail_location, which is also the default for it.
  #location =
...
inbox

Diese Definition darf nur in einem namespace gesetzt werden, da nur ein namespace für die jeweilige INBOX des Benuters zeichnen kann. Das es sich hier um den namespace inbox handelt, sollte hier der Wert gesetzt sein.

(Nur relevanter Ausschnitt):

...
  # There can be only one INBOX, and this setting defines which namespace
  # has it.
  inbox = yes
...
hidden

Diese Definition kann dazu verwendet werden, ganze namespaces vor einem client zu verstecken.

(Nur relevanter Ausschnitt):

...
  # If namespace is hidden, it's not advertised to clients via NAMESPACE
  # extension. You'll most likely also want to set list=no. This is mostly
  # useful when converting from another server with different namespaces which
  # you want to deprecate but still keep working. For example you can create
  # hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
  #hidden = no
...
list

Diese Definition kann dazu verwendet werden, ganze namespaces vor einem client zu verstecken und ist ähnlich wie die Definition hidden, für Clients, die die namespace Erweiterung nicht interpretieren bzw. nicht verstehen.

(Nur relevanter Ausschnitt):

...
  # Show the mailboxes under this namespace with LIST command. This makes the
  # namespace visible for clients that don't support NAMESPACE extension.
  # "children" value lists child mailboxes, but hides the namespace prefix.
  #list = yes
...
subscriptions

Mit Dieser Definition wird festgelegt, das der namespace seine eigene „Abonnementenliste“ führt.

(Nur relevanter Ausschnitt):

...
  # Namespace handles its own subscriptions. If set to "no", the parent
  # namespace handles them (empty prefix should always have this as "yes")
  #subscriptions = yes
...

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

Damit Dovecot auch auf Anfragen von z.B. Postfix über das Protokoll lmtp, wie hier beschrieben

erreichbar ist, sind nachfolgende Einstellungen in der Konfigurationsdatei

  • /etc/dovecot/conf.d/10-master.conf

durchzuführen.

Es gibt zwei Möglichkeiten, wie Dovecot lmtp anbieten kann,

  1. unix-Socket - wenn der MTA z.B. Postfix und MDA Dovecot auf ein und dem selben Servern sind.
  2. TCP/IP-Verbindung - wenn der MTA z.B. Postfix und MDA Dovecot nicht auf dem selben Servern sind.

Hier soll die ein Anbindung via TCP/IP-Verbindung erfolgen, was durch nachfolgende Einstellungen erreicht werden kann:

(Nur relevanter Ausschnitt)

...
service lmtp {
  unix_listener lmtp {
    #mode = 0666
  }
 
  # Create inet listener only if you can't use the above UNIX socket
  # Tachtler - enabled -
  # default: #inet_listener lmtp {
  inet_listener lmtp {
    # Avoid making LMTP visible for the entire internet
    # Tachtler
    # default: #address =
    address = 192.168.0.80
    # Tachtler
    # default: #port = 
    port = 24
  # Tachtler - enabled -
  # default: #}
  }
}
 
service imap {
  # Most of the memory goes to mmap()ing files. You may need to increase this
  # limit if you have huge mailboxes.
  #vsz_limit = $default_vsz_limit
 
  # Max. number of IMAP processes (connections)
  #process_limit = 1024
}
 
...

In der oben gezeigten Konfiguration lauscht Dovecot auf einer

  • internen IP-Adresse, welche nicht aus dem Internet erreichbar sein sollte, auf
  • Port 24, welcher der Port für lmtp (Priv-mail: Private E-Mail-Systeme) darstellt.

Konfiguration - Authentifizierung

Die gebräuchlichen Authentifizierungsmöglichkeiten wurden bereits erwähnt und sind unter nachfolgenden internen Links nochmals aufgelistet:

Authentifizierungsabfragen

Zu einer erfolgreichen Authentifizierung gehören zwei Bestandteile, welche nachfolgend aufgeführt sind:

  1. passdb - Benutzername und Passwort
  2. userdb - UID (Benutzerkennung), GID (Gruppenkennung) und HOME-Verzeichnis, EXTRAS-Daten

des angemeldeten Benutzers

Dovecot verwendet die passdb-Abfrage (lookup) um Benutzername und Passwort zu überprüfen, was immer nur bei einer Anmeldung erforderlich ist.

Dovecot verwendet die userdb-Abfrage (lookup) um UID, GID, HOME und EXTRAS für den angemeldeten Benutzer zu bestimmen, was bei vielen Aktionen erfolgt, z.B.

  • nach der erfolgreichen Anmeldung
  • Einlieferung einer neuen e-Mail
  • uvm.

Dabei besteht durchaus die Möglichkeit, das Dovecot die passdb-Abfrage und die userdb-Abfrage gegen verschiedene Quellen durchführt - z.B.

  • passdb-Abfrage (lookup) gegen /etc/passwd-file z.B. (/etc/dovecot/userdb)
  • userdb-Abfrage (lookup) gegen LDAP

:!: HINWEIS - Dies ist möglich, muss jedoch nicht so sein und ist auch nicht empfohlen !

Authentifizierungsquellen

Dovecot bringt in der Konfigurationsdatei

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

ganz am Ende der Konfigurationsdatei vorbereitete include-Dateien mit, welche für die verschiedenen Authentifizierungsquellen bereits grundlegend vorkonfiguriert sind und nur um entsprechend zwingende Angaben ergänzt werden müssen. Nachfolgend eine Aufstellung:

(Nur relevanter Ausschnitt):

...
!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

Hier nur die vier gebräuchlichsten in einer Übersicht:

inlcude-Datei Authentifizierungsquelle Beschreibung
auth-system.conf.ext /etc/passwd & /etc/shadow Benutzer mit shell-Zugriff
auth-sql.conf.ext SQL-Datenbank Benutzerverwaltung in einer Datenbank
auth-ldap.conf.ext LDAP Benutzerverwaltung in LDAP
auth-passwdfile.conf.ext /etc/dovecot/users Benutzerverwaltung in einer Datei

Authentifizierungsbenutzer

Wie bereits bei der Darstellung der Authentifizierungsabfragen, was unter nachfolgendem internen Link nachgelesen werden kann

sind einige Angaben notwendig, um den Benutzer zu authentifizieren.

Um die Verwaltung in Dovecot zu vereinfachen, soll ein Dummy-Benutzer genutzt werden, unter dessen Rechten die Verwaltung der e-Mail-Postfächer (Mailboxen) in Dovecot und im Dateisystem, durchgeführt werden kann.

Vorteile hierfür sind nachfolgende, um nur einige zu nennen:

  • Gleiche UID und GID bieten einfachere Verwaltung durch den Dovecot-Administrator (Skripte, Backup usw.)
  • Geteilte Ordner (shared Folder) sind bei unterschiedlichen UID und GID nur sehr schwer oder kaum zu realisieren
  • Es können nicht mehr als 65.535 Benutzerkonten angelegt werden

GID Gruppen-ID

Nach der Installation von Dovecot existiert bereits eine Gruppe mit der

  • GID und dem hohen Wert 10000 und dem
  • Gruppennamen - vmail (virtual user mail),

damit sich diese von allen anderen abhebt und ggf. auch unter anderen Linux-Distributionen nicht mit anderen GID's kollidiert.

Zur Überprüfung der bereits existierenden Gruppe, kann nachfolgender Befehl verwendet werden:

# cat /etc/group | grep 10000
vmail:x:10000:

UID Benutzer-ID

Nach der Installation von Dovecot existiert bereits ebenfalls ein Benutzer mit dem

  • Kommentar: Dovecot's vmail systemuser, mit der
  • UID: 10000 und ebenfalls mit einem hohen Wert, dessen
  • GID: 10000 ist, mit dem
  • Home-Verzeichnis: /usr/libexec/dovecot und der
  • Login-shell: /sbin/nologin und dem
  • Benutzernamen - vmail,

damit sich diese von allen anderen abhebt und ggf. auch unter anderen Linux-Distributionen nicht mit anderen UID's kollidiert.

Zur Überprüfung ob die Erstellung des neuen Benutzers erfolgreich war, kann nachfolgender Befehl verwendet werden:

# cat /etc/passwd | grep 10000
vmail:x:10000:10000:Dovecot's vmail systemuser:/usr/libexec/dovecot:/sbin/nologin

:!: HINWEIS - Für den Benutzer vmail existiert trotzdem die Datei

  • /var/spool/mail/vmail

die für lokale e-Mail gedacht ist. Dies ist Standard und hat nichts mit Dovecot zu tun!

/srv/vmail

Bei Verwendung eines Dummy-Benutzers, muss ein Verzeichnis in dem die (Postfächer) und die e-Mails der einzelnen Benutzer abgelegt werden können angelegt werden, falls dies nicht bereits schon existiert. Dies kann mit nachfolgendem Befehl unter nachfolgendem Verzeichnis erstellt werden:

# mkdir /srv/vmail

:!: WICHTIG - Bei Verwendung eines Dummy-Benutzers, muss auch das Verzeichnis in dem die (Postfächer) und die e-Mails der einzelnen Benutzer abgelegt werden, dem Dummy-Benutzer als Eigentümer des Verzeichnisses gehören, falls dies nicht ebenfalls schon so ist, was mit nachfolgendem Befehl für das Verzeichnis

  • /srv/vmail

durchgeführt werden soll:

# chown -R vmail:vmail /srv/vmail

Auch die Zugriffsrechte müssen mit nachfolgendem Befehl entsprechende gesetzt werden, falls dies nicht ebenfalls schon so ist, was mit nachfolgendem Befehl durchgeführt werden kann:

# chmod -R 775 /srv/vmail

Zur Überprüfung die Rechtem des Dummy-Benutzers als Eigentümer richtig gesetzte sind, kann nachfolgender Befehl verwendet werden:

# ls -la /srv | grep vmail
drwxrwx---.  2 vmail vmail    6 Jul  8 12:29 vmail

Authentifizierungsmethoden

Nachfolgende Authentifizierungsmethoden stellen die meist verwendeten Methoden dar:

  • PLAIN = Passwortübermittlung im Klartext, Speicherung Verschlüsselt möglich
  • LOGIN = Passwortübermittlung im Klartext, Speicherung Verschlüsselt möglich
  • CRAM = Passwortübermittlung Verschlüsselt, Speicherung im Klartext notwendig !
  • DIGEST Passwortübermittlung Verschlüsselt, Speicherung im Klartext notwendig !

PLAIN/LOGIN

Die Übertragungsmethoden PLAIN/LOGIN übermitteln den Benutzernamen und das Passwort quasi im Klartext (bas64-encoded). Ein Einsatz sollte daher nur in verschlüsselten Verbindungen SSL/TLS, oder vertrauenswürdigen Netzen, wenn überhaupt, zum Einsatz kommen.

Der Unterschied zwischen PLAIN und LOGIN ist, das

  • PLAIN = RFC 4616 konform ist und
  • LOGIN = Microsoft, eine nicht RFC-Konforme Implementierung

darstellt.

CRAM/DIGEST

Aktuell ist das Abhören der Übertragung des Benutzernamens und des Passwortes nahezu unmöglich, da bei der Übertragung ein individueller Sitzungsschlüssel zum Einsatz kommt. Mit Hilfe dieses individuellen Sitzungsschlüssels, können Server und Client, jeweils für sich das Passwort berechnen, der ebenfalls nur jeweils einmalig für eine Sitzung identisch ist.

:!: WICHITG - Da Server und Client jeweils das Passwort errechnen können müssen, ist es erforderlich, das Server und Client, das Passwort im Klartext kennen!

:!: HINWEIS - Das bedeutet, dass beim Einsatz von CRAM/DIGEST das Passwort des Benutzers im Klartext gespeichert werden muss!

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

In dieser Konfigurationsdatei werden die Parameter für die Authentifizierung festgelegt.

disable_plaintext_auth

Diese Definition erlaubt oder verbietet den Zugriff von Rechnern, außer localhost, das Anmelden mit den Methoden

  • PLAIN
  • LOGIN

wenn, keine SSL/TLS-verschlüsselte Verbindung genutzt wird.

Solange noch keine SSL/TLS-Konfiguration statt gefunden hat, kann zum testen auch das Anmelden an Dovecot mit oben genannten Methoden, auch bei einer nicht SSL/TLS-verschlüsselten Verbindung temporär erlaubt werden, von anderen Rechnern zuzugreifen.

(Nur relevanter Ausschnitt):

...
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
# Tachtler - temporary -
# default: #disable_plaintext_auth = yes
disable_plaintext_auth = no
...

Falls SSL/TLS-Verschlüsselung realisiert wurde, sollte die Konfiguration wie folgt aussehen.

(Nur relevanter Ausschnitt):

...
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
#disable_plaintext_auth = yes
...

auth_username_format

Egal wie der Anmeldename des Benutzer aussieht, e-Mail-Adresse oder Benutzerkennung, es sollte hier nachfolgende Standardeinstellung beibehalten werden.

(Nur relevanter Ausschnitt):

...
# Username formatting before it's looked up from databases. You can use
# the standard variables here, eg. %Lu would lowercase the username, %n would
# drop away the domain if it was given, or "%n-AT-%d" would change the '@' into
# "-AT-". This translation is done after auth_username_translation changes.
#auth_username_format = %Lu

Erklärung:

Parameter Beispiel Bedeutung
%Lu user@example.com Verweist auf die in Kleinschrift umgewandelte, vollständige e-Mail-Adresse (localpart@domain) oder Benutzerkennung (username)
%Ln user Verweist auf den in Kleinschrift umgewandelten, localpart der e-Mail-Adresse (localpart@domain)

:!: WICHTIG - Auch wenn mit e-Mail-Adressen gearbeitet wird, sollte → %Lu ← genutzt werden !!!

Die Benutzerkennung sollte nur zur Authentifizierung mit Benutzername und Passwort dienen. Weitere Abfragen von Dovecot zur Ermittlung der Kontodaten, können dann auf eine gespeicherte e-Mail-Adresse zurückgreifen.

auth_mechanisms

Wie bereits dargelegt und unter nachfolgendem internen Link nachzulesen ist, die Unterschiede zwischen den verschiedenen Authentifizierungsmethoden

Nachfolgende Änderung fügt zu der bereits bestehenden Authentifizierungsmethode PLAIN noch die Authentifizierungsmethoden CRAM-MD5, DIGEST-MD5 und LOGIN hinzu:

(Nur relevanter Ausschnitt)

...
# Space separated list of wanted authentication mechanisms:
#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
#   gss-spnego
# NOTE: See also disable_plaintext_auth setting.
# Tachtler
# default: auth_mechanisms = plain
auth_mechanisms = plain digest-md5 cram-md5 login
...

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

In dieser Konfigurationsdatei werden die Parameter für die Verschlüsselung SSL/TLS festgelegt.

ssl

Diese Definition aktiviert, deaktiviert und erzwingt den Zugriff von Rechnern, außer localhost, zur Verwendung einer SSL/TLS-verschlüsselte Verbindung

Solange noch keine SSL/TLS-Konfiguration statt gefunden hat, kann zum testen auch das anmelden an Dovecot, auch bei einer nicht SSL/TLS-verschlüsselten Verbindung temporär erlaubt werden, von anderen Rechnern zuzugreifen.

(Nur relevanter Ausschnitt):

...
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
# Tachtler
# default: ssl = required
ssl = no
...

Falls SSL/TLS-Verschlüsselung realisiert wurde und die Testphase abgeschlossen ist, sollte die Konfiguration wie folgt aussehen.

(Nur relevanter Ausschnitt):

...
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
ssl = required
...

Konfiguration - Authentifizierung: passwd-file

Standardmäßig würde Dovecot den Authentifikationsmechanismus /etc/passwd & /etc/shadow wie in der Konfigurationsdatei

  • /etc/dovecot/conf.d/auth-system.conf.ext

beschrieben benutzen.

Deshalb ist /etc/passwd & /etc/shadow aus nachfolgenden Gründen jedoch sehr unpraktisch

  • Jeder Benutzer muss unter Linux angelegt werden (/etc/passwd & /etc/shadow)-Einträge
  • Keine Hinterlegung von personalisierten Einstellungen möglich, wie z.B. quotas
  • Keine e-Mail-Adressen als Login-Kennung möglich
  • Keine Klartextpasswörter für sichere Anmeldung wie z.B. mit CRAM-MD5 möglich

Um passwd-file als Authentifizierungsmöglichkeit nutzen zu können, sind nachfolgende Änderungen notwendig.

/etc/dovecot/users

Um passwd-file als Authentifizierungsmöglichkeit nutzen zu können, müssen die virtuellen Benutzer in einer Datei gespeichert werden. Dazu soll eine Datei mit nachfolgendem Pfad und Namen

  • /etc/dovecot/users

mit nachfolgendem Befehl angelegt werden.

# vim /etc/dovecot/users

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

  • <(gecos)>
  • <shell>
  • <extra_fields>

nicht vorhanden sein müssen und ggf. (außer <extra_fields> am Ende der Zeile) mit ::, leer gelassen werden können!

<username>:{CODIERUNG}<password>:<uid>:<gid>:<realname>:<home>:<(gecos)>:<extra_fields>

Beispiele:

klaus@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/klaus::
petra@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/petra::

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

Besitzrechte:

# chown root.dovecot /etc/dovecot/users

Dateirechte:

# chmod 640 /etc/dovecot/users

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

Dovecot bringt in der Konfigurationsdatei

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

ganz am Ende der Konfigurationsdatei vorbereitete include-Dateien mit, welche für die verschiedenen Authentifizierungsquellen bereits grundlegend vorkonfiguriert sind und nur nun angepasst werden müssen.

Hier muss der Eintrag

!include auth-system.conf.ext

auskommentiert werden, und der Eintrag

#!include auth-passwdfile.conf.ext

aktiviert werden

Vorher (Standard): (Nur relevanter Ausschnitt):

...
!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

Nachher: (Nur relevanter Ausschnitt):

...
# Tachtler
# default: !include auth-system.conf.ext
# !include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
# Tachtler
# default: #!include auth-passwdfile.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

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

In der Konfigurationsdatei /etc/dovecot/conf.d/auth-passwdfile.conf.ext sind nun die Einstellungen enthalten, die Dovecot zur Authentifizierung benötigt.

  • passdb {…} - zur Verifizierung von Benutzername und Passwort
  • userdb {…} - enthält weitere Parameter zum Benutzer

(Vollständige Konfigurationsdatei)

# Authentication for passwd-file users. Included from 10-auth.conf.
#
# passwd-like file with specified location.
# <doc/wiki/AuthDatabase.PasswdFile.txt>
 
passdb {
  driver = passwd-file
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
}
 
userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/users
 
  # Default fields that can be overridden by passwd-file
  #default_fields = quota_rule=*:storage=1G
 
  # Override fields from passwd-file
  #override_fields = home=/home/virtual/%u
}

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

Erster Start

Bevor der der dovecot-Daemon/Dienst zum ersten mal 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_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 = 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 Befehle gestartet werden:

# systemctl start dovecot

Überprüfung erfolgreicher Start

Um zu Überprüfen, ob der Start des dovecot-Daemons/Dienstes erfolgreich durchgeführt wurden, kann nachfolgender Befehl genutzt werden:

# netstat -tulpen | grep dovecot
tcp        0      0 0.0.0.0:143             0.0.0.0:*       LISTEN      0       53520      18503/dovecot       
tcp        0      0 192.168.0.80:24         0.0.0.0:*       LISTEN      0       53503      18503/dovecot

oder auch dieser Befehl:

# ps auxwf | grep dovecot
root     18513  0.0  0.0 112640   928 pts/0    S+   11:36   0:00                 \_ grep --color=auto dovecot
root     18503  0.0  0.0  19960  1636 ?        Ss   11:35   0:00 /usr/sbin/dovecot -F
dovecot  18505  0.0  0.0   9432  1060 ?        S    11:35   0:00  \_ dovecot/anvil [0 connections]
root     18506  0.0  0.0   9564  1240 ?        S    11:35   0:00  \_ dovecot/log
root     18508  0.0  0.1  12420  2064 ?        S    11:35   0:00  \_ dovecot/config

bzw. auch dieser Befehl:

# systemctl status dovecot
dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled)
   Active: active (running) since Thu 2015-07-09 11:35:18 CEST; 1min 30s ago
  Process: 18499 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS)
 Main PID: 18503 (dovecot)
   CGroup: /system.slice/dovecot.service
           ├─18503 /usr/sbin/dovecot -F
           ├─18505 dovecot/anvil [0 connections]
           ├─18506 dovecot/log
           └─18508 dovecot/config

Jul 09 11:35:18 server80.idmz.tachtler.net systemd[1]: Starting Dovecot IMAP/...
Jul 09 11:35:18 server80.idmz.tachtler.net systemd[1]: Started Dovecot IMAP/P...
Jul 09 11:35:18 server80.idmz.tachtler.net dovecot[18503]: master: Dovecot v2...
Hint: Some lines were ellipsized, use -l to show in full.

/var/log/maillog

In der LOG-Datei

  • /var/log/maillog

sollte nur nachfolgende Zeilen erscheinen, und keine Fehlermeldungen!

(Nur relevanter Ausschnitt):

...
Jul  9 11:35:18 servce80 dovecot: master: Dovecot v2.2.18 starting up for imap, lmtp (core dumps disabled)

/var/log/messages

In der LOG-Datei

  • /var/log/messages

sollten keine Fehlermeldungen!

:!: HINWEIS - In der LOG-Datei /var/log/messages würden Fehlermeldungen stehen, falls die Konfiguration von Dovecot nicht eingelesen werden konnte, bzw. syntaktische Fehler aufweist!

Login-Test mit doveadm

Um zu Überprüfen, ob eine Anmeldung als Benutzer möglich ist, kann nachfolgender Befehl genutzt werden:

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

Dies würde nachfolgende Einträge in der Log-Datei

  • /var/log/maillog

zur Anzeige bringen, wenn das Log-Ausgabe wie in diesem internen Link beschrieben

gesetzt wurde: (Nur relevanter Ausschnitt):

... dovecot: master: Dovecot v2.2.18 starting up for imap, lmtp (core dumps disabled)
... dovecot: auth: Debug: Loading modules from directory: /usr/lib64/dovecot/auth
... dovecot: auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
... dovecot: auth: Debug: Wrote new auth token secret to /var/run/dovecot/auth-token-secret.dat
... dovecot: auth: Debug: passwd-file /etc/dovecot/users: Read 2 users in 0 secs
... dovecot: auth: Debug: auth client connected (pid=0)
... dovecot: auth: Debug: client in: AUTH  1       PLAIN   service=doveadm
resp=AGtsYXVzQHRhY2h0bGVyLm5ldABnZWhlaW0= (previous base64 data may contain sensitive data)
... dovecot: auth: Debug: passwd-file(klaus@tachtler.net): lookup: user=klaus@tachtler.net
file=/etc/dovecot/users
... dovecot: auth: Debug: client passdb out: OK    1       user=klaus@tachtler.net

Um auch die Authentifizierungsdaten, welche in oben gezeigter Ausgabe base64-kodiert sind, dekodieren zu können, um diese ebenfalls sichtbar verifizieren zu können, kann nachfolgender Befehl genutzt werden, welcher dann auch nachfolgende Ausgabe erzeugen sollte:

# echo `echo AGtsYXVzQHRhY2h0bGVyLm5ldABnZWhlaW0= | base64 --decode`
klaus@tachtler.netgeheim

Login-Test mit telnet

Um zu Überprüfen, ob eine Anmeldung als Benutzer 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 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.001 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 geheim
  3. a2 list "" "*"
  4. a3 logout

Nach dem Auflisten des (Postfaches), des Benutzers, würde auch das home-Verzeichnis des Benutzers im Dateisystem angelegt werden, falls dies noch nicht geschehen sein sollte.

Dies kann mit nachfolgendem Befehl überprüft werden:

# ls -la /srv/vmail/*
total 0
drwx------  3 vmail vmail 18 Jul  9 13:07 .
drwxrwx---. 3 vmail vmail 25 Jul  9 13:07 ..
drwx------  3 vmail vmail 20 Jul  9 13:07 klaus

Unterhalb von /srv/vmail/tachtler.net/klaus, sollte dann das Maildir-Verzeichnis entstanden sein, was mit nachfolgendem Befehl überprüft werden kann:

# ls -la /srv/vmail/tachtler.net/klaus
total 0
drwx------ 3 vmail vmail 20 Jul  9 13:07 .
drwx------ 3 vmail vmail 18 Jul  9 13:07 ..
drwx------ 2 vmail vmail  6 Jul  9 13:07 Maildir

Ausgabe Benutzerdaten

Mit nachfolgendem Befehl, gibt Dovecot eine Liste aller ihm bekannten Benutzer aus:

# doveadm user '*'
klaus@tachtler.net
petra@tachtler.net

Um zu Überprüfen, welche Benutzerdaten Dovecot bekannt sind, kann nachfolgender Befehl genutzt werden:

# doveadm user klaus@tachtler.net
field	value
uid	10000
gid	10000
home	/srv/vmail/tachtler.net/klaus
mail	maildir:~/Maildir

Weitereführende Konfigurationen

Unter nachfolgenden internen Links, werden weiterführende Konfiguration durchgeführt

Dovecot Master-User

Dovecot SSL/TLS

Dovecot Quotas

Dovecot Shares

Dovecot Pigeonhole (Sieve)

Dovecot zlib-Komprimierung

Dovecot Tuning

Dovecot Sicherheit

Dovecot Plugins

Dovecot Authentifizierung - passwd-file

Dovecot Authentifizierung - SQL

Dovecot Migration - cyrus2dovecot

Dovecot Backup - Skript

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
tachtler/dovecot_centos_7.txt · Zuletzt geändert: 2015/07/14 09:43 von klaus