Debian Postfix SMTP-TLS und Cyrus ImapS: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 83: Zeile 83:


Im Mailprogramm in den Konten/Servereinstellungen '''TLS''' aktivieren.
Im Mailprogramm in den Konten/Servereinstellungen '''TLS''' aktivieren.
{{Rechteck2|'''Achtung:'''
:'''''TLS''''' nicht mit der Einstellung '''''TLS,wenn verfügbar''''' (oder ähnliche Bezeichnung, abhängig von Mail Client) verwechseln. Mit der Einstellung '''''TLS''''' wird TLS erzwungen und eine Fehlrmeldung ausgegeben, falls aus irgendwelchen Gründen keine TLS-Verbindung zustande kam. In der Einstellung '''''TLS,wenn verfügbar''''', erscheint keinerlei Hinweis oder Fehler, wenn keine TLS-Verbindung aufgebaut werden konnte.}}
Anschließend eine Mail an einen bekannten Empfänger versenden, bzw. notfalls an root, da die mail via Alias dann ins eigene Postfach zugestellt werden sollte.
Anschließend eine Mail an einen bekannten Empfänger versenden, bzw. notfalls an root, da die mail via Alias dann ins eigene Postfach zugestellt werden sollte.
Das Mailprogramm wird evtl. eine Warnung ausgeben, dass das Zertifikat von einer unbekannten Zertifizierungsstelle signiert wurde bzw. unbekannter Herkunft ist.
Das Mailprogramm wird evtl. eine Warnung ausgeben, dass das Zertifikat von einer unbekannten Zertifizierungsstelle signiert wurde bzw. unbekannter Herkunft ist.

Version vom 16. März 2009, 20:36 Uhr

Postfix SMTP-TLS und Cyrus ImapS

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.

Voraussetzung:

ist installiert und funktionsfähig

  • OpenSSL ist installiert (wurde bereits automatisch mit Postfix/Cyrus installiert)

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.

mkdir /etc/postfix/ssl
etc/postfix/ssl
Hinweis:

Für die SSL-Zertifikate sind einige Parameter wichtig. Diese sind:

  • C (country:2 Zeichen) - z.B. DE
  • ST (State/Provinz)
  • L (Locality/Ort)
  • O (Organisation) - z.B. Private
  • OU (Organisational Unit) - z.B. Server Administration
  • CN (Common Name) - z.B. domain.org

Im folgenden werden die Schlüssel und Zertifikate angelegt. Es ist mehrmals ein beliebiges Passwort einzugeben. Das Passwort des Key-Files wird entfernt. Ansonsten müßte bei jedem Server-Neustart erst das Passwort eingegeben werden, bevor Postfix/Cyrus funktionieren würden. Obige Parameter sind zweimal erforderlich.

Achtung:
Der Common Name sollte unbedingt mit der IMAP- bzw. SMTP- Server übereinstimmen, die später im Mailclient verwendet werden soll. Bei einer Diskrepanz von beidem wird der Mailclient diesen Umstand in Zukunft jedesmal aufs neue anmeckern!


openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key

openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key

openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out ca-cert.pem -days 3650

Konfiguration

Postfix

vi /etc/postfix/main.cf

Folgende Parameter einfügen bzw. ändern:

smtp_use_tls=yes
smtpd_use_tls = yes
smtpd_tls_CApath = /etc/postfix/ssl
smtpd_tls_CAfile = /etc/postfix/ssl/ca-cert.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


Cyrus

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

vi /etc/imapd.conf

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

tls_cert_file: /etc/postfix/ssl/smtpd.crt
tls_key_file: /etc/postfix/ssl/smtpd.key
tls_ca_file: /etc/postfix/ssl/ca-cert.pem
tls_ca_path: /etc/postfix/ssl/


Konfigurationsfile cyrus.conf (die Änderung wurde normalerweise bereits bei der Einrichtung von Postfix/Cyrus gemäß WIKI-Eintrag erledigt. Dennoch sollte die Einstellung nochmals verifiziert werden.

vi /etc/cyrus.conf

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

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


Testen von Postfix

Postfix Server neu starten:

/etc/init.d/postfix restart

Im Mailprogramm in den Konten/Servereinstellungen TLS aktivieren.

Achtung:
TLS nicht mit der Einstellung TLS,wenn verfügbar (oder ähnliche Bezeichnung, abhängig von Mail Client) verwechseln. Mit der Einstellung TLS wird TLS erzwungen und eine Fehlrmeldung ausgegeben, falls aus irgendwelchen Gründen keine TLS-Verbindung zustande kam. In der Einstellung TLS,wenn verfügbar, erscheint keinerlei Hinweis oder Fehler, wenn keine TLS-Verbindung aufgebaut werden konnte.

Anschließend eine Mail an einen bekannten Empfänger versenden, bzw. notfalls an root, da die mail via Alias dann ins eigene Postfach zugestellt werden sollte. Das Mailprogramm wird evtl. eine Warnung ausgeben, dass das Zertifikat von einer unbekannten Zertifizierungsstelle signiert wurde bzw. unbekannter Herkunft 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 SMTP-Server aber nach wie vor die interne IP-Adresse angegeben ist.

Beide Warnungen/Hinweise bestätigen (nur für aktuelle Session, nicht dauerhaft). Nach dem Bestätigen der Warnungen, sollte die email im Postfach des Empfängers abgelegt werden. Damit ist die Postfix Fähigkeit zum verschlüsselten Emailversand nachgewiesen.

Hinweis:
Da sowohl für SMTP als auch für SMTP-TLS jeweils der Port 25 verwendet wird, sind keine weiteren Vorkehrungen nötig, um SMTP-TLS auch über eine Internetverbindung zu ermöglichen, als den Port 25 im Router an den Server weiterzuleiten (siehe auch → hier).


Testen von ImapS

Cyrus Imap Server neustarten:

/etc/init.d/cyrus2.2 restart

Im Mailprogramm in den Konten/Servereinstellungen SSL aktivieren. Anschließend das Konto eines Nutzers des Imap-Servers auswählen. Das Mailprogramm wird evtl. eine Warnung ausgeben, dass das Zertifikat von einer unbekannten Zertifizierungsstelle signiert wurde bzw. unbekannter Herkunft 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,


Optional: 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_des_Servers
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_des_Servers
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.