Revision 7 vom 2016-09-14 21:04:55

Nachricht löschen

secure.ping.de

Das für PING bei einer verbreiteten CA gekaufte Zertifikat dient zur Absicherung einiger zentraler Dienst.

secure.ping.de (83.97.42.25) als IPv4-Host existiert dabei als Alias-Interface auf lucy.ping.de.

Die abzusichernden Dienste laufen dabei Verteilt auf Lucy und Lilly und müssen über eine IP-Adresse ansprechbar sein. Hierfür „leitet“ Lucy entsprechende Anfragen, die an 83.97.42.25 ankommen an lokal auf Lucy laufende Dienste oder an Lilly weiter.

Aufgrund der alten OpenSSL-Version auf Lilly, die sich auch nicht ohne großen Aufwand aktualisieren lässt, übernimmt Lucy dabei die Verschlüsslung der Daten. Hierdurch ist die Kommunikation der auf Lilly laufenden Dienste zwischen Lucy und Lilly unverschlüsselt. Deswegen ist es dringend erforderlich, dass die unverschlüsselten Daten nicht von Dritten mitgelesen werden können. Dies wird dadurch ermöglicht, dass Lucy und Lilly über eine private Ethernet-Verbindung kommunizieren. Dabei ist auf dem Host-System PING09, auf den beide VMs ausgeführt werden, eine private Bridge mit dem Namen lillysslnetz angelegt.

Die Verschlüsselung wird auf Lucy durch den SSL-Proxy stunnel durchgeführt. Stunnel (Debian-Paket stunnel4 nutzt dabei die OpenSSL-Version des Systems und erhält damit alle Sicherheitsupdates. Des Weiteren wird unter Debian Jessie auch Perfect Forward Secrecy (PFS) unterstützt, wodurch Verbindungen mit Client-Programme, die PFS unterstützen, noch sicherer werden.

Stunnel

Stunnel wird auf Lucy durch die Konfigurationsdatei /etc/stunnel/lilly.conf für die Dienste auf Lilly konfiguriert. Dabei besteht die Konfigurationsdatei aus einem allgemeinen Bereich mit Parametern für's Logging, SSL-Schlüssel und -Zertifikate und Optionen für die OpenSSL-Bibliothek, die für alle Dienste gleichermaßen genutzt werden. Hierbei sind die Einträge für options und ciphers die wichtigsten.

options = SINGLE_ECDH_USE
options = SINGLE_DH_USE
options = CIPHER_SERVER_PREFERENCE

ciphers = HIGH+kEECDH:HIGH+kEDH:HIGH:!PSK:!SRP:!DES:!3DES:!aNULL:!RC4:!CAMELLIA

Die Option CIPHER_SERVER_PREFERENCE weißt dabei OpenSSL an beim Aushandeln der verwendeten Verschlüsselungsalgorithmen auf die eigene Reihenfolge zu bestehen. Dies ist deswegen wichtig, da einige Clients zwar PFS (hier insbesondere HIGH+kEECDH und HIGH+kEDH) unterstützen, aber in der eigenen Sortierung diese nicht bevorzugen würden. Als ciphers wird eine Folge von Verschlüsselungsalgorithmen aufgeführt, die auch in dieser Reihenfolge ausgehandelt wird. Dabei werden schon einige Ciphers von OpenSSL gar nicht mehr angeboten, andere, wie 3DES und RC4 werden hier deaktiviert, um, nach aktuellem Stand, nur sichere Verschlüsselung anzubieten.

Nach dem allgemeinen Bereich folgen die Dienste im Format von DOS-INI-Datei-Blöcken. Die Form ist dabei für jeden Dienst gleich und die einzelnen Dienste unterscheiden sich dabei nur durch die Ports.

[pop3s]
accept  = 995
connect = 83.97.47.186:110
transparent = source

Am Beispiel des pop3s-Dienstes ist zu erkennen, dass mit der Option accept der Port auf Lucy angegeben wird, an dem Stunnel auf neue Verbindungen lauscht. Dabei kann auch optional eine durch einen Doppelpunkt getrennte IP angegeben werden, an die dann gebunden wird. Da auf Lucy auf den entsprechenden Ports keine Dienste lauschen, kann hier allerdings durch das Weglassen einer IP ein spezifisches Binden ausbleiben. Die Option connect gibt an, wohin sich Stunnel verbinden soll. Dabei sind diese Verbindungen nicht verschlüsselt. Dies ist auch der Grund, warum für die Dienste uucps, pop3s und imaps die unverschlüsselten Ports auf Lilly genutzt werden. Beim Dienst https wird ein auf Lilly unverschlüsselter Port 443 genutzt, da der Apache auf Lilly differenzieren können muss, ob eine Verbindung, wo auch immer, verschlüsselt wird oder unverschlüsselt zum Client geht. Die Option transparent = source aktiviert eine Funktion in Stunnel, wodurch die ausgehenden Verbindungen zu Lilly die IP-Adresse des Clients als Quelle behalten.

Bridge lillysslnetz auf DOM0

Auf der DOM0, auf der Lucy und Lilly ausgeführt werden, muss ein Bridge-Interface angelegt werden. Dies geschieht über die Konfigurationsdatei /etc/network/interfaces wie folgt:

auto lillysslnetz
iface lillysslnetz inet manual
        bridge_ports none
        bridge_stp off
        bridge_fd 0

/!\ : Nach dem anlegen hinzufügen mit ifup lillysslnetz auch hochfahren.