Dovecot-IMAP-Server installieren (Debian): Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Installation == # apt-get install dovecot-imapd == Konfiguration anpassen == == SSL-Verschlüsselung aktivieren == === Selbst signiertes SSL-Zertifikat…“) |
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
== Konfiguration anpassen == | == Konfiguration anpassen == | ||
== | === Mailboxen === | ||
Anpassung '''/etc/dovecot/conf.d/10-mail.conf''' um Dovecot von mbox auf Maildir umzustellen: | |||
=== | Zeile auskommentieren: | ||
mail_location = mbox:~/mail:INBOX=/var/mail/%u | |||
Neue Zeile einfügen: | |||
mail_location = maildir:~/Maildir | |||
Anpassung '''/etc/dovecot/conf.d/15-mailboxes.conf''' | |||
Bei Special-Use-Ordnern Attribut <code>auto = create</code> hinzufügen. | |||
[[ | Dabei wird der Special-Use-Ordner automatisch angelegt, aber nicht vom Client abonniert. Beispiel: | ||
[[Kategorie:E-Mail]] | mailbox Drafts { | ||
auto = create | |||
special_use = \Drafts | |||
} | |||
Zum gleichzeitigen Abonnieren verwenden (Leider wird Inbox nicht automatisch mit abonniert): | |||
auto = subscribe | |||
Archiv-Ordner hinzufügen: | |||
mailbox Archive { | |||
auto = create | |||
special_use = \Archive | |||
} | |||
=== SSL-Verschlüsselung === | |||
Vgl. Details über die Einstellungen von '''ssl''' und '''disable_plaintext_auth''' im Dovecot-Wiki http://wiki.dovecot.org/SSL/DovecotConfiguration | |||
Es kann entweder ein selbst signiertes Zertifikat oder ein anderes, z. B. ein von Letsencrypt erzeugtes, verwendet werden. | |||
Selbst signiertes SSL-Zertifikat mit mit OpenSSL erstellen: | |||
$ /usr/share/dovecot/mkcert.sh | |||
Das Zertifikat wird in '''/etc/dovecot/conf.d/10-ssl.conf''' hinterlegt. Folgende Zeilen einfügen: | |||
ssl = required | |||
ssl_cert = </etc/path/to/fullcert.pem | |||
ssl_key = </etc/path/to/private.pem | |||
=== Plaintext-Authentifizierung deaktivieren === | |||
Anpassung '''/etc/dovecot/conf.d/10-auth.conf'''. Folgende Zeilen einfügen: | |||
disable_plaintext_auth = yes # Vgl. auch ssl=required in 10-ssl.conf | |||
== Zugriff testen == | |||
=== SSL-Zugriff testen === | |||
Vgl. http://wiki.dovecot.org/SSL/DovecotConfiguration# oder http://wiki.dovecot.org/TestInstallation | |||
Zugriff mit OpenSSL testen: | |||
openssl s_client -connect server.domain.tld:<port> # <port> = 993 oder "imaps" | |||
Mögliches Ergebnis: | |||
SSL-Session: | |||
Protocol : TLSv1.2 | |||
Cipher : ECDHE-RSA-AES256-GCM-SHA384 | |||
<nowiki> </nowiki> ... | |||
<nowiki> </nowiki> ... | |||
<nowiki> </nowiki> ... | |||
TLS session ticket lifetime hint: 300 (seconds) | |||
TLS session ticket: | |||
<nowiki> </nowiki> ... | |||
<nowiki> </nowiki> ... | |||
<nowiki> </nowiki> ... | |||
Start Time: 1485649475 | |||
Timeout : 300 (sec) | |||
Verify return code: 0 (ok) | |||
--- | |||
<nowiki>*</nowiki> OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready. | |||
Kommunikation testen mit folgenden Befehlen: | |||
A LOGIN <username> <pass> # Einloggen | |||
A LIST "" * # Alle Ordner auflisten | |||
A LIST INBOX * # Unterordner von INBOX auflisten | |||
A SELECT INBOX # Mailbox INBOX auswählen | |||
A FETCH 1:* (FLAGS) # Flags für 1:* (alle Nachrichten) abrufen | |||
A FETCH 1:* (BODY.PEEK[HEADER.FIELDS (SUBJECT)]) # Betreff für alle Nachrichten holen | |||
A FETCH 1:* (FLAGS INTERNALDATE) # Diverse Felder für alle Nachrichten abrufen | |||
A FETCH 2 all # Nachricht 2 holen | |||
A FETCH 2 body[text] # Nachricht 2 body holen | |||
A LOGOUT # Ausloggen | |||
[[Category:Linux]] | |||
[[Kategorie:E-Mail]] |
Aktuelle Version vom 2. September 2017, 15:26 Uhr
Installation
# apt-get install dovecot-imapd
Konfiguration anpassen
Mailboxen
Anpassung /etc/dovecot/conf.d/10-mail.conf um Dovecot von mbox auf Maildir umzustellen:
Zeile auskommentieren:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Neue Zeile einfügen:
mail_location = maildir:~/Maildir
Anpassung /etc/dovecot/conf.d/15-mailboxes.conf
Bei Special-Use-Ordnern Attribut auto = create
hinzufügen.
Dabei wird der Special-Use-Ordner automatisch angelegt, aber nicht vom Client abonniert. Beispiel:
mailbox Drafts { auto = create special_use = \Drafts }
Zum gleichzeitigen Abonnieren verwenden (Leider wird Inbox nicht automatisch mit abonniert):
auto = subscribe
Archiv-Ordner hinzufügen:
mailbox Archive { auto = create special_use = \Archive }
SSL-Verschlüsselung
Vgl. Details über die Einstellungen von ssl und disable_plaintext_auth im Dovecot-Wiki http://wiki.dovecot.org/SSL/DovecotConfiguration
Es kann entweder ein selbst signiertes Zertifikat oder ein anderes, z. B. ein von Letsencrypt erzeugtes, verwendet werden.
Selbst signiertes SSL-Zertifikat mit mit OpenSSL erstellen:
$ /usr/share/dovecot/mkcert.sh
Das Zertifikat wird in /etc/dovecot/conf.d/10-ssl.conf hinterlegt. Folgende Zeilen einfügen:
ssl = required ssl_cert = </etc/path/to/fullcert.pem ssl_key = </etc/path/to/private.pem
Plaintext-Authentifizierung deaktivieren
Anpassung /etc/dovecot/conf.d/10-auth.conf. Folgende Zeilen einfügen:
disable_plaintext_auth = yes # Vgl. auch ssl=required in 10-ssl.conf
Zugriff testen
SSL-Zugriff testen
Vgl. http://wiki.dovecot.org/SSL/DovecotConfiguration# oder http://wiki.dovecot.org/TestInstallation
Zugriff mit OpenSSL testen:
openssl s_client -connect server.domain.tld:<port> # <port> = 993 oder "imaps"
Mögliches Ergebnis:
SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 ... ... ... TLS session ticket lifetime hint: 300 (seconds) TLS session ticket: ... ... ... Start Time: 1485649475 Timeout : 300 (sec) Verify return code: 0 (ok) --- * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
Kommunikation testen mit folgenden Befehlen:
A LOGIN <username> <pass> # Einloggen A LIST "" * # Alle Ordner auflisten A LIST INBOX * # Unterordner von INBOX auflisten A SELECT INBOX # Mailbox INBOX auswählen A FETCH 1:* (FLAGS) # Flags für 1:* (alle Nachrichten) abrufen A FETCH 1:* (BODY.PEEK[HEADER.FIELDS (SUBJECT)]) # Betreff für alle Nachrichten holen A FETCH 1:* (FLAGS INTERNALDATE) # Diverse Felder für alle Nachrichten abrufen A FETCH 2 all # Nachricht 2 holen A FETCH 2 body[text] # Nachricht 2 body holen A LOGOUT # Ausloggen