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

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(23 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==SSL/TLS Zugriff auf Imap Postfach==
==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.
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:
Voraussetzung:
* [[Debian_Postfix und Cyrus Imapd|Postfix und Cyrus Imapd]]
* [[Debian_Postfix und Cyrus Imapd|Postfix und Cyrus Imapd]] ist installiert und funktionsfähig
ist installiert und funktionsfähig
* [[Debian_OpenSSL|OpenSSL]] ist installiert


Zur Einrichtung von SSL sind folgende Schritte erforderlich
Zur Einrichtung von SSL sind folgende Schritte erforderlich
* [[Debian_Cyrus_SSL#Generierung von Schlüssel und Zertifikaten|Generierung der Zertifikate]]
* [[Debian_Postfix_SMTP-TLS_und_Cyrus_ImapS#Generierung von Schlüssel und Zertifikaten|Generierung der Zertifikate]]
* [[Debian_Cyrus_SSL#Anpassung von Konfigfiles|Anpassung von Konfigfiles]]
* [[Debian_Postfix_SMTP-TLS_und_Cyrus_ImapS#Anpassung von Konfigfiles|Anpassung von Konfigfiles]]
 


==Generierung von Schlüssel und Zertifikaten==
==Generierung von Schlüssel und Zertifikaten==
Die SSL Verschlüsselung basiert wie bekannt auf Keys und Zertifiakten. Diese werden nun erzeugt.
Die SSL Verschlüsselung basiert wie bekannt auf Keys und Zertifiakten. Diese werden nun erzeugt. Beim Anlegen der Root-CA wurde bereits ein Serverzertifikat erstellt, das auch für den Mailserverver verwendet werden kann. Es kann auch das Wildcard Zertifikat verwendet werden, falls später im Client für Zugriffe via Internet eine Subdomain (z.B. imap.domain.org/smtp.domain.org anstatt domain.org) verwendet werden soll. Es kann auch einfach ein neues Zertifikat erstellt werden, das ausschließlich für den Mailserver verwendet wird und nicht auch noch zusätzlich für andere Serverdienste wie Apache.
 
===Optional: Mailzertifikat neu erstellen===
Falls nötig (siehe oben) wird hier ein neues Zertifikat für den Mailserver erstellt (von bestehender CA signiert) (ausführliche Hinweise siehe [[Debian_OpenSSL#Server-Zertifikat erstellen|OpenSSL]]):
cd /etc/ssl/CA
openssl req -new -nodes -out req.pem -config ./openssl.conf
openssl ca -out cert.pem -config ./openssl.conf -infiles req.pem
mv req.pem req/mail-req.pem
mv key.pem key/mail-key.pem
mv cert.pem certs/mail-cert.pem
 


TBD
===Zertifikat in Postfix Directory-Tree einbinden===
Damit Postfix und Cyrus auf das SSL-Zertifikat Zugriff haben, muss das Zertifikat und der Key im korrekten Verzeichnis liegen. In folgenden Kopierbefehlen bitte '''''KEY.pem''''' und '''''CERT.pem''''' mit den zu verwendenden Zertifikate- bzw. Keyfilenamen (z.B. mail-key.pem bzw. mail-crt.pem) ersetzen:
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl
cp -up /etc/ssl/CA/key/'''''KEY.pem''''' smtpd.key
cp -up /etc/ssl/CA/certs/'''''CERT.pem''''' smtpd.crt
cp -up /etc/ssl/CA/private/cakey.pem cakey.pem
cp -up /etc/ssl/CA/cacert.pem ca-cert.pem


==Installieren der Zertifikate==
Zugriffsrechte anpasen:
TBD
chmod 640 *
chown root:ssl-cert *
Postfix-und Cyrus User der Gruppe ssl-cert hinzufügen, damit diese die Zertifikate lesen können
adduser cyrus ssl-cert
adduser postfix ssl-cert


==Anpassung von Konfigfiles==


===Optional: Root-CA des Providers einbinden===
Damit beim SSL-verschlüsselten Mailversand nicht ständig Zertifikatsfehler in den LOG-Files auftauchen, wird das sog. Root-CA-Zertifikat des Mailservers benötigt. Bei den Zertifikat Fehlern handelt es sich um Warnungen und keine echten Fehler. Die Verbindung wird trotzdem verschlüsselt aufgebaut.
Je nach verwendetem Provider kann dessen SSL-Zertifikat von unterschiedlichen Certificate Authorities (CA) unterscheiden sein. Hier wird die allgemeine Vorgehensweise beschrieben und als Beispiel der SMTP-Server von 1und1 verwendet.
Ermitteln der Root-CA:
openssl s_client -connect smtp.1und1.de:25 -starttls smtp
Es werden jede Menge Informationen zur SSL-Verbindung und zum Zertifikat ausgegeben. Für die Anwendung hier ist die wichtigste Information folgende:
-----END CERTIFICATE-----
subject=/C=DE/ST=Rheinland-Pfalz/L=Montabaur/O=1 und 1 Internet AG/CN=smtp.1und1.de
issuer=/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server  CA/emailAddress=premium-server@thawte.com
Aus diser Angabe geht hervor, dass das 1und1 Serverzertifikat von Thawte mit der '''Premium Server CA''' signiert und verifiziert wurde.
Nun muss dieses Root-CA-Zertifikat (im vorliegenden Fall das Thawte Premium Server CA Zertifikat) heruntergeladen werden, entpackt und ins SSL-Verzeichnis von Postfix verschoben werden. Der Einfachheit halber wird dieses CA-zertifikat in smtp-root-ca.pem umbenannt, sodass dieses immer gleich heißt, egal ob es von Thawte oder einer sonstigen CA stammt.
Dazu muss dieses erst im Internet - am Besten mittels Google - ermittelt werden.
Im Falle der Thawte Root-Zertifikate (die Schritte 1-3 hängen extrem vom anzuwendenden Root-Zertifikat ab):
1. Download
cd /root
wget https://www.verisign.com/support/thawte-roots.zip
2. Entpacken:
unzip thawte-roots.zip
3. Verschieben zu den eben selbst erzeugten Zertifikaten:
mv "Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem" /etc/postfix/ssl/smtp-root-ca.pem
4. Rechte anpassen
chmod 600 /etc/postfix/ssl/smtp-root-ca.pem
'''Zugriffsrechte der Zertifikate anpassen (erforderlich)'''
chgrp ssl-cert /etc/postfix/ssl/*
chmod 640 /etc/postfix/ssl/*
==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
Optional:
Falls das Root-CA-Zertifikat des Mailservers des Providers installiert wurde ([[Debian_Postfix_SMTP-TLS_und_Cyrus_ImapS#Generierung von Schlüssel und Zertifikaten|→ siehe hier am Ende des Kapitels]], folgende Option ergänzen:
smtp_tls_CAfile = /etc/postfix/ssl/smtp-root-ca.pem
===Cyrus===
Konfigurationsfile imapd.conf bearbeiten, um Cyrus die eben angelegten Zertifikate bekannt zu machen
Konfigurationsfile imapd.conf bearbeiten, um Cyrus die eben angelegten Zertifikate bekannt zu machen
  vi /etc/imapd.conf
  vi /etc/imapd.conf
Folgende Einstellungen aktivieren (entfernen des Kommentarzeichens #) und anpassen der Pfade:
Folgende Einstellungen aktivieren (entfernen des Kommentarzeichens #) und anpassen der Pfade:
tls_server_cert: /etc/postfix/ssl/smtpd.crt
tls_server_key: /etc/postfix/ssl/smtpd.key
tls_client_ca_file: /etc/postfix/ssl/ca-cert.pem
tls_client_ca_dir: /etc/postfix/ssl/
Neueste, sicherste TLS-Version 1.2 erzwingen:
tls_versions: tls1_2
Falls ältere Clients damit nicht klar kommen sollten, evtl. TLS 1.1 oder sogar TLS 1.0 aktivieren
tls_versions: tls1_0 tls1_1 tls1_2




Konfigurationsfile cyrus.conf
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 /opt/etc/cyrus.conf
  vi /etc/cyrus.conf
ImapS (secure Imap) aktiveren, durch entfernen des Kommentarzeichens # vor folgendem Eintrag:
ImapS (secure Imap) aktiveren, durch entfernen des Kommentarzeichens # vor folgendem Eintrag:
  imaps  cmd="imapd -s" listen="imaps" prefork=0
  imaps  cmd="imapd -s" listen="imaps" prefork=0
==Testen von Postfix==
Postfix Server neu starten:
/etc/init.d/postfix restart
Im Mailprogramm zunächst das Root-CA-Zertifikat importieren, falls noch nicht geschehen, wie [[Debian_OpenSSL#Mozilla Firefox und Thunderbird|→ hier]] exemplarisch für Thunderbird beschrieben.
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 sollte keine Warnung ausgeben, da das Zertifikat von der (importierten) eigenen Root-CA signiert wurde.
Es wird allerdings evtl.eine Warnung ausgegeben, wenn der Hostname von Zertifikat (CN) nicht mit demjenigen aus den Emailkonto übereinstimmt (z.B. IP_Des_Server). 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.
Die 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 [[Debian_Postfix_und_Cyrus_Imapd#Postfix erreichbar aus dem Internet|→ hier]]).}}


==Testen von ImapS==
==Testen von ImapS==
Cyrus Imap Server neustarten:
Cyrus Imap Server neustarten:
  /etc/init.d/cyrus2.2 restart
  /etc/init.d/cyrus2.2 restart
bzw. bei '''Wheezy'''
/etc/init.d/cyrus-imapd restart
Im Mailprogramm zunächst das Root-CA-Zertifikat importieren, falls noch nicht geschehen, wie [[Debian_OpenSSL#Mozilla Firefox und Thunderbird|→ hier exemplarisch für Thunderbird beschrieben.


Im Mailprogramm in den Konten/Servereinstellungen SSL aktivieren.
Im Mailprogramm in den Konten/Servereinstellungen '''SSL''' aktivieren.
Anschließend das Konto eines Nutzers des Imap-Servers auswählen.
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).
Das Mailprogramm sollte keine Warnung ausgeben, da das Zertifikat von der (importierten) eigenen Root-CA signiert wurde.  
 
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.
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).
Die 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.
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,
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==
==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.
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.


Zeile 57: Zeile 167:




===Test des Zugriffs aus dem Internet:===
===Test des Zugriffs aus dem Internet===
Analog [[Cyrus SSL#Testen von ImapS|→ Test des ImapS - Servers]] die Kontoeinstellungen im Mailprogramm öffnen. Als Posteingangsserver die externe [[DYNDNS-Update#Allgemeines zu Dynamic DNS Providern|→ Dyndns-Domain]] eingeben (SSL Protokoll muss nachwievor angewählt sein).
Analog [[Cyrus SSL#Testen von ImapS|→ Test des ImapS - Servers]] die Kontoeinstellungen im Mailprogramm öffnen. Als Posteingangsserver die externe [[DYNDNS-Update#Allgemeines zu Dynamic DNS Providern|→ 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 [[Cyrus SSL#Generierunng von Schlüssel und Zertifikaten|→ Generieren der Zertifikate]] der Common Name (CN) nicht auf die [[DYNDNS-Update#Allgemeines zu Dynamic DNS Providern|→ Dyndns-Domain]] gesetzt. In diesem Fall sollten die Schritte zum [[Cyrus SSL#Generierung von Schlüssel und Zertifikaten|→ Generieren der Zertifikate]] erneut durchgeführt werden.
Nach Verlassen der Einstellungen und Anwählen des Kontos im Mailprogramm, sollte kein Fehler/Warnung ausgegeben werden, da nun CN (Zertifikat) und im Mailprogramm eingegebene Domain übereinstimmen sollen. Sollte dennopch eine Warnung ausgegeben werden, wurde beim [[Cyrus SSL#Generierunng von Schlüssel und Zertifikaten|→ Generieren der Zertifikate]] der Common Name (CN) nicht auf die [[DYNDNS-Update#Allgemeines zu Dynamic DNS Providern|→ Dyndns-Domain]] gesetzt. In diesem Fall sollten die Schritte zum [[Cyrus SSL#Generierung von Schlüssel und Zertifikaten|→ Generieren der Zertifikate]] erneut durchgeführt werden.


===Zurückstellen der Optionen im Mailclient===


===Zurückstellen der Optionen im Mailclient für rein lokalen Zugriff===
Mit den Einstellungen des Malprogramms gemäß [[Cyrus SSL#Test des Zugriffs aus dem Internet:|→ Test des Zugriffs aus dem Internet]] erfolgt bei jedem Zugriff auf das Mailkonto auf folgendem Weg:
Mit den Einstellungen des Malprogramms gemäß [[Cyrus SSL#Test des Zugriffs aus dem Internet:|→ Test des Zugriffs aus dem Internet]] erfolgt bei jedem Zugriff auf das Mailkonto auf folgendem Weg:
Mailprogramm → DSL-Router → Internet Provider → DSL-Router → NSLU.
Mailprogramm → DSL-Router → Internet Provider → DSL-Router → NSLU.

Aktuelle Version vom 4. März 2021, 19:31 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:

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. Beim Anlegen der Root-CA wurde bereits ein Serverzertifikat erstellt, das auch für den Mailserverver verwendet werden kann. Es kann auch das Wildcard Zertifikat verwendet werden, falls später im Client für Zugriffe via Internet eine Subdomain (z.B. imap.domain.org/smtp.domain.org anstatt domain.org) verwendet werden soll. Es kann auch einfach ein neues Zertifikat erstellt werden, das ausschließlich für den Mailserver verwendet wird und nicht auch noch zusätzlich für andere Serverdienste wie Apache.

Optional: Mailzertifikat neu erstellen

Falls nötig (siehe oben) wird hier ein neues Zertifikat für den Mailserver erstellt (von bestehender CA signiert) (ausführliche Hinweise siehe OpenSSL):

cd /etc/ssl/CA
openssl req -new -nodes -out req.pem -config ./openssl.conf
openssl ca -out cert.pem -config ./openssl.conf -infiles req.pem
mv req.pem req/mail-req.pem
mv key.pem key/mail-key.pem
mv cert.pem certs/mail-cert.pem


Zertifikat in Postfix Directory-Tree einbinden

Damit Postfix und Cyrus auf das SSL-Zertifikat Zugriff haben, muss das Zertifikat und der Key im korrekten Verzeichnis liegen. In folgenden Kopierbefehlen bitte KEY.pem und CERT.pem mit den zu verwendenden Zertifikate- bzw. Keyfilenamen (z.B. mail-key.pem bzw. mail-crt.pem) ersetzen:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl
cp -up /etc/ssl/CA/key/KEY.pem smtpd.key
cp -up /etc/ssl/CA/certs/CERT.pem smtpd.crt
cp -up /etc/ssl/CA/private/cakey.pem cakey.pem
cp -up /etc/ssl/CA/cacert.pem ca-cert.pem

Zugriffsrechte anpasen:

chmod 640 *
chown root:ssl-cert *

Postfix-und Cyrus User der Gruppe ssl-cert hinzufügen, damit diese die Zertifikate lesen können

adduser cyrus ssl-cert
adduser postfix ssl-cert


Optional: Root-CA des Providers einbinden

Damit beim SSL-verschlüsselten Mailversand nicht ständig Zertifikatsfehler in den LOG-Files auftauchen, wird das sog. Root-CA-Zertifikat des Mailservers benötigt. Bei den Zertifikat Fehlern handelt es sich um Warnungen und keine echten Fehler. Die Verbindung wird trotzdem verschlüsselt aufgebaut. Je nach verwendetem Provider kann dessen SSL-Zertifikat von unterschiedlichen Certificate Authorities (CA) unterscheiden sein. Hier wird die allgemeine Vorgehensweise beschrieben und als Beispiel der SMTP-Server von 1und1 verwendet.

Ermitteln der Root-CA:

openssl s_client -connect smtp.1und1.de:25 -starttls smtp

Es werden jede Menge Informationen zur SSL-Verbindung und zum Zertifikat ausgegeben. Für die Anwendung hier ist die wichtigste Information folgende:

-----END CERTIFICATE-----
subject=/C=DE/ST=Rheinland-Pfalz/L=Montabaur/O=1 und 1 Internet AG/CN=smtp.1und1.de
issuer=/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server  CA/emailAddress=premium-server@thawte.com

Aus diser Angabe geht hervor, dass das 1und1 Serverzertifikat von Thawte mit der Premium Server CA signiert und verifiziert wurde.

Nun muss dieses Root-CA-Zertifikat (im vorliegenden Fall das Thawte Premium Server CA Zertifikat) heruntergeladen werden, entpackt und ins SSL-Verzeichnis von Postfix verschoben werden. Der Einfachheit halber wird dieses CA-zertifikat in smtp-root-ca.pem umbenannt, sodass dieses immer gleich heißt, egal ob es von Thawte oder einer sonstigen CA stammt. Dazu muss dieses erst im Internet - am Besten mittels Google - ermittelt werden. Im Falle der Thawte Root-Zertifikate (die Schritte 1-3 hängen extrem vom anzuwendenden Root-Zertifikat ab): 1. Download

cd /root
wget https://www.verisign.com/support/thawte-roots.zip

2. Entpacken:

unzip thawte-roots.zip 

3. Verschieben zu den eben selbst erzeugten Zertifikaten:

mv "Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem" /etc/postfix/ssl/smtp-root-ca.pem

4. Rechte anpassen

chmod 600 /etc/postfix/ssl/smtp-root-ca.pem 

Zugriffsrechte der Zertifikate anpassen (erforderlich)

chgrp ssl-cert /etc/postfix/ssl/*
chmod 640 /etc/postfix/ssl/*


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

Optional: Falls das Root-CA-Zertifikat des Mailservers des Providers installiert wurde (→ siehe hier am Ende des Kapitels, folgende Option ergänzen:

smtp_tls_CAfile = /etc/postfix/ssl/smtp-root-ca.pem


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_server_cert: /etc/postfix/ssl/smtpd.crt
tls_server_key: /etc/postfix/ssl/smtpd.key
tls_client_ca_file: /etc/postfix/ssl/ca-cert.pem
tls_client_ca_dir: /etc/postfix/ssl/

Neueste, sicherste TLS-Version 1.2 erzwingen:

tls_versions: tls1_2

Falls ältere Clients damit nicht klar kommen sollten, evtl. TLS 1.1 oder sogar TLS 1.0 aktivieren

tls_versions: tls1_0 tls1_1 tls1_2


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 zunächst das Root-CA-Zertifikat importieren, falls noch nicht geschehen, wie → hier exemplarisch für Thunderbird beschrieben.

Im Mailprogramm in den Konten/Servereinstellungen TLS aktivieren.

Warning.png 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 sollte keine Warnung ausgeben, da das Zertifikat von der (importierten) eigenen Root-CA signiert wurde.

Es wird allerdings evtl.eine Warnung ausgegeben, wenn der Hostname von Zertifikat (CN) nicht mit demjenigen aus den Emailkonto übereinstimmt (z.B. IP_Des_Server). 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.

Die 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.

Bulbgraph.png 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

bzw. bei Wheezy

/etc/init.d/cyrus-imapd restart

Im Mailprogramm zunächst das Root-CA-Zertifikat importieren, falls noch nicht geschehen, wie [[Debian_OpenSSL#Mozilla Firefox und Thunderbird|→ hier exemplarisch für Thunderbird beschrieben.

Im Mailprogramm in den Konten/Servereinstellungen SSL aktivieren. Anschließend das Konto eines Nutzers des Imap-Servers auswählen. Das Mailprogramm sollte keine Warnung ausgeben, da das Zertifikat von der (importierten) eigenen Root-CA signiert wurde.

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.

Die 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, sollte kein Fehler/Warnung ausgegeben werden, da nun CN (Zertifikat) und im Mailprogramm eingegebene Domain übereinstimmen sollen. Sollte dennopch eine Warnung ausgegeben werden, 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 für rein lokalen Zugriff

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.