Good to Know Database

Raspbian Wheezy: Fetchmail mit SSL absichern


Das folgende Tutorial baut auf dem Tutorial Raspbian Wheezy: 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 noch das passende Root-Zertifikat hinterlegen.

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 und T-Online.de herunter und speichern Sie im Verzeichnis /etc/ssl/fetchmail ab.

pi@raspberrypi ~ $ sudo mkdir -p /etc/ssl/fetchmail
pi@raspberrypi ~ $ echo "quit" | openssl s_client -connect pop3.web.de:995 -showcerts 2>/dev/null | sudo su -c 'sed -ne "/BEGIN/,/END/p" >/etc/ssl/fetchmail/pop3.web.de.pem'
pi@raspberrypi ~ $ echo "quit" | openssl s_client -connect pop.gmx.net:995 -showcerts 2>/dev/null | sudo su -c 'sed -ne "/BEGIN/,/END/p" >/etc/ssl/fetchmail/pop.gmx.net.pem'
pi@raspberrypi ~ $ echo "quit" | openssl s_client -connect pop.googlemail.com:995 -showcerts 2>/dev/null | sudo su -c 'sed -ne "/BEGIN/,/END/p" >/etc/ssl/fetchmail/pop.googlemail.com.pem'
pi@raspberrypi ~ $ echo "quit" | openssl s_client -connect pop.gmail.com:995 -showcerts 2>/dev/null | sudo su -c 'sed -ne "/BEGIN/,/END/p" >/etc/ssl/fetchmail/pop.gmail.com.pem'
pi@raspberrypi ~ $ echo "quit" | openssl s_client -connect securepop.t-online.de:995 -showcerts 2>/dev/null | sudo su -c 'sed -ne "/BEGIN/,/END/p" >/etc/ssl/fetchmail/securepop.t-online.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.

pi@raspberrypi ~ $ openssl x509 -in /etc/ssl/fetchmail/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
pi@raspberrypi ~ $ openssl x509 -in /etc/ssl/fetchmail/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
pi@raspberrypi ~ $ openssl x509 -in /etc/ssl/fetchmail/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
pi@raspberrypi ~ $ openssl x509 -in /etc/ssl/fetchmail/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
pi@raspberrypi ~ $ openssl x509 -in /etc/ssl/fetchmail/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

Fetchmail-Konfigurationsdatei anpassen

Nachdem Sie alle Fingerabdrücke zusammen getragen haben, sollten Sie den Fetchmail-Daemon beenden bis die nachfolgenden Änderungen an der Konfigurationsdatei abgeschlossen wurden.

pi@raspberrypi ~ $ sudo /etc/init.d/fetchmail stop

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

pi@raspberrypi ~ $ sudo 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 'mail-account' there with password 'strenggeheim' is georg
  ssl
  sslfingerprint "49:E7:36:66:55:10:A9:CF:F6:C7:BC:14:03:80:2A:65"
  sslcertck
  sslcertpath /etc/ssl/certs/

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

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

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

poll securepop.t-online.de with proto POP3
  user 'mail-address@t-online.de' there with password 'strenggeheim' is georg
  ssl
  sslfingerprint "CE:CF:FE:44:69:3A:EF:EF:73:42:97:60:B0:41:95:35"
  sslcertck
  sslcertpath /etc/ssl/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.

pi@raspberrypi ~ $ sudo fetchmail -v -a -k -f /etc/fetchmailrc

Der Befehl sollte Ihnen unter anderem die folgenden Zeilen anzeigen.

fetchmail: 6.3.21 fragt pop3.web.de ab (Protokoll POP3) um Do 13 Feb 2014 19:38:23 CEST: 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.21 fragt pop.gmx.net ab (Protokoll POP3) um Do 13 Feb 2014 19:38:23 CEST: Abfrage gestartet
Versuche, mit 212.227.17.185/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.21 fragt pop.googlemail.com ab (Protokoll POP3) um Do 13 Feb 2014 19:38:23 CEST: 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.21 fragt pop.gmail.com ab (Protokoll POP3) um Do 13 Feb 2014 19:38:24 CEST: Abfrage gestartet
Versuche, mit 173.194.70.109/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.21 fragt securepop.t-online.de ab (Protokoll POP3) um Do 13 Feb 2014 19:38:26 CEST: 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.
[...]

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.

pi@raspberrypi ~ $ sudo /etc/init.d/fetchmail 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/mail.log überprüfen ob die Fingerabdrücke noch übereinstimmen.

Weiterführende Tutorials

Raspbian Wheezy: Benachrichtigung wenn Fetchmail-Fingerabdrücke nicht stimmen
Raspbian Wheezy: Fetchmail-SSL-Zertifikate erneuern


Dieser Eintrag wurde am 15.09.2013 erstellt und zuletzt am 25.09.2016 bearbeitet.

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

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer