Good to Know Database

CentOS 6: Fetchmail mit SSL absichern


Das folgende Tutorial baut auf dem Tutorial CentOS 6: Fetchmail (als Daemon) einrichten auf und zeigt Ihnen wie Sie die Verbindungen zwischen Fetchmail und den jeweiligen Mailservern mit SSL absichern können. Dabei werde ich auf die Maildienste von Web.de, GMX.net, GoogleMail.com, GMail.com und T-Online.de eingehen. Sollten Sie einen anderen Anbieter verwenden, müssen Sie dementsprechend die Adressen anpassen und gegebenenfalls ein anderes Root-Zertifikat verwenden.

Fingerabdrücke der Mailserver ermitteln

Bevor Sie Änderungen an der Fetchmail-Konfiguration vornehemen, benötigen Sie die Fingerabdrücke der Server-Zertifikate der einzelnen Mailserver. Die Server-Zertifikate können Sie mit openssl herunterladen. Die folgenden Befehle laden die Server-Zertifikate für eine POP3s-Verbindung von Web.de, GMX.net, GoogleMail.com, GMail.com, T-Online.de und von einem Servertools24 Mailserver herunter und speichern Sie im Verzeichnis /etc/ssl/fetchmaild ab.

[root@centos6 ~]# mkdir -p /etc/ssl/fetchmaild
[root@centos6 ~]# echo "quit" | openssl s_client -connect pop3.web.de:995 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/pop3.web.de.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect pop.gmx.net:995 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/pop.gmx.net.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect pop.googlemail.com:995 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/pop.googlemail.com.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect pop.gmail.com:995 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/pop.gmail.com.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect securepop.t-online.de:995 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/securepop.t-online.de.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect lilly.servertools24.de:995 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/lilly.servertools24.de.pem

Sollten Sie in der Fetchmail-Konfiguration die IMAP-Server angegeben haben, können Sie die Zertifikate für die IMAPs-Verbindungen durch die folgenden Befehle herunterladen.

[root@centos6 ~]# echo "quit" | openssl s_client -connect imap.web.de:993 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/imap.web.de.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect imap.gmx.net:993 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/imap.gmx.net.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect imap.googlemail.com:993 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/imap.googlemail.com.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect imap.gmail.com:993 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/imap.gmail.com.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect secureimap.t-online.de:993 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/secureimap.t-online.de.pem
[root@centos6 ~]# echo "quit" | openssl s_client -connect lilly.servertools24.de:993 -showcerts 2>/dev/null | sed -ne '/BEGIN/,/END/p' >/etc/ssl/fetchmaild/lilly.servertools24.de.pem

Für die späteren Erweiterungen der Konfigurationsdatei /etc/fetchmailrc benötigen wir die MD5-Fingerprints der Server-Zertifikate, welche Sie wie folgt erstellen können.

[root@centos6 ~]# openssl x509 -in /etc/ssl/fetchmaild/pop3.web.de.pem -fingerprint -noout -md5
MD5 Fingerprint=49:E7:36:66:55:10:A9:CF:F6:C7:BC:14:03:80:2A:65
[root@centos6 ~]# openssl x509 -in /etc/ssl/fetchmaild/pop.gmx.net.pem -fingerprint -noout -md5
MD5 Fingerprint=8A:B7:78:CF:0D:73:4E:EE:FF:EB:B8:C0:90:7D:46:56
[root@centos6 ~]# openssl x509 -in /etc/ssl/fetchmaild/pop.googlemail.com.pem -fingerprint -noout -md5
MD5 Fingerprint=9A:30:BB:B5:88:EB:06:01:92:15:BD:19:87:C3:60:A0
[root@centos6 ~]# openssl x509 -in /etc/ssl/fetchmaild/pop.gmail.com.pem -fingerprint -noout -md5
MD5 Fingerprint=91:63:CF:6F:DF:03:3C:B9:3E:19:3B:1C:B6:EB:3C:25
[root@centos6 ~]# openssl x509 -in /etc/ssl/fetchmaild/securepop.t-online.de.pem -fingerprint -noout -md5
MD5 Fingerprint=CE:CF:FE:44:69:3A:EF:EF:73:42:97:60:B0:41:95:35
[root@centos6 ~]# openssl x509 -in /etc/ssl/fetchmaild/lilly.servertools24.de.pem -fingerprint -noout -md5
MD5 Fingerprint=01:BA:44:02:B2:D3:B9:F7:E7:31:E7:C1:81:06:EF:AC

