Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dovecot_ssl_tls

Dovecot SSL/TLS

Diese Dokumentation ist nach dem Kurs: Dovecot bei www.heinlein-support.de - Peer Heinlein entstanden. Hier noch einmal meinen Dank für die Informationen und das ☛ Buch: Dovecot

:!: HINWEIS - Die Nachfolgende Konfiguration von Dovecot setzt eine lauffähige Installation von Dovecot voraus, wie unter nachfolgendem internen Link beschrieben !!!

Dovecot ist ein Open-Source-IMAP-und POP3-E-Mail-Server für Linux bzw. UNIX-ähnlichen Systeme, entwickelt mit dem Hauptaugenmerk auf Sicherheit. Dovecot ist eine ausgezeichnete Wahl für kleine und große Installationen. Dovecot ist schnell und einfach zu installieren, erfordert keine besonderen Voraussetzungen und ist Ressourcenschonend.

Dovecot wird von Timo Sirainen entwickelt.

Beschreibung Externer Link
Homepage http://dovecot.org
Dokumentation http://dovecot.org/documentation.html
Wiki Dovecot2 http://wiki2.dovecot.org/

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

Vorbereitung

Der Einsatz von SSL/TLS ist unter Dovecot ähnlich leicht zu realisieren, wie dies z.B. beim Apache Webserver der Fall ist.

Grundsätzlich kann auch ein Self-signed Certificate (Selbst erstelltes und bestätigtes Zertifikat) dafür benutzt werden. Wie ein solches Zertifikat selbst erstellt werden, kann kann etwas ausführlicher unter nachfolgendem internen Links nachgelesen werden.

Zertifikat erstellen

Trotzdem soll hier in aller Kürze ein Self-signed Certificate erstellt werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj /CN=mail.tachtler.net -keyout /tmp/mail.tachtler.net.key -out /tmp/mail.tachtler.net.crt

Anschließend sollten im Verzeichnis /tmp die nachfolgend genannten beiden Dateien liegen

  • /tmp/mail.tachtler.net.key - SSL/TLS-Schlüssel-Datei
  • /tmp/mail.tachtler.net.crt - SSL/TLS-Zertifikats-Datei

Ob die Datein richtig erstellt worden sind, kann mit nachfolgendem Befehl überprüft werden:

# ll /tmp/mail.tachtler.net.*
-rw-r--r-- 1 root root 1115 Mar 24 15:20 /tmp/mail.tachtler.net.crt
-rw-r--r-- 1 root root 1708 Mar 24 15:20 /tmp/mail.tachtler.net.key

Wie das Zertifikat inhaltlich ausgestellt wurde, kann mit dem folgenden Befehl überprüft werden:

# openssl x509 -noout -text -in /tmp/mail.tachtler.net.crt
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 11521682945659409234 (0xa008d4934c7avaa2)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: CN=mail.tachtler.net
        Validity
            Not Before: Mar 23 14:20:59 2014 GMT
            Not After : Mar 20 14:20:59 2024 GMT
        Subject: CN=mail.tachtler.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:d3:f2:34:76:ee:75:b4:b0:b2:92:a0:7e:53:3b:
                    cc:b2:c5:3d:d5:b0:42:20:16:29:a1:96:f5:d6:47:
                    d7:dd:1c:9a:9a:33:b6:f0:67:8e:15:f8:ca:b3:16:
                    9f:85:1a:b8:e5:72:a0:30:c7:12:0a:58:f9:60:d0:
                    15:0a:38:87:17:5a:41:d7:c3:70:04:5e:77:a0:bf:
                    50:2b:11:8d:fa:2b:3b:1c:da:e0:2a:16:79:5b:54:
                    ac:c3:9e:a9:52:78:50:5a:6c:bb:09:79:64:47:de:
                    ef:41:91:f8:dc:b7:a6:3f:12:02:9e:d8:28:60:e1:
                    dd:d7:5b:9a:e5:84:bb:c0:40:62:fb:bb:e5:87:17:
                    71:d4:39:5a:43:32:ed:2d:13:41:73:73:7d:2c:71:
                    a2:da:de:51:83:bd:70:18:65:37:6a:3e:75:43:d9:
                    4e:1d:36:34:1f:c3:4a:b6:4e:8d:32:da:b0:04:a3:
                    df:c5:b9:3a:6f:85:84:93:96:a2:e4:34:75:70:a2:
                    30:99:46:8e:cd:cf:da:7e:09:6e:b3:89:a1:dd:43:
                    af:ff:0a:8d:94:e4:1d:2b:3b:95:23:4c:b5:f8:77:
                    7a:e3:60:46:a8:d2:f6:e8:dc:db:36:f5:ae:47:f9:
                    dd:68:25:bd:80:ac:dd:6f:c4:d6:3d:9e:0d:78:79:
                    1f:d5
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                F6:5E:43:5D:CB:BB:BE:6C:EE:D8:46:B1:13:3A:27:5E:14:4B:F1:25
            X509v3 Authority Key Identifier: 
                keyid:F6:5E:48:5D:CB:BC:BE:6C:BD:D8:76:B1:13:3A:27:5E:14:4B:F1:25

            X509v3 Basic Constraints: 
                CA:TRUE
    Signature Algorithm: sha1WithRSAEncryption
         65:cc:20:e9:cc:01:fd:8e:d9:4d:61:f4:70:f3:c7:5e:ef:9b:
         7f:d8:db:4c:d6:46:40:34:da:b4:b0:9a:12:05:02:df:3b:37:
         ea:09:7d:8e:c0:c0:ca:f7:4e:59:20:63:d8:26:b2:81:ed:85:
         f5:1d:9e:7b:28:59:42:1d:8a:f5:e1:a7:a8:ad:81:dc:93:46:
         85:c8:2b:4f:05:c9:64:77:b1:76:39:d5:8d:91:b8:65:03:a4:
         50:c0:19:a8:03:48:4d:70:33:81:45:a4:12:6b:c6:06:39:98:
         92:1f:4c:ec:40:97:22:a7:8e:17:ce:19:53:47:6f:05:0e:f5:
         cb:e6:a5:a2:a9:3a:61:b1:0a:07:f2:51:b1:d1:19:2c:b5:82:
         95:3f:a7:8e:3c:e7:01:0f:ad:60:c3:7e:a5:bf:a8:11:6b:73:
         84:0d:e2:06:f1:01:48:e1:72:f8:30:58:09:66:20:c1:a4:ce:
         c0:3d:23:12:7f:4f:35:2a:f2:54:01:5e:99:06:c5:77:45:e5:
         00:da:4a:28:b2:fd:b0:62:77:eb:05:fe:2a:53:30:ce:de:4f:
         dd:18:8f:9d:3c:27:8f:e6:22:f4:ec:fd:f5:15:81:af:5e:53:
         d5:a7:31:52:16:90:e0:e8:00:21:7d:53:d0:64:60:23:99:23:
         8e:92:51:77

Anschließend sollte der Speicherort für die SSL/TLS-Schlüssel-Datei und die SSL/TLS-Zertifikats-Datei gewählt werden, welcher standardmäßig die Verzeichnisse

  • /etc/pki/dovecot/certs/ und
  • /etc/pki/dovecot/private

sind.

Mit nachfolgenden Befehlen können nun die Dateien in das jeweils richtige Verzeichnis kopiert werden:

# mv /tmp/mail.tachtler.net.crt /etc/pki/dovecot/certs/
# mv /tmp/mail.tachtler.net.key /etc/pki/dovecot/private/

Anschließend sollten nun die Dateirechte der SSL/TLS-Schlüssel-Datei wie nachfolgend beschrieben durchgeführt werden:

# chmod 400 /etc/pki/dovecot/private/mail.tachtler.net.key

Zum Abschluß kann mit nachfolgendem Befehl berprüft werden, ob die Dateien im jeweils richtigen Verzeichnis gelandet sind und die richtigen dateirechte haben:

# ls -l /etc/pki/dovecot/*
-rw-r--r-- 1 root root  496 Mar 14  2013 /etc/pki/dovecot/dovecot-openssl.cnf

/etc/pki/dovecot/certs:
total 8
-rw------- 1 root root  847 Mar 13 17:43 dovecot.pem
-rw-r--r-- 1 root root 1115 Mar 23 15:20 mail.tachtler.net.crt

