Good to Know Database

CentOS 5: Fetchmail mit SSL absichern


Das folgende Tutorial baut auf dem Tutorial CentOS 5: 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 und GoogleMail.com 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 und GoogleMail.com herunter und speichern Sie im Verzeichnis /etc/ssl/fetchmaild ab.

[root@centos5 ~]# mkdir -p /etc/ssl/fetchmaild
[root@centos5 ~]# 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@centos5 ~]# 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@centos5 ~]# 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

Die Zertifikate für eine IMAPs-Verbindung erhalten Sie mit den folgenden Befehlen.

[root@centos5 ~]# 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@centos5 ~]# 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@centos5 ~]# 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

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@centos5 ~]# openssl x509 -in /etc/ssl/fetchmaild/pop3.web.de.pem -fingerprint -noout -md5
MD5 Fingerprint=38:E3:01:DD:55:13:6B:50:9E:85:CD:69:95:60:66:47
[root@centos5 ~]# openssl x509 -in /etc/ssl/fetchmaild/pop.gmx.net.pem -fingerprint -noout -md5
MD5 Fingerprint=A6:57:BC:4A:97:AD:DB:99:00:E9:3A:B8:81:55:D7:B6
[root@centos5 ~]# openssl x509 -in /etc/ssl/fetchmaild/pop.googlemail.com.pem -fingerprint -noout -md5
MD5 Fingerprint=9C:BA:E1:45:3F:FB:60:14:80:CA:CF:3A:1A:4E:11:7B

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@centos5 ~]# mkdir -p /etc/ssl/fetchmaild/certs

Web.de und GMX.net verwenden ein Zertifikat der Thawte Server CA. Die entsprechenden Root-Zertifikate laden Sie sich mit dem folgenden Befehl herunter.

[root@centos5 ~]# wget https://www.verisign.com/support/thawte-roots.zip

Erstellen Sie ein temporäres Verzeichnis in welches Sie die Root-Zertifikate entpacken.

[root@centos5 ~]# mkdir ~/temp
[root@centos5 ~]# unzip thawte-roots.zip -d ~/temp

Da das benötigte Root-Zertifikat im DER-Format vorliegt, müssen Sie dieses mit dem folgenden Befehl in das PEM-Format umwandeln und ebenfalls im Verzeichnis /etc/ssl/fetchmaild/certs ablegen.

[root@centos5 ~]# openssl x509 -in ~/temp/Thawte\ Server\ Roots/ThawtePremiumServerCA.cer -inform DER -outform PEM > /etc/ssl/fetchmaild/certs/thawte.pem

Für GoogleMail.com benötigen Sie das Root-Zertifikat von der Equifax Secure Certificate Authority. Dieses können Sie wie folgt direkt im benötigten Format herunterladen.

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

Damit Fetchmail die Zertifikate verwenden kann, müssen sie mit dem Befehl c_rehash gehasht werden.

[root@centos5 ~]# c_rehash /etc/ssl/fetchmaild/certs/
Doing /etc/ssl/fetchmaild/certs/
thawte.pem => c33a80d4.0
equifax.pem => 594f1775.0

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

[root@centos5 ~]# 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@centos5 ~]# service fetchmaild stop

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

[root@centos5 ~]# 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 "38:E3:01:DD:55:13:6B:50:9E:85:CD:69:95:60:66:47"
  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 "A6:57:BC:4A:97:AD:DB:99:00:E9:3A:B8:81:55:D7:B6"
  sslcertck
  sslcertpath /etc/ssl/fetchmaild/certs/

poll pop.googlemail.com with proto POP3
  user 'benutzer3' there with password 'passwort3' is benutzer3
  ssl
  sslfingerprint "9C:BA:E1:45:3F:FB:60:14:80:CA:CF:3A:1A:4E:11:7B"
  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@centos5 ~]# 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.6 fragt pop3.web.de ab (Protokoll POP3) um Sa 24 Apr 2010 20:23:08 CEST: Abfrage gestartet
Versuche, mit 212.227.17.161/995 zu verbinden...verbunden.
fetchmail: Herausgeber-Organisation: Thawte Consulting cc
fetchmail: Herausgeber-CommonName: Thawte Premium Server CA
fetchmail: Server-CommonName: pop3.web.de
fetchmail: pop3.web.de-Schlüssel-Fingerabdruck: 38:E3:01:DD:55:13:6B:50:9E:85:CD:69:95:60:66:47
fetchmail: pop3.web.de-Fingerabdrücke stimmen überein.
[...]
fetchmail: 6.3.6 fragt pop.gmx.net ab (Protokoll POP3) um Sa 24 Apr 2010 20:23:16 CEST: Abfrage gestartet
Versuche, mit 213.165.64.22/995 zu verbinden...verbunden.
fetchmail: Herausgeber-Organisation: Thawte Consulting cc
fetchmail: Herausgeber-CommonName: Thawte Premium Server CA
fetchmail: Server-CommonName: pop.gmx.net
fetchmail: pop.gmx.net-Schlüssel-Fingerabdruck: A6:57:BC:4A:97:AD:DB:99:00:E9:3A:B8:81:55:D7:B6
fetchmail: pop.gmx.net-Fingerabdrücke stimmen überein.
[...]
fetchmail: 6.3.6 fragt pop.googlemail.com ab (Protokoll POP3) um Sa 24 Apr 2010 20:23:22 CEST: Abfrage gestartet
Versuche, mit 74.125.43.16/995 zu verbinden...verbunden.
fetchmail: Herausgeber-Organisation: Google Inc
fetchmail: Herausgeber-CommonName: Google Internet Authority
fetchmail: Server-CommonName: pop.googlemail.com
fetchmail: pop.googlemail.com-Schlüssel-Fingerabdruck: 9C:BA:E1:45:3F:FB:60:14:80:CA:CF:3A:1A:4E:11:7B
fetchmail: pop.googlemail.com-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@centos5 ~]# 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 5: Benachrichtigung wenn Fetchmail-Fingerabdrücke nicht stimmen
CentOS 5: Fetchmail-SSL-Zertifikate erneuern


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

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

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer