Sitzt der Admin gerade im Hotelzimmer, während im Unternehmen der Webserver holpert, könnte er eigentlich schnell über eine sichere SSH-Verbindung nachsehen, was auf dem Server klemmt – würde nicht gerade die Firewall des Hotels ausgehende Zugriffe über Port 22 blockieren. Wie in diesem Beispiel finden sich Administratoren recht häufig hinter Firewalls wieder, die ausschließlich Verbindungen über die Ports 80 und 443 zulassen.
In genau solchen Fällen hilft das Werkzeug sslh [1]. Es nimmt auf dem Server an einem vorgegebenen Port die eintrudelnden Anfragen entgegen und leitet sie an den passenden Dienst weiter. Das Ganze geschieht nach außen transparent: Klopft ein Browser an Port 443 an, bekommt er die Webseite zurückgeliefert, ein Administrator erhält hingegen an Port 443 einen SSH-Zugang. Damit reduziert sich gleichzeitig der Konfigurationsaufwand für die Firewall, die im Beispiel nur noch den Port 443 offenhalten muss. Dank seiner Funktionsweise lässt sich sslh sogar als Frontend einsetzen, das unter einer IP-Adresse die Dienste von mehreren (virtuellen) Servern zugänglich macht.
Intern arbeitet sslh als Protokoll-Demultiplexer: Es nimmt zunächst alle eingehenden IPv4- und IPv6-Verbindungen entgegen, greift sich dabei jeweils das erste Datenpaket und versucht, aus diesem das verwendete Protokoll herauszulesen. Die beim Redaktionsschluss aktuelle Version 1.20 erkennt selbstständig HTTP, HTTPS, OpenVPN, SOCKS5, SSH, Tinc und XMPP. Im Fall von HTTPS unterstützt sslh die Verfahren "Application-Layer Protocol Negotiation" (ALPN) und "Server Name Indication" (SNI). Weitere Protokolle bringen Sie dem Tool über reguläre Ausdrücke bei. Abhängig vom ermittelten Protokoll kontaktiert sslh schließlich den passenden Dienst.
Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.