/etc/pki/dovecot/private:
total 8
-rw------- 1 root root  916 Mar 13 17:43 dovecot.pem
-r-------- 1 root root 1708 Mar 23 15:20 mail.tachtler.net.key

Konfiguration

Nachfolgende Konfigurationen sind notwendig, um einen SSSL/TLS gesicherten Dovecot zu betreiben.

/etc/dovecot/conf.d/10-ssl.conf

In dieser Konfigurationsdatei werden die Parameter für die Verschlüsselung SSL/TLS festgelegt.

Die in der vorhergehenden Konfiguration, welche unter nachfolgendem internen Link nachzulesen ist

kann jetzt wiederum angepasst werden.

ssl

Diese Definition aktiviert, deaktiviert und erzwingt den Zugriff von Rechnern, außer localhost, zur Verwendung von SSL/TLS-verschlüsselte Verbindung

Solange noch keine SSL/TLS-Konfiguration konfiguriert war, konnte zum testen auch das Anmelden an Dovecot, auch bei einer nicht SSL/TLS-verschlüsselten Verbindung temporär erlaubt werden, von anderen Rechnern zuzugreifen.

(Nur relevanter Ausschnitt):

...
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
# Tachtler
# default: ssl = required
ssl = no
...

Als Zwischenschritt, kann die SSL/TLS-Verschlüsselung aktiviert werden, jedoch noch nicht zwingend eingefordert werden, was mit nachfolgenden Einstellung möglich ist.

(Nur relevanter Ausschnitt):

...
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
# Tachtler
# default: ssl = required
ssl = yes
...

Falls SSL/TLS-Verschlüsselung realisiert wurde und die Testphase abgeschlossen ist, sollte die Konfiguration wie folgt aussehen.

(Nur relevanter Ausschnitt):

...
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
ssl = required
...

ssl_cert & ssl_key

Die nachfolgenden beiden Einstellungen laden den Inhalt der SSL/TLS-Schlüssel-Datei und die SSL/TLS-Zertifikats-Datei beim Start von Dovecot dynamisch in die Konfiguration, was den Vorteil hat, dass auch in chroot-Umgebungen nach dem starten und die Übergabe an einen etwaigen Laufzeit-Benutzer, keine Zugriff-Probleme mehr entstehen.

...
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
# Tachtler
# default: ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_cert = </etc/pki/dovecot/certs/mail.tachtler.net.crt
# Tachtler
# default: ssl_key = </etc/pki/dovecot/private/dovecot.pem
ssl_key = </etc/pki/dovecot/private/mail.tachtler.net.key
...

ssl_dh_parameters_length

Aufgrund einer Sicherheitsschwäche beim „Handshake“ im Diffie-Hellmann-Algorithmus sollten die Stärke der möglichen Verschlüsselungs-Parameter entsprechend angepasst werden:

...
# DH parameters length to use.
# Tachtler
# Diffie-Hellmann vulnerability
# https://weakdh.org/sysadmin.html
# default: #ssl_dh_parameters_length = 1024
ssl_dh_parameters_length = 2048
...

ssl_protocols

Zur Absicherung sollten die verwendeten Protokolle, durch nachfolgende Änderung angepasst werden, um keine kompromittierten Protokolle zur Verwendung zu bringen:

...
# SSL protocols to use
# Tachtler
# default: #ssl_protocols = !SSLv2
ssl_protocols = !SSLv2 !SSLv3
...

:!: HINWEIS - Keine Änderungen im Parameter ssl_cipher_list durchführen, da dies zu einem Fehler beim TLS-Handschake führt, da SSLv3 hier nicht zur Verwendung kommt!

ssl_cipher_list

Aufgrund einer Sicherheitsschwäche beim „Handshake“ im Diffie-Hellmann-Algorithmus sollten die Liste der möglichen Verschlüsselungs-Algorithmen entsprechend angepasst werden:

...
# SSL ciphers to use
# Tachtler
# Diffie-Hellmann vulnerability
# https://weakdh.org/sysadmin.html
# default: #ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL
# original from https://weakdh.org/sysadmin.html: ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
# Tachtler - changed order, to use first ECDHE-RSA-AES256-GCM-SHA384 / ECDHE-ECDSA-AES256-GCM-SHA384!
ssl_cipher_list = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
 
