Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dovecot_centos_7

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:dovecot_centos_7 [2015/07/09 11:16] klaustachtler:dovecot_centos_7 [2015/07/14 09:43] (aktuell) klaus
Zeile 745: Zeile 745:
 ===== iptables Regel ====== ===== iptables Regel ======
  
-Damit der [[http://e2guardian.org|E2guardian]] als //Content Filter//-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.+Damit der [[http://dovecot.org|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: Um die aktuellen ''iptables''-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
Zeile 1600: Zeile 1600:
 ===== Konfiguration - Authentifizierung: passwd-file ===== ===== Konfiguration - Authentifizierung: passwd-file =====
  
-Standardmäßig würde [[http://dovecot.org|Dovecot]] den Authentifikationsmechanismus **/etc/passwd & /etc/shadow** wie in der Konfigurationsdatei ''auth-system.conf.ext'' beschrieben benutzen. +Standardmäßig würde [[http://dovecot.org|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 Deshalb ist **/etc/passwd & /etc/shadow** aus nachfolgenden Gründen jedoch sehr unpraktisch
Zeile 1610: Zeile 1612:
 Um **passwd-file** als Authentifizierungsmöglichkeit nutzen zu können, sind nachfolgende Änderungen notwendig. 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.
 +<code>
 +# vim /etc/dovecot/users
 +</code>
 +
 +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!
 +<code>
 +<username>:{CODIERUNG}<password>:<uid>:<gid>:<realname>:<home>:<(gecos)>:<extra_fields>
 +</code>
 +
 +**__Beispiele__**:
 +<code ini>
 +klaus@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/klaus::
 +petra@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/petra::
 +</code>
 +
 +Abschließend sollten noch die **Besitzrechte** und die **Dateirechte** von ''/etc/dovecot/users'' mit nachfolgenden Befehlen angepasst werden.
 +
 +**__Besitzrechte__**:
 +<code>
 +# chown root.dovecot /etc/dovecot/users
 +</code>
 +
 +**__Dateirechte__**:
 +<code>
 +# chmod 640 /etc/dovecot/users
 +</code>
 +
 +==== /etc/dovecot/conf.d/10-auth.conf ====
 +
 +[[http://dovecot.org|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
 +<code ini>
 +!include auth-system.conf.ext
 +</code>
 +**auskommentiert** werden, und der Eintrag
 +<code ini>
 +#!include auth-passwdfile.conf.ext
 +</code>
 +**aktiviert** werden
 +
 +**__Vorher (Standard)__**:
 +(**Nur relevanter Ausschnitt**):
 +<code ini>
 +...
 +!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
 +</code>
 +
 +**__Nachher__**:
 +(**Nur relevanter Ausschnitt**):
 +<code ini>
 +...
 +# 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
 +</code>
 +
 +==== /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 [[http://dovecot.org|Dovecot]] zur Authentifizierung benötigt.
 +  * **passdb {...}** - zur Verifizierung von **Benutzername** und **Passwort**
 +  * **userdb {...}** - enthält **weitere Parameter** zum **Benutzer**
 +
 +**(Vollständige Konfigurationsdatei**)
 +<code ini>
 +# 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
 +}
 +</code>
 +
 +:!: **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
 +<code>
 +# 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
 +</code>
 +
 +:!: **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:
 +<code>
 +# systemctl start dovecot
 +</code>
 +
 +==== Überprüfung erfolgreicher Start ====
 +
 +Um zu Überprüfen, ob der Start des ''dovecot''-Daemons/Dienstes erfolgreich durchgeführt wurden, kann nachfolgender Befehl genutzt werden:
 +<code>
 +# 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
 +</code>
 +oder auch dieser Befehl:
 +<code>
 +# 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
 +</code>
 +bzw. auch dieser Befehl:
 +<code>
 +# 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.
 +
 +</code>
 +
 +=== /var/log/maillog ===
 +
 +In der **LOG-Datei** 
 +  * ''/var/log/maillog''
 +sollte **__nur__** nachfolgende Zeilen erscheinen, und **__keine__** Fehlermeldungen!
 +
 +(**Nur relevanter Ausschnitt**):
 +<code>
 +...
 +Jul  9 11:35:18 servce80 dovecot: master: Dovecot v2.2.18 starting up for imap, lmtp (core dumps disabled)
 +</code>
 +
 +=== /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 [[http://dovecot.org|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:
 +<code>
 +# doveadm auth test klaus@tachtler.net
 +Password: 
 +passdb: klaus@tachtler.net auth succeeded
 +extra fields:
 +  user=klaus@tachtler.net
 +</code>
 +
 +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
 +  * [[tachtler:dovecot_centos_7#etc_dovecot_confd_10-loggingconf|Dovecot CentOS 7 - Konfiguration - Basiskonfiguration - /etc/dovecot/conf.d/10-logging.conf]]
 +gesetzt wurde:
 +(**Nur relevanter Ausschnitt**):
 +<code>
 +... 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
 +</code>
 +
 +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:
 +<code>
 +# echo `echo AGtsYXVzQHRhY2h0bGVyLm5ldABnZWhlaW0= | base64 --decode`
 +klaus@tachtler.netgeheim
 +</code>
 +
 +==== 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:
 +<code ini>
 +# 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
 +</code>
 +
 +**__Erforderliche Benutzereingaben__**:
 +  - <code ini>telnet 192.168.0.80 143</code>
 +  - <code ini>a1 login klaus@tachtler.net geheim</code>
 +  - <code ini>a2 list "" "*"</code>
 +  - <code ini>a3 logout</code>
 +
 +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:
 +<code>
 +# 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
 +</code>
 +
 +Unterhalb von ''/srv/vmail/tachtler.net/klaus'', sollte dann das **''Maildir''**-Verzeichnis entstanden sein, was mit nachfolgendem Befehl überprüft werden kann:
 +<code>
 +# 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
 +</code>
 +
 +==== Ausgabe Benutzerdaten ====
 +
 +Mit nachfolgendem Befehl, gibt [[http://dovecot.org|Dovecot]] eine Liste aller ihm bekannten Benutzer aus:
 +<code>
 +# doveadm user '*'
 +klaus@tachtler.net
 +petra@tachtler.net
 +</code>
 +
 +Um zu Überprüfen, welche Benutzerdaten [[http://dovecot.org|Dovecot]] bekannt sind, kann nachfolgender Befehl genutzt werden:
 +<code>
 +# doveadm user klaus@tachtler.net
 +field value
 +uid 10000
 +gid 10000
 +home /srv/vmail/tachtler.net/klaus
 +mail maildir:~/Maildir
 +</code>
 +
 +===== Weitereführende Konfigurationen =====
 +
 +Unter nachfolgenden internen Links, werden weiterführende Konfiguration durchgeführt
 +
 +==== Dovecot Master-User ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_master-user|Dovecot Master-User]]
 +
 +==== Dovecot SSL/TLS ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_ssl_tls|Dovecot SSL/TLS]]
 +
 +==== Dovecot Quotas ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_quotas|Dovecot Quotas]]
 +    * Interner **Link** zu: [[tachtler:dovecot_quotas_-_sql-backend|Dovecot Quotas - SQL-Backend]]
 +==== Dovecot Shares ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_shares|Dovecot Shares]]
 +
 +==== Dovecot Pigeonhole (Sieve) ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_pigeonhole_sieve|Dovecot Pigeonhole (Sieve)]]
 +    * Interner **Link** zu: [[tachtler:dovecot_pigeonhole_sieve&#hordeorg_-_ingo|Dovecot Pigeonhole (Sieve) - Horde.org - ingo]]
 +
 +==== Dovecot zlib-Komprimierung ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_zlib-komprimierung|Dovecot zlib-Komprimierung]]
 +
 +==== Dovecot Tuning ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_tuning|Dovecot Tuning]]
 +
 +==== Dovecot Sicherheit ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_sicherheit|Dovecot Sicherheit]]
 +
 +==== Dovecot Plugins ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_plugins|Dovecot Plugins]]
 +
 +==== Dovecot Authentifizierung - passwd-file ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_authentifizierung_-_passwd-file|Dovecot Authentifizierung - passwd-file]]
 +
 +==== Dovecot Authentifizierung - SQL ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_authentifizierung_-_sql|Dovecot Authentifizierung - SQL]]
 +    * Interner **Link** zu: [[tachtler:dovecot_authentifizierung_-_sql_-_horde.org_-_horde|Dovecot Authentifizierung - SQL - Horde.org - Horde]]
 +
 +==== Dovecot Migration - cyrus2dovecot ====
 +
 +  * Interner **Link** zu: [[tachtler:dovecot_migration_-_cyrus2dovecot|Dovecot Migration - cyrus2dovecot]]
 +
 +==== Dovecot Backup - Skript ====
  
-:!: FIXME :!: - **Hier geht es weiter / To be continued...**+  Interner **Link** zu: [[tachtler:dovecot_backup_-_skript|Dovecot Backup - Skript]]
  
tachtler/dovecot_centos_7.1436433392.txt.gz · Zuletzt geändert: 2015/07/09 11:16 von klaus