Im Internetcafé hockend, das Hotel- WLAN benutzend oder am Flughafen im Lichte eines Hotspot: Oft finde ich mich hinter einer Firewall wieder, die Verbindungen zum Zielport 22 ablehnt. Verbindungen für die Ports 80 und 443 lässt hingegen jede gnädig passieren. Darum ist es eine Idee, auf manchem Server den SSH-Daemon an den HTTPS-Port zu binden. So erspare ich es mir, Tunnel zu graben, und kann mich mit »ssh -p 443 User@Host« zu Hause einloggen. Ist der HTTPS-Port aber schon von einem SSLfähigen Webserver belegt, muss ich mir was überlegen: Sslh.
Die Macher des Tools bezeichnen es als SSL-SSH-Multiplexer. Der lauscht auf Port 443 und findet bei eingehenden Verbindungen heraus, ob der Client den Host mit HTTPS oder SSH ansprechen will. Die Dienste selbst sind jeweils auf Localhost:443 respektive Localhost:22 gebunden (siehe Abbildung 1). Diese Informationen zieht Sslh aus der Datei »/etc/defaults/sslh«, die in einem einfachen Beispiel so aussieht:
Abbildung 1: Wo Apache und SSH sich auf Port 443 bekriegen würden, erkennt der vorgeschaltet Sslh die Art der Anfrage - hier SSH - und leitet sie an den zuständigen Daemon weiter.
RUN=yes
DAEMON_OPTS="-u sslh
-p 10.50.5.42:443
-s 127.0.0.1:22
-l 127.0.0.1:443
-P /var/run/sslh.pid"
Um das angefragte Protokoll herauszufinden, analysiert Sslh das Verhalten des Clients: Bei einer eingehenden HTTPSVerbindung wartet er darauf, dass der Server Empfangsbereitschaft signalisiert. Bei einer SSH-Verbindung eröffnet der Client dagegen selbst den Dialog und Sslh verweilt kurz, normalerweise 2 Sekunden. Sendet der Client in dieser Zeit keine Daten, vermutet Sslh eine HTTPSVerbindung und reicht sie weiter an den Webserver auf 127.0.0.1:443.
Apaches Reservat
Um den Apache nur noch auf Localhost festzunageln, muss ich in seiner Konfiguration den Listen-Parameter, der für SSL auf »443« steht, auf »127.0.0.1:443« ändern. Den SSH-Port nur noch auf Localhost zu binden, ist nicht unbedingt nötig, da auf Port 22 kein Konflikt mit einem anderen Daemon entsteht. Ich habe es trotzdem getan: Erstens erspare ich mir und meinem »auth.log« eine Menge Scans, die ständig dort einschlagen, zweitens kann ich den Server auch über eine serielle Konsole erreichen, falls SSH oder Sslh irgendwann den Linux- Löffel abgeben sollten.
|
Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein in Kamp-Lintfort. Zu seinen Aufgaben gehören die Sicherheit und Verfügbarkeit der Firewalls und der DMZ. Im heißen Teil seiner Freizeit frönt er dem Kochen, im feuchten Teil der Süßwasseraquaristik und im östlichen lernt er Japanisch.
|