...

ssl_prefer_server_ciphers

Aufgrund einer Sicherheitsschwäche beim „Handshake“ im Diffie-Hellmann-Algorithmus sollten die Liste der Verschlüsselungs-Algorithmen die der Dovecot-Server dem Client vorschlägt, Anwendung finden und dem Client nicht die Möglichkeit gegeben werden, entsprechende „downgrades“ der Verschlüsselungs-Algorithmen dem Dovecot-Server vorzuschlagen. Nachfolgende Anpassungen sind dazu notwendig:

...
# Prefer the server's order of ciphers over client's.
# Tachtler
# Diffie-Hellmann vulnerability
# https://weakdh.org/sysadmin.html
# default: #ssl_prefer_server_ciphers = no
ssl_prefer_server_ciphers = yes
...

/etc/dovecot/conf.d/10-auth.conf

In dieser Konfigurationsdatei werden die Parameter für die Authentifizierung festgelegt.

Die in der vorhergehenden Konfiguration, welche unter nachfolgendem internen Link nachzulesen ist

kann später auch angepasst werden.

disable_plaintext_auth

Diese Definition erlaubt oder verbietet den Zugriff von Rechnern, außer localhost, das Anmelden mit den Methoden

  • PLAIN
  • LOGIN

wenn, keine SSL/TLS-verschlüsselte Verbindung genutzt wird.

Solange noch keine SSL/TLS-Konfiguration konfiguriert war, konnte zum testen auch das Anmelden an Dovecot mit oben genannten Methoden, auch bei einer nicht SSL/TLS-verschlüsselten Verbindung temporär erlaubt werden, von anderen Rechnern zuzugreifen.

(Nur relevanter Ausschnitt):

...
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
# Tachtler - temporary -
# default: #disable_plaintext_auth = yes
disable_plaintext_auth = no
...

Falls SSL/TLS-Verschlüsselung realisiert wurde und die Testphase abgeschlossen ist, sollte die Konfiguration wie folgt aussehen.

(Nur relevanter Ausschnitt):

...
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
#disable_plaintext_auth = yes
...

Neustart

Bevor der der dovecot-Daemon/Dienst neu gestartet werden soll, ist eine Überprüfung der korrekten Konfiguration durch nachfolgenden Befehl, zu empfehlen

# 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_master_user_separator = *
auth_mechanisms = plain digest-md5 cram-md5 login
auth_verbose = yes
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 = /etc/dovecot/master-users
  driver = passwd-file
  master = yes
  pass = yes
}
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_cert = </etc/pki/dovecot/certs/mail.tachtler.net.crt
ssl_cipher_list = ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_dh_parameters_length = 2048
ssl_key = </etc/pki/dovecot/private/mail.tachtler.net.key
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}
verbose_proctitle = yes

:!: 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 neu gestartet werden:

# service dovecot restart
Stopping Dovecot Imap:                                     [  OK  ]
Starting Dovecot Imap:                                     [  OK  ]
bzw.
# systemctl restart dovecot

Login-Test mit telnet

Um zu Überprüfen, ob eine Anmeldung unter Nutzung von SSL/TLS (hier STARTTLS) möglich ist, kann nachfolgender Befehl genutzt werden:

