5 Stimmen

Client-Firewall blockiert alle Ports bis auf 80 und 443, muss Anfragen auf Port 443 an SSH oder HTTPS weiterleiten

Ich arbeite derzeit bei einem Kunden, der das Netzwerk mit Ausnahme der Ports 80 und 443 gesperrt hat. Ich muss mich per SSH mit unserem Server verbinden, aber auf demselben Server läuft auch unsere Website. Wir wollen nicht in einen neuen Server investieren oder eine zweite Netzwerkkarte einbauen.

Ich habe im Internet nach einer Möglichkeit gesucht, unseren Linux-Server (unter CentOS 5) so einzurichten, dass ein Daemon auf Port 443 lauscht, der je nach Client-Protokoll die Anfrage an den richtigen internen Port weiterleitet (SSH 22 oder HTTPS an einen anderen Port_.

Es gibt eine Menge Leute im Internet, die nach dieser Art von Lösung suchen, aber keine klaren Anweisungen, wie man das macht.

Hat jemand Ideen/klare Anweisungen, wie man das macht?

Mit freundlichen Grüßen, nidkil

6voto

Mikeage Punkte 6304

Sslh : http://www.rutschle.net/tech/sslh.shtml

Ich benutze 1.5; 1.6b habe ich noch nicht ausprobiert, und 1.3 hat das Problem, dass Zombies in der Nähe bleiben.

Führen Sie es an Port 443 aus; wenn innerhalb von 2 Sekunden keine Daten gesendet werden (Standardeinstellung), wird es an ssh weitergeleitet. Andernfalls wird er an Ihren Webserver weitergeleitet.

Ich betreibe es auf meiner Website ( http://mikeage.net ) - Sie können sich mit netcat einloggen, wenn Sie beide Login-Banner sehen wollen.

In meinem Fall hat es auch einen anderen Zweck. Wir haben eine noch restriktivere Einrichtung als Sie: alle Ports sind blockiert, aber 80 und 443 können über einen Proxy erreicht werden. Ich kann SSH mit einem Programm wie Corkscrew (oder nativ mit Putty) meine SSH-Verbindung über den Firmen-Proxy auf meinen Server:443 umleiten lassen, wo nach einer kurzen Verzögerung mein SSH-Server mit seinem Login-Banner antwortet. Ich kann auch Webseiten über das Standard-HTTPS bereitstellen (und tue dies auch).

3voto

Gerald Punkte 22563

Eine einfache Lösung für Ihr Problem könnte darin bestehen, Ihrem Rechner mehrere IP-Adressen zuzuweisen und Ihr SSH an Port 443 auf einer separaten IP zu binden; Sie können einem einzelnen Adapter normalerweise mehrere IP-Adressen zuweisen. Sie müssen also keine zweite Netzwerkkarte hinzufügen. Ansonsten kenne ich keine fertige Lösung für das, was Sie tun wollen. Sie müssten dafür wahrscheinlich einen eigenen Daemon erstellen, was ein wenig schwierig, aber machbar wäre.

3voto

tvanfosson Punkte 506878

Die Firewall-Beschränkungen gibt es nicht ohne Grund. Sie sind vielleicht nicht gut, aber für die Person, die sie eingeführt hat oder veranlasst hat, dass sie eingeführt werden, sind sie sinnvoll. Ich würde nicht versuchen, die Unternehmensrichtlinien für externe Verbindungen zu verletzen.

Wenn Sie einen legitimen Bedarf haben, würde ich beantragen, dass der Anschluss oder eine Alternative für die von Ihnen benötigten Adressen geöffnet wird. Wenn das nicht klappt, wäre vielleicht eine VPN-Lösung akzeptabel.

In dem Fall, dass die Netzwerkmitarbeiter einfach nur wahnsinnig egoistisch, unwillig zu reagieren oder schlichtweg inkompetent sind, würde ich mich vergewissern, dass ich die Zustimmung eines Managers habe, der bereit ist, sich für mich einzusetzen, WENN es zu einem Problem wird, bevor ich eine Umgehungslösung einführe. Alles andere könnte dazu führen, dass Ihr Arbeitsverhältnis gekündigt wird. Schließlich handelt es sich um einen Verstoß gegen die Sicherheitsrichtlinien des Unternehmens.

1voto

Federico A. Ramponi Punkte 44697

Sie könnten eine kleine Webanwendung erstellen, die auf Port 443 lauscht und eine umgekehrte SSH-Shell zur IP der eingehenden Verbindung ermöglicht, wobei eine Authentifizierung mit öffentlichem Schlüssel erfolgt. Sagen wir:

  • Sie authentifizieren sich bei der Webanwendung; die Webanwendung ruft Ihre IP-Adresse ab
  • Die Anwendung startet einen SSH-Tunnel von ihrer IP zu Ihrer IP (an Port 22)
  • Der SSH-Server auf Ihrem Rechner beendet den Tunnel und lauscht auf localhost:8080
  • Dann starten Sie eine SSH-Sitzung mit localhost:8080. Die Befehle in der folgenden interaktiven Sitzung werden an den Remote-Host weitergeleitet.

0voto

gbjbaanb Punkte 50303

Wenn Sie Apache auf unserer Centos-Box haben, können Sie mod_proxy verwenden, um Anfragen von einem Port auf einen anderen umzuleiten. Ich verwende dies, um Anfragen umzuleiten an http://webmin.myserver.com à http://myserver.com:10000 (webmin läuft auf einem nicht zugänglichen Port)

ServerName webmin.myserver.co.uk
SSLProxyEngine On

ProxyRequests Off
ProxyPass / https://myserver.co.uk:10000/
ProxyPassReverse / https://myserver.co.uk:10000/

Fügen Sie die obigen Angaben in die Richtlinie für den virtuellen Server ein, und schon können Sie loslegen. Das funktioniert vielleicht nicht mit Putty, aber wenn Sie webmin installieren, hat es ein SSH-Modul, auf das Sie über einen Browser zugreifen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X