Root-Zertifikate herunterladen

Erstellen Sie jetzt das Verzeichnis /etc/ssl/fetchmaild/certs in welchem Sie anschließend die benötigten Root-Zertifikate ablegen können.

Hinweis: In dem Verzeichnis /etc/ssl/fetchmaild/certs sollten Sie nur die vertrauenswürdigen Root-Zertifikate ablegen. Speichern Sie hier auf keinen Fall die Server-Zertifikate welche im vorhergehenden Abschnitt heruntergeladen wurden. Die Server-Zertifikate werden nur zur Ermittlung des jeweiligen Fingerabdrucks benötigt und sollten nicht zur Verifikation des Server-Zertifikats beim Verbindungsaufbau zum Mailserver verwendet werden.

[root@centos6 ~]# mkdir -p /etc/ssl/fetchmaild/certs

Web.de und GMX.net verwenden Zertifikate, welche von der Deutsche Telekom Root CA 2 ausgestellt wurden. Das notwendige Root-Zertifikat laden Sie wie folgt in das Verzeichnis /etc/ssl/fetchmaild/certs herunter.

[root@centos6 ~]# wget https://www.telesec.de/downloads/DT-Root-CA-2.cer -O /etc/ssl/fetchmaild/certs/Deutsche_Telekom_Root_CA_2.pem

GoogleMail.com und GMail.com setzen ein Zertifikat von der Equifax Secure Certificate Authority ein. Das dazugehörige Root-Zertifikat laden Sie wie folgt herunter.

[root@centos6 ~]# wget http://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.pem -O /etc/ssl/fetchmaild/certs/Equifax_Secure_Certificate_Authority.pem

T-Online nutzt ein Zertifikat von der VeriSign International Server CA. Das dafür notwendige Root-Zertifikat laden Sie sich wie folgt herunter und kopieren es in das Verzeichnis /etc/ssl/fetchmaild/certs.

[root@centos6 ~]# wget https://www.verisign.com/support/roots.zip
[root@centos6 ~]# mkdir ~/verisign
[root@centos6 ~]# unzip roots.zip -d ~/verisign
[root@centos6 ~]# cp ~/verisign/VeriSign\ Root\ Certificates/Generation\ 1\ \(G1\)\ PCAs/Class\ 3\ Public\ Primary\ Certification\ Authority.pem /etc/ssl/fetchmaild/certs/VeriSign_Class_3_Public_Primary_Certification_Authority.pem
[root@centos6 ~]# rm -rf roots.zip ~/verisign

Auf lilly.servertools24.de wird ein Zertifikat von EuropeanSSL genutzt, welches wiederrum von der AddTrust External CA signiert wurde. Das AddTrust Root-Zertificat können Sie wie folgt herunterladen.

[root@centos6 ~]# wget http://www.terena.org/activities/tcs/repository/AddTrust_External_CA_Root.pem -O /etc/ssl/fetchmaild/certs/AddTrust_External_CA_Root.pem

Wenn Sie nicht wissen welche Certificate Authority das Zertifikat eines Mailservers ausgestellt hat, können Sie sich mit dem folgenden Befehl die Informationen zum eingesetzten Zertifikat anzeigen lassen. Suchen Sie in der Ausgabe nach dem Organization Name (O), dem Organizational Unit Name (OU) und dem Common Name (CN).