# openssl s_client -starttls imap -connect mail.tachtler.net:143
CONNECTED(00000003)
depth=0 CN = mail.tachtler.net
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = mail.tachtler.net
verify return:1
---
Certificate chain
 0 s:/CN=mail.tachtler.net
   i:/CN=mail.tachtler.net
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDCzCCAfOgAwIBAgIJAKAIxJZMesrSMA0GCSqGSIb3DQEBBQUAMBwxGjAYBgNV
BAMMEW1haWwudGFjaHRsZXIubmV0MB4XDTE0MDMyNDE0MjA1OVoXDTI0MDMyMTE0
MjA1OVowHDEaMBgGA1UEAwwRbWFpbC50YWNodGxlci5uZXQwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDT8jR27nW0sLKSoH5TO8yyxT3VsEIgFimhlvXW
R9fdHJqaM7bwZ44V+MqzFp+FGrklcuAwxxIKWPlg0BUKOIcXWkHXw3AEXnegv1Ar
EY36Kzsc2uAqFnlbVKzDnqlSeFBabLsJeWRH3u9Bkfjct9Y/EgKe2Chg4d3XW5Pl
hLvAQGL7u+WHF3HUOVpDMu0tE0Fzc30scaLa3lGDvXAYZTdqPnVD2U4dNjQfw0q2
To0y2rAEo9/FuTpvhYSTlqLkNHBwojCZRo7Nz9p+CW6ziaHdQ6//Co+U5B27O5Uj
TLX4d3rjYEao0vbo3Ns29a5H+d1oJb2ArN1vxNY9ng14eR/VAgMBAAGjUDBOMB0G
A1UdDgQWBBT2XkNdy7u+CO3YdrETOideFEvxJTAfBgNVHSMEGDAWgBT2XkNdy7u+
bO3YdrETOideFEvxJTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQBl
zCDpzAH9jtlNYfRw88de75t/2NtM1kZANNq0sJoSBQLfOzfqCX2OwMDK905ZIGPY
JrKB7YX1HZ57KFlCHYr1LaeorYHck0aFyCtPBclkd7F2GdWNkbhlA6RQwBmoA+hN
cDOBRaQSa8YGOZiSH0zsQJcip44XzhlTRM8FDvXL5qWiqRphsQoH8lGx0RkstYKV
P6eOPOcBD61gw36lv6gRa3OEDeIG8QFI4XL4MFgJZiDBpM7APSMSf081KvJUAV6Z
BsV3ReUA2koosv2wYnfrBf4qUzDO3k/dGF+dPCeP5iL07P31FYGvXlPVpzFSFnDg
6AAhfVPQZGAjmSOOklF3
-----END CERTIFICATE-----
subject=/CN=mail.tachtler.net
issuer=/CN=mail.tachtler.net
---
No client certificate CA names sent
---
SSL handshake has read 1937 bytes and written 479 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : DHE-RSA-AES256-GCM-SHA384
    Session-ID: C8D0D0B5E0E8EC6F4389C162E024AED84DEF6928C457393C746AD93C353C43E2
    Session-ID-ctx: 
    Master-Key: AB3DAEB39A8B531B7BDEF2E1EA874E4D5DE497EB6997C4519306700DCAF3ADE65516C7F99DA69495
    21228D7AFAC8CA64
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - c8 a6 6c 37 94 e0 0b 5b-01 e5 54 c8 90 5f f1 62   ..l7...[..T.._.b
    0010 - 4a ca 03 8f f6 19 bc 31-1e de bb 60 89 aa 35 50   J..c...1...`..5P
    0020 - 20 3f 67 a0 d5 5f 09 9c-62 37 ac 73 e8 45 21 0e    ?g.._..b2.s.E!.
    0030 - 7a 83 8e b9 61 3b 90 ac-92 1a 7f e8 4a a9 24 40   z...aK......J.$@
    0040 - a9 8b d4 a3 75 ef 9f 67-32 58 75 1f 3c 24 bf 64   ....u..g2Yu.<$.d
    0050 - 0b c8 2a 85 aa f2 0e a7-33 69 99 64 9a b7 cf f6   ..*.4...3i.d....
    0060 - 4f 97 b0 17 24 46 cd 1e-37 da c6 ae df 0d 86 75   O...$F..7......u
    0070 - 7b 0e 35 d2 af c2 91 6a-f9 60 28 33 3f a3 21 df   {.5....j.`(3?.!.
    0080 - ae ae 40 63 96 1f 7f af-ec 1f 8a 5c 7e b2 4a 0f   ..@c...5...\~.J.
    0090 - d3 0a 17 06 dc c1 5f b4-11 be f4 ee 8e fc 3b f8   ......_...x...;.

    Start Time: 1395675234
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
. OK Pre-login capabilities listed, post-login capabilities have more.
a1 login klaus@tachtler.net geheim
* 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 SPECIAL-USE BINARY MOVE
a1 OK Logged in
a2 list "" "*"
* LIST (\HasChildren) "/" INBOX
a2 OK List completed (0.000 secs).
a3 logout
* BYE Logging out
a3 OK Logout completed.
closed

Erforderliche Benutzereingaben:

  1. openssl s_client -starttls imap -connect mail.tachtler.net:143
    :!: oder IP-Adresse
    openssl s_client -starttls imap -connect 192.168.0.80:143
  2. a1 login klaus@tachtler.net geheim
  3. a2 list "" "*"
  4. a3 logout

Eigene CA / CAcert

Bei Verwendung eines Zertifikats von einer eigenen CA oder von CACert, wie das in Firmen z.B. der Falls ist, müssen alle Zertifikate einer Zertifikatskette in umgekehrter Reihenfolge in eine einzelne Datei importiert werden.

Nachfolgendes Beispiel zeigt wie

in genau dieser Reihenfolge in eine einzelne Datei importiert werden.

Schritt 1 - *.tachtler.net-Zertifikat importieren:

# cat CAcert-wildcard-tachtler.net.crt > CAcert-class3-wildcard_all_in_one.crt
Schritt 2 - Intermediate-Zertifikat importieren:
# cat CAcert_intermediate.pem  >> CAcert-class3-wildcard_all_in_one.crt
Schritt 3 - Root-Zertifikat importieren:
cat CAcert_root.pem >> CAcert-class3-wildcard_all_in_one.crt

Login-Test mit telnet

Eine Überprüfung, ob eine Anmeldung unter Nutzung von SSL/TLS bei Verwendung einer Zertifikatskette nun genau so wie ein einzelnes Self-signed Certificate als ebenfalls Self signed erkannt wird, kann mit nachfolgendem Befehl durchgeführt werden: (Es wird nur ein Verbindung, ohne abgeschlossenen login aufgebaut)

# openssl s_client -starttls imap -connect 192.168.0.80:143
CONNECTED(00000003)
depth=2 O = Root CA, OU = http://www.cacert.org, CN = CA Cert Signing Authority, emailAddress = support@cacert.org
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0 s:/CN=*.tachtler.net
   i:/O=CAcert Inc./OU=http://www.CAcert.org/CN=CAcert Class 3 Root
 1 s:/O=CAcert Inc./OU=http://www.CAcert.org/CN=CAcert Class 3 Root
   i:/O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org
 2 s:/O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org
   i:/O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIE6jCCAtKgAwIBAgIDAi2HMA0GCSqGSIb3DQEBDQUAMFQxFDASBgNVBAoTC0NB
Y2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5vcmcxHDAaBgNV
BAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwHhcNMTQwNDEwMTg1MjI5WhcNMTYwNDA5
MTg1MjI5WjAZMRcwFQYDVQQDFA4qLnRhY2h0bGVyLm5ldDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAPIpr+FMiLXlHD+z6n/Uc0GRVZs3HcYKpj4puYWp
i/vgkZzJM7+YBgL8qXSeoAGRXttzk9s0LdjclLjF995ZKKsgcpVfWdF5GH97wzCY
ZStQR19PWtSXauKVzTvWC8Kh2ZZkanr/0t7MtqBdJdxXHJhZIuA4Q9jiSWVggzx/
XoAbxdJNZHnZsyG3fptkwXFK/nyjEyBL+Z7kYObXcUP7psh3EZzn1bn6oss95oyr
LQyubzRhJArEo9Josqtyh1cAgnvoesPQlbA+BxtJ9LoO94BfKwFw9Mw5Gnbhwbjx
sgruuh+Ml8CZyFfbF9HsWRuRa1syRxIEzA+U01Lp3p0/uhUCAwEAAaOB/zCB/DAM
BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIDqDA0BgNVHSUELTArBggrBgEFBQcD
AgYIKwYBBQUHAwEGCWCGSAGG+EIEAQYKKwYBBAGCNwoDAzAzBggrBgEFBQcBAQQn
MCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmNhY2VydC5vcmcvMDgGA1UdHwQx
MC8wLaAroCmGJ2h0dHA6Ly9jcmwuY2FjZXJ0Lm9yZy9jbGFzczMtcmV2b2tlLmNy
bDA3BgNVHREEMDAugg4qLnRhY2h0bGVyLm5ldKAcBggrBgEFBQcIBaAQDA4qLnRh
Y2h0bGVyLm5ldDANBgkqhkiG9w0BAQ0FAAOCAgEAZqJtMOD7OVEb6VYhG6y8XEKg
9zgrvw+jDyAD6ehagA9SESCwFyfAsFYDe/2yclEqsmdAaBlRXY66pIZ98y/3vmZQ
U1+TZ8TK6XoOku9TL1gZE/AOELdvMlFihtgnzj9mSaacEWgmvOoY9ELdDNpKQfHp
JBEpOJcVvYpboFt2+LB0xlSCbz8+9ZCplOTX/awD395OMFuDFLNobglrDJwXpD94
AZfTRUN2jOhXV2EUe+yyjVVVr2WhGM07pIafHhYhQalXzLIIY416O/NtCfOl9lCT
tzojDyeVdqtyeBMcDObPKCrOMy7dwQoF2EifcieCODS/7CCihVOz/cIV6j9mCL6I
d/HblAQnUzGnYmUAfLje79t6PA/BVOOg2TE27rDqsmDxfj6+DbjiR8WRquzmBgda
pp5I/mu7KB7ch4vnUJvMsAu5yvQ178syBUbadhRy3lsldpcTgwajMCyev2+7csRK
dyKFk9l+FPxtu0frGm6CSKsxL+773PN7DTooYG2451hNBnQvk/SKt5AbknMQt3FV
tqmIE4n7zenrehItSZocMdd3FHA6K6OKkWeDv1O6qL0bgVY7Yb8pCn2+/O2jux3z
uZweHc6zFhfg8IfTL6MOlfZSWlMU+q452vIXnoLVIWyLgmLGcZyVgXaumCVXopMv
1L95vruMaWTlXcGVYQg=
-----END CERTIFICATE-----
subject=/CN=*.tachtler.net
issuer=/O=CAcert Inc./OU=http://www.CAcert.org/CN=CAcert Class 3 Root
---
No client certificate CA names sent
Server Temp Key: ECDH, prime256v1, 256 bits
---
SSL handshake has read 6060 bytes and written 401 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 63A349AEDB6241A498691620C64089697548C10946B471201F68D0227B198566
    Session-ID-ctx: 
    Master-Key: 18629B8684C43ACBCE6477544EAC0A6996F0829297A76FEC5CE4A81634A4964AF8142960875A55E9EA7E27B7CFBED769
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 51 bf 00 ed 77 92 bf 24-67 b1 a6 7f 45 76 ff 65   Q...w..$g...Ev.e
    0010 - ef e3 dd 3d 35 db ff fd-eb fa f4 76 84 0e e7 9c   ...=5......v....
    0020 - 0c 8a 65 50 b8 de d6 95-32 e9 4e 8c 3c 9a a4 b3   ..eP....2.N.<...
    0030 - 5f 83 d4 25 c4 d2 05 c7-1d 14 54 ac 75 8c 90 b7   _..%......T.u...
    0040 - 48 42 4d 79 52 bc 64 dc-55 54 43 59 3e 7b cf d9   HBMyR.d.UTCY>{..
    0050 - 3c 8e ae c1 c2 33 9d 27-48 7d af 84 8d fc 0b c2   <....3.'H}......
    0060 - a6 4e 7c 2e ec b4 9f 18-95 dc 64 8b 23 de d9 10   .N|.......d.#...
    0070 - 40 2e 04 9f 02 ce 3b 61-d4 6d 31 63 33 5e 9f 9c   @.....;a.m1c3^..
    0080 - 65 e4 73 7e b6 26 13 2c-ee 4c b6 e1 2d d4 75 45   e.s~.&.,.L..-.uE
    0090 - f3 cd 5d 09 af 44 cb e6-7f ad 19 84 76 58 73 f5   ..]..D......vXs.

    Start Time: 1436445698
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---
. OK Pre-login capabilities listed, post-login capabilities have more.
a1 logout
* BYE Logging out
a1 OK Logout completed.
closed

Erforderliche Benutzereingaben:

  1. openssl s_client -starttls imap -connect 192.168.0.80:143
  2. a1 logout
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/dovecot_ssl_tls.txt · Zuletzt geändert: 2015/09/29 14:06 von klaus