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:10] 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 1598: Zeile 1598:
 </code> </code>
  
 +===== Konfiguration - Authentifizierung: passwd-file =====
  
-:!FIXME :!: - **Hier geht es weiter To be continued...**+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 
 +  * 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. 
 +<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 ==== 
 + 
 +  * Interner **Link** zu: [[tachtler:dovecot_backup_-_skript|Dovecot Backup - Skript]]
  
tachtler/dovecot_centos_7.1436433058.txt.gz · Zuletzt geändert: 2015/07/09 11:10 von klaus