[root@centos6 ~]# echo "quit" | openssl s_client -connect pop.mailserver.de:995 -showcerts 2>/dev/null

Damit Fetchmail die Zertifikate unter /etc/ssl/fetchmaild/certs verwenden kann, müssen diese mit dem Befehl c_rehash gehasht werden.

[root@centos6 ~]# c_rehash /etc/ssl/fetchmaild/certs/
Doing /etc/ssl/fetchmaild/certs/
VeriSign_Class_3_Public_Primary_Certification_Authority.pem => 415660c1.0
Equifax_Secure_Certificate_Authority.pem => 578d5c04.0
AddTrust_External_CA_Root.pem => 157753a5.0
Deutsche_Telekom_Root_CA_2.pem => 812e17de.0

Sollte der Befehl c_rehash noch nicht zur Vefügung stehen, installieren Sie das Paket openssl-perl.

[root@centos6 ~]# yum install openssl-perl

Fetchmail-Konfigurationsdatei anpassen

Nachdem Sie alle Zertifikate im Verzeichnis /etc/ssl/fetchmaild/certs zusammengetragen haben, sollten Sie den Fetchmail-Daemon beenden bis die nachfolgenden Änderungen an der Konfigurationsdatei abgeschlossen wurden.

[root@centos6 ~]# service fetchmaild stop

Anschließend öffnen Sie die Datei /etc/fetchmailrc zum Bearbeiten.

[root@centos6 ~]# vi /etc/fetchmailrc

Erweitern Sie diese wie im folgenden Listing zu sehen mit den Optionen ssl, sslfingerprint, sslcertck und sslcertpath.

set postmaster "root"
set bouncemail
set properties ""

poll pop3.web.de with proto POP3
  user 'benutzer1' there with password 'passwort1' is benutzer1
  ssl
  sslfingerprint "49:E7:36:66:55:10:A9:CF:F6:C7:BC:14:03:80:2A:65"
  sslcertck
  sslcertpath /etc/ssl/fetchmaild/certs/

poll pop.gmx.net with proto POP3
  user 'benutzer2@gmx.net' there with password 'passwort2' is benutzer2
  ssl
  sslfingerprint "8A:B7:78:CF:0D:73:4E:EE:FF:EB:B8:C0:90:7D:46:56"
  sslcertck
  sslcertpath /etc/ssl/fetchmaild/certs/

poll pop.googlemail.com with proto POP3
  user 'benutzer3' there with password 'passwort3' is benutzer3
  ssl
  sslfingerprint "9A:30:BB:B5:88:EB:06:01:92:15:BD:19:87:C3:60:A0"
  sslcertck
  sslcertpath /etc/ssl/fetchmaild/certs/

poll pop.gmail.com with proto POP3
  user 'benutzer4' there with password 'passwort3' is benutzer4
  ssl
  sslfingerprint "91:63:CF:6F:DF:03:3C:B9:3E:19:3B:1C:B6:EB:3C:25"
  sslcertck
  sslcertpath /etc/ssl/fetchmaild/certs/

poll securepop.t-online.de with proto POP3
  user 'benutzer5' there with password 'passwort4' is benutzer5
  ssl
  sslfingerprint "CE:CF:FE:44:69:3A:EF:EF:73:42:97:60:B0:41:95:35"
  sslcertck
  sslcertpath /etc/ssl/fetchmaild/certs/

poll lilly.servertools24.de with proto POP3
  user 'benutzer6' there with password 'passwort5' is benutzer6
  ssl
  sslfingerprint "01:BA:44:02:B2:D3:B9:F7:E7:31:E7:C1:81:06:EF:AC"
  sslcertck
  sslcertpath /etc/ssl/fetchmaild/certs/

postconnect "sendmail -q"

