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

Aus MattWiki
(Die Seite wurde neu angelegt: „== Installation == # apt-get install dovecot-imapd == Konfiguration anpassen == == SSL-Verschlüsselung aktivieren == === Selbst signiertes SSL-Zertifikat…“)
 
Keine Bearbeitungszusammenfassung
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
== Konfiguration anpassen ==
== Konfiguration anpassen ==


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


=== Selbst signiertes SSL-Zertifikat erstellen ===
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'''


=== Bestehendes SSL-Zertifikat verwenden ===
Bei Special-Use-Ordnern Attribut <code>auto = create</code> hinzufügen.


[[Kategorie:Debian]]
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