Cyrus SSL

Aus Wiki
Zur Navigation springen Zur Suche springen

SSL/TLS Zugriff auf Imap Postfach

Für den Zugriff auf die emails via Internet sollten stets nur SSL-verschlüsselte Verbindungen verwendet werden, um ein abhören der Passwörter und des Mailinhaltes zu vermeiden. Im Zusammenhang mit Mailservern spricht man bei einer SSL-verschlüsselten Verbindung oft auch von TLS (Transport Layer Security), das die allermeisten gängigen Mailclients anbieten.

Voraussetzungen:

sind installiert und funktionsfähig

Zur Einrichtung von SSL sind folgende Schritte erforderlich

Generierung von Schlüssel und Zertifikaten

Die SSL Verschlüsselung basiert wie bekannt auf Keys und Zertifiakten. Diese werden nun erzeugt.

cd /opt/etc/ssl/key

Mit folgendem Befehl wird der Key und das CSR-File in einem Vorgang angelegt. Passwort wird abgefragt und Eingaben wie unter → Einrichtung von OpenSSL beschrieben. Insbesondere den Namen der →Dynamic DNS Domain bei der Frage nach dem Common Name (CN) eingeben. Mit dem Parameter -days die Laufzeit des Zertifikates festlegen.

openssl req -new -keyout mailserver_prv_key.pem -out mailserver_req.pem -days 365

Entfernung des Passwortes:

openssl rsa < mailserver_prv_key.pem > mailserver_prv_key-nopwd.pem

Signieren (Abfragen mit y bestätigen):

cd ../ca
openssl ca -config ca.config -out ../cert/mailserver_cert.pem -infiles ../key/mailserver_req.pem
openssl verify -CAfile ca.crt ../cert/mailserver_cert.pem

Installieren der Zertifikate

Nachdem auf die eben erzeugten Zertifikate und Schlüssel nur der User root Zugriff hat, der Mailserver Cyrus aber unter dem Useraccount Mail läuft, werden die Zertifikate und Schlüssel ins Verzeichnis /opt/var/imap transferiert und die Rechte entsprechend angepasst, sodass der User mail (und nur dieser) darauf Zugriff hat. Dadurch bleiben alle anderen Zertifikate in den Unterordnern /opt/etc/ssl weiterhin unter der Obhut des Users root.

mkdir /opt/var/imap
cp ca.crt /opt/var/imap
cp ../key/mailserver_prv_key-nopwd.pem /opt/var/imap
cp ../cert/mailserver_cert.pem /opt/var/imap

Anpassen der Rechte:

chown -R mail:mail /opt/var/imap
chmod -R 700 /opt/var/imap

Anpassung von Konfigfiles

Konfigurationsfile imapd.conf bearbeiten, um Cyrus die eben angelegten Zertifikate bekannt zu machen

vi /opt/etc/imapd.conf

Folgende Einstellungen aktivieren (entfernen des Kommentarzeichens #) und anpassen der Pfade:

tls_cert_file: /opt/var/imap/mailserver_cert.pem
tls_key_file:  /opt/var/imap/mailserver_prv_key-nopwd.pem
tls_ca_file:   /opt/var/imap/ca.crt

Konfigurationsfile cyrus.conf

vi /opt/etc/cyrus.conf

ImapS (secure Imap) aktiveren, durch entfernend des Kommentarzeichens # vor folgendem Eintrag:

imaps  cmd="imapd -s" listen="imaps" prefork=0

Testen von ImapS

Cyrus Imap Server neustarten:

/opt/etc/init.d/S59cyrus-imapd restart

Im Mailprogramm in den Konten/Servereinstellungen SSL aktivieren. Anschließend das Konto eines Nutzers des Imap-Servers auswählen. das Mailprogramm wird eine Warnung ausgeben, dass das Zertifikat von einer unbekannten Zertifizierungsstelle signiert wurde(korrekt so, da das Zertifikat von der eingenen CA signiert wurde und damit keinem Mailprogramm bekannt ist). Desweiteren wird evtl.eine Warnung ausgegeben, dass der Hostname von Zertifikat nicht mit demjenigen aus den Emailkonto übereinstimmt. Ursache ist vermutlich, dass während der Generierung des Zertifikats der Common Name (CN) mit der DYN-DNS-Adresse belegt wurde, als Mailserver aber nach wie vor die interne IP-Adresse als Imap-Server angegeben ist.

Beide Warnungen/Hinweise bestätigen (nur für aktuelle Session, nicht dauerhaft).

Nun sollte die Email-Liste ohne weitere Fehler erscheinen und normaler Zugriff auf die Mails bestehen. Damit ist die Funktionsweise der SSL-Verschlüsselung nachgewiesen. Damit kann der externe Zugriff aus dem Internet auf den Imap-Mailserver erfolgen,


Zugriff auf Imap-Server via Internet

Damit der Zugriff aus dem Internet auf den Imap-Server aus dem Internet möglich ist, muß der TCP/IP-Port 993 im DSL-Router auf die interne IP-Adresse der NSLU (Port 993) weitergeleitet werden.

Einrichtung Portweiterleitung

Die Weboberfläche des Routers öffnen und anhand der Bedienungsanleitung eine Portweiterleitung mit folgenden Daten einrichten:

Bezeichnung: Z.B. IMAPS
Protokoll: TCP
von Port: 993
an IP-Adresse: IP_der_NSLU
an port: 993


Test des Zugriffs aus dem Internet:

Analog → Test des ImapS - Servers die Kontoeinstellungen im Mailprogramm öffnen. Als Posteingangsserver die externe → Dyndns-Domain eingeben (SSL Protokoll muss nachwievor angewählt sein).

Nach Verlassen der Einstellungen und Anwählen des Kontos im Mailprogramm, wird evtl. erneut eine Warnung ausgegeben, da das Zertifikat von der eigenen CA signiert wurde. Es sollte hier allerdings keine Warnung erscheinen, dass das Zertifikat nicht zum angegbenen Mailserver passt. Sollte dies der Fall sein, wurde beim → Generieren der Zertifikate der Common Name (CN) nicht auf die → Dyndns-Domain gesetzt. In diesem Fall sollten die Schritte zum → Generieren der Zertifikate erneut durchgeführt werden.

Zurückstellen der Optionen im Mailclient

Mit den Einstellungen des Malprogramms gemäß → Test des Zugriffs aus dem Internet erfolgt bei jedem Zugriff auf das Mailkonto auf folgendem Weg: Mailprogramm → DSL-Router → Internet Provider → DSL-Router → NSLU. Die Antwort wird entsprechend auf dem selben Weg zurück an das Mailprogramm gesendet.

Im Internen Netz zuhause ist dies nicht nur unnötig, sondern erhöht unter Umständen deutlich die Antwortzeiten des Mailservers (abhängig von Upload-/Downloadrate).

Die Kontoeinstellungen im Mailprogramm sollten deshalb zurück auf die ursprünglichen Einstellungen zurückgesetzt werden.

Posteingangsserver: IP_der_NSLU
SSL deaktiviert.

SSL kann aktiviert bleiben, wenn das Mailprogramm anbietet, das Zertifikat permanent zu aktivieren, ohne dass städnig eine Warnmeldung erscheint. Ansonsten ist die Einstellung lästig, wenn permanent die Warnmeldung weggeklickt werden muss.