Dovecot-IMAP-Server installieren (Debian): Unterschied zwischen den Versionen

Aus MattWiki
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:


=== Mailboxen ===
=== Mailboxen ===
Anpassung '''/etc/dovecot/conf.d/10-mail.conf'''
Anpassung '''/etc/dovecot/conf.d/10-mail.conf''' um Dovecot von mbox auf Maildir umzustellen:


Zeile auskommentieren:
Zeile auskommentieren:
Zeile 29: Zeile 29:


=== SSL-Verschlüsselung ===
=== 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.
Es kann entweder ein selbst signiertes Zertifikat oder ein anderes, z. B. ein von Letsencrypt erzeugtes, verwendet werden.


Zeile 40: Zeile 42:
=== Plaintext-Authentifizierung deaktivieren ===
=== Plaintext-Authentifizierung deaktivieren ===
Anpassung '''/etc/dovecot/conf.d/10-auth.conf'''. Folgende Zeilen einfügen:
Anpassung '''/etc/dovecot/conf.d/10-auth.conf'''. Folgende Zeilen einfügen:
  disable_plaintext_auth = yes 
  disable_plaintext_auth = yes              # Vgl. auch ssl=required in 10-ssl.conf
auth_mechanisms = plain


== Zugriff testen ==
== Zugriff testen ==


=== SSL-Zugriff testen ===
=== SSL-Zugriff testen ===
[[Kategorie:Debian]]
Vgl. http://wiki.dovecot.org/SSL/DovecotConfiguration# oder http://wiki.dovecot.org/TestInstallation
[[Kategorie:E-Mail]]
 
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, 16: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