Die Option ssl aktiviert die SSL-Funktionalität von Fetchmail. Mit sslfingerprint wird der weiter oben erstellte MD5-Fingerprint angegeben. Durch die Option sslcertck wird Fetchmail angewiesen, die Server-Zertifikate mit den lokalen vertrauenswürdigen Zertifikaten zu vergleichen. Der Pfad zu den Root-Zertifikaten wird mit der Option sslcertpath angegeben.

Sobald Sie die Konfigurationsdatei angepasst haben, sollten Sie einen Testdurchlauf starten. Die Option -v schaltet Fetchmail in den Verbose-Modus in welchem Debugmeldungen angezeigt werden. Durch die Option -a werden auch bereits gelesene Mails heruntergeladen und -k sorgt dafür, dass die Mails auf dem Mailserver nicht gelöscht werden. Die fetchmailrc wird mit der Option -f angegeben.

[root@centos6 ~]# su fetchmail -s /bin/sh -c "fetchmail -v -a -k -f /etc/fetchmailrc"

Der Befehl sollte Ihnen unter anderem die folgenden Zeilen anzeigen.

fetchmail: 6.3.17 fragt pop3.web.de ab (Protokoll POP3) um Mi 05 Feb 2014 18:40:33 CET: Abfrage gestartet
Versuche, mit 212.227.17.161/995 zu verbinden...verbunden.
fetchmail: Server-Zertifikat:
fetchmail: Herausgeber-Organisation: T-Systems International GmbH
fetchmail: Herausgeber-CommonName: TeleSec ServerPass DE-1
fetchmail: Subjekt-CommonName: pop3.web.de
fetchmail: Subject Alternative Name: pop3.web.de
fetchmail: pop3.web.de-Schlüssel-Fingerabdruck: 49:E7:36:66:55:10:A9:CF:F6:C7:BC:14:03:80:2A:65
fetchmail: pop3.web.de-Fingerabdrücke stimmen überein.
[...]
fetchmail: 6.3.17 fragt pop.gmx.net ab (Protokoll POP3) um Mi 05 Feb 2014 18:40:34 CET: Abfrage gestartet
Versuche, mit 212.227.17.169/995 zu verbinden...verbunden.
fetchmail: Server-Zertifikat:
fetchmail: Herausgeber-Organisation: T-Systems International GmbH
fetchmail: Herausgeber-CommonName: TeleSec ServerPass DE-1
fetchmail: Subjekt-CommonName: pop.gmx.net
fetchmail: Subject Alternative Name: pop.gmx.net
fetchmail: Subject Alternative Name: pop.gmx.de
fetchmail: pop.gmx.net-Schlüssel-Fingerabdruck: 8A:B7:78:CF:0D:73:4E:EE:FF:EB:B8:C0:90:7D:46:56
fetchmail: pop.gmx.net-Fingerabdrücke stimmen überein.
[...]
fetchmail: 6.3.17 fragt pop.googlemail.com ab (Protokoll POP3) um Mi 05 Feb 2014 18:40:36 CET: Abfrage gestartet
Versuche, mit 173.194.70.16/995 zu verbinden...verbunden.
fetchmail: Server-Zertifikat:
fetchmail: Herausgeber-Organisation: Google Inc
fetchmail: Herausgeber-CommonName: Google Internet Authority G2
fetchmail: Subjekt-CommonName: pop.googlemail.com
fetchmail: Subject Alternative Name: pop.googlemail.com
fetchmail: pop.googlemail.com-Schlüssel-Fingerabdruck: 9A:30:BB:B5:88:EB:06:01:92:15:BD:19:87:C3:60:A0
fetchmail: pop.googlemail.com-Fingerabdrücke stimmen überein.
[...]
fetchmail: 6.3.17 fragt pop.gmail.com ab (Protokoll POP3) um Mi 05 Feb 2014 18:40:37 CET: Abfrage gestartet
Versuche, mit 173.194.70.108/995 zu verbinden...verbunden.
fetchmail: Server-Zertifikat:
fetchmail: Herausgeber-Organisation: Google Inc
fetchmail: Herausgeber-CommonName: Google Internet Authority G2
fetchmail: Subjekt-CommonName: pop.gmail.com
fetchmail: Subject Alternative Name: pop.gmail.com
fetchmail: pop.gmail.com-Schlüssel-Fingerabdruck: 91:63:CF:6F:DF:03:3C:B9:3E:19:3B:1C:B6:EB:3C:25
fetchmail: pop.gmail.com-Fingerabdrücke stimmen überein.
[...]
fetchmail: 6.3.17 fragt securepop.t-online.de ab (Protokoll POP3) um Mi 05 Feb 2014 18:40:41 CET: Abfrage gestartet
Versuche, mit 194.25.134.46/995 zu verbinden...verbunden.
fetchmail: Server-Zertifikat:
fetchmail: Herausgeber-Organisation: VeriSign, Inc.
fetchmail: Herausgeber-CommonName: VeriSign Class 3 International Server CA - G3
fetchmail: Subjekt-CommonName: securepop.t-online.de
fetchmail: Subject Alternative Name: securepop.t-online.de
fetchmail: Subject Alternative Name: popmail.t-online.de
fetchmail: Subject Alternative Name: pop-mail.t-online.de
fetchmail: Subject Alternative Name: secure-pop.t-online.de
fetchmail: Subject Alternative Name: multipop.t-online.de
fetchmail: Subject Alternative Name: pop.t-online.de
fetchmail: securepop.t-online.de-Schlüssel-Fingerabdruck: CE:CF:FE:44:69:3A:EF:EF:73:42:97:60:B0:41:95:35
fetchmail: securepop.t-online.de-Fingerabdrücke stimmen überein.
[...]
fetchmail: 6.3.17 fragt lilly.servertools24.de ab (Protokoll POP3) um Mi 05 Feb 2014 18:40:39 CET: Abfrage gestartet
Versuche, mit 109.75.110.146/995 zu verbinden...verbunden.
fetchmail: Server-Zertifikat:
fetchmail: Herausgeber-Organisation: EUNETIC GmbH
fetchmail: Herausgeber-CommonName: EuropeanSSL Server CA
fetchmail: Subjekt-CommonName: lilly.servertools24.de
fetchmail: Subject Alternative Name: lilly.servertools24.de
fetchmail: Subject Alternative Name: www.lilly.servertools24.de
fetchmail: lilly.servertools24.de-Schlüssel-Fingerabdruck: 01:BA:44:02:B2:D3:B9:F7:E7:31:E7:C1:81:06:EF:AC
fetchmail: lilly.servertools24.de-Fingerabdrücke stimmen überein.
[...]

Sobald die Meldung Fingerabdrücke stimmen überein erscheint, können Sie sicher sein, dass eine SSL-Verbindung zum Mailserver hergestellt werden konnte und alle Daten verschlüsselt übertragen werden.

Zum Schluss starten Sie den Fetchmail-Daemon wieder.

[root@centos6 ~]# service fetchmaild start

Hinweis: Zum Schluss möchte ich Sie noch darauf hinweisen, dass die Zertifikate der Mailserver in regelmäßigen Abständen erneuert werden. Wenn dies der Fall ist, kann Fetchmail keine Verbindung mehr zum betreffenden Mailserver aufbauen und somit auch Ihre E-Mails nicht mehr abholen. Aus diesem Grund sollten Sie regelmäßig die Logdatei /var/log/maillog überprüfen ob die Fingerabdrücke noch übereinstimmen.

Weiterführende Tutorials

CentOS 6: Benachrichtigung wenn Fetchmail-Fingerabdrücke nicht stimmen
CentOS 6: Fetchmail-SSL-Zertifikate erneuern


Dieser Eintrag wurde am 16.09.2011 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_1370.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer