SSH & SOCKS innerhalb eines HTTPS-verschlüsselten Tunnels mit Windows Apache Server oder was?

1040
DjIns1ght

Ich habe Stunden damit verbracht, Super / Stack und andere Websites zu überprüfen, und ich habe noch keine Antwort gefunden. Also werde ich es noch einmal versuchen, hier noch einmal zu fragen. Ich möchte auf einige Teilantworten hinweisen, die ich in Links gefunden habe, aber sie sind so kompliziert oder halb beantwortet. Ich denke, es kann die Sache für jeden, der dies liest, verschlimmern.

Bisher konnte ich einen Apache-Server, der auf meinem lokalen PC ausgeführt wird, mit einem selbstsignierten Zertifikat einrichten. Ich habe meinen Routerport 443 an diesen Server weitergeleitet. Ich habe auch OpenSSH auf Port 22 auf meinem lokalen PC. Mein Ziel ist:

  1. Ich möchte in der Lage sein, von Putty / WinSCP an Port 22 eine Verbindung herzustellen, die über die 443-SSL-Verbindung getunnelt ist, und über SOCKS zu surfen, als ob ich auf dem genannten PC bin.
  2. Ich könnte versuchen, Stunnel, SSHL, HTTPProxy, Httptunnel, Corkscrew-Client-Seite oder was auch immer jemand erklären kann, was zu tun ist (oder einen Link zu einem Leitfaden), aber es muss unter Windows laufen.
  3. Meine Präferenz wäre, den Apache-Server (mod_proxy / proxy pass?) So einzurichten, dass er (für sich alleine?) Den ankommenden 443 an Port 22 für OpenSSH weiterleitet, um die Verbindung und SOCKS zum Browsen abzurufen.

    HINWEIS: Hier ist eine Beschreibung des Flusses. Ich kann kein VPN verwenden (bereits eins) und ich kann 443 nicht für SSH verwenden, da die Layer-7-FW das SSH-Protokoll sieht und es blockiert. Der Client-PC ist bereits mit VPN verbunden, sodass kein VPN verwendet werden kann.

Win PcA> Win ServerB läuft etwas (Apache / Nginx?)

Dann, während HTTPS aktiv und verschlüsselt ist, senden:

Win PcA> Win ServerB mit OpenSSH über WinSCP oder Putty for SFTP

&

Win PcA> Win ServerB mit OpenSSH über Putty for SOCKS über Browser

Dies ist hauptsächlich zu Wissenszwecken, aber ich weiß, dass es auch für das FW-Stanzen ist. Da dies alles meine Computer sind, kann ich bei Bedarf Software auf dem Client installieren. Am besten wäre es jedoch, außer Putty / WinSCP und einem Browser keine Software zu haben, und ich kann den Proxy-Port auf dem Client ändern. Wenn ich dies jemals von einem PC aus ausführen muss, den ich nicht besitze, kann ich höchstwahrscheinlich mit Putty / WinSCP davonkommen, ohne Flags zu setzen oder Administratorrechte zu benötigen.

Ich habe von Squid und Ngnix für Server als Proxy-Server gehört, aber momentan habe ich Apache 2.4 ausgeführt. Ich könnte es ändern, denke ich. Grundsätzlich möchte ich eine Art Inet-Browsing (über SOCKS-Proxy) und einen Dateiübertragungsendpunkt (über 22 vollständig in SSL verborgene) erstellen, die ich von überall aus erreichen könnte. Dies würde nicht blockiert werden, solange das Netzwerk, in dem ich bin, SSL-Verbindungen zulässt .

Die Guides da draußen, um Apache einzurichten, und ein selbst signiertes cert haben mich so weit gebracht ... jetzt habe ich zu viele Optionen. Danke fürs Lesen.

Edit: Es gibt Fragen wie diese, die keine Antworten und verwirrende Antworten enthalten. Aber nichts für mich. Ich bin auch nicht sicher, ob meine Frage richtig formatiert ist. Neu hier.

1
Sie fragen also, wie ich das mache (X ist der Client und Y ist der PC): `X (Browser) -http / https-> X (SSH-Socks-Proxy) -ssh-> X (Apache) -ssl- > Y (Apache-Server) -ssh-> Y (SSH-Server) -http / https-> Internet` TheGathron vor 7 Jahren 0
Ich möchte einen SSL-Tunnel zum Home PC Server ... dann SSH oder SOCKs im SSL-Tunnel. DjIns1ght vor 7 Jahren 0
Ändern Sie die Frage, um klarer zu sein, was Sie wollen und das Problem. Fügen Sie auch das Betriebssystem jeder Maschine hinzu. TheGathron vor 7 Jahren 0
Aktualisierte. Ist das besser? DjIns1ght vor 7 Jahren 0
Ja. Haben Sie eine Linux-Maschine im Netzwerk? TheGathron vor 7 Jahren 0
Ich kann Linux verwenden, wenn ich muss, oder eine VM von Kali Linux in Windows ausführen. Meine Präferenz ist mindestens ein Windows-Computer als Server. Ich bin aber offen für Ideen. An diesem Punkt möchte ich fast nur sehen, dass es überhaupt möglich ist. DjIns1ght vor 7 Jahren 0

2 Antworten auf die Frage

1
user1016274

SSH verwendet bereits SSL, um den Datenverkehr zu verschlüsseln. Um den (häufig) zugelassenen HTTPS-Port tcp / 443 für die Verbindung zu Ihrem Heim-SSH-Server verwenden zu können, müssen Sie nur Ihren SSH-Client und den SSH-Server für die Verwendung von Port tcp / 443 konfigurieren. WinSCP als Client erlaubt dies. Abhängig von der für den SSH-Server verwendeten Software sollte dies ebenso möglich sein wie die Installation eines eigenen SSL-Zertifikats.

Apache muss dafür nicht installiert sein. Da Apache die SSL-Verbindung beenden würde, wäre ein verschlüsselter Verkehr von dort zu einem lokalen SSH-Server nicht möglich (aber z. B. unverschlüsseltes Telnet).

Wenn Sie der Anwendungserkennung ausweichen müssen, können Sie einen SSL-VPN-Tunnel erstellen, über den Sie einen SSH-Tunnel starten ... ein Teil, den Sie mit Apache + OpenSSH erwähnen. Sie benötigen eine zusätzliche Software für den SSL-VPN-Server wie (?) OpenVPN, die überhaupt nicht Teil von Apache ist.

Nah dran, aber nicht genau. Auf PCs, an denen Sie bereits ein VPN verwenden, funktioniert dies nicht. Stellen Sie sich vor, Sie sind gezwungen, sich über ein VPN zu verbinden, das NUR SSL zum Internet zulässt. Es gibt kein SSH und kein anderes VPN. Ich brauche einen SSL-Tunnel, den SSH und SOCKS durchfahren können, ohne von einer Firewall der Stufe 7 gesehen zu werden, die SSH-Protokolle blockieren kann. DjIns1ght vor 7 Jahren 0
0
TheGathron

Ich weiß nicht viel über VMs, also gehe ich davon aus, dass Sie sich mit VM-Problemen befassen können. Diese Anleitung sollte helfen.

Sie richten einen stunnel4-Server wie im Handbuch ein (ändern Sie connect auf 127.0.0.1:22 und akzeptieren Sie auf 443), und machen Sie den ssh-Server wie gewohnt.

Nachdem Sie mit dem Download des Client-PCs und des Stunnel-Clients fortgefahren sind, klicken Sie mit der rechten Maustaste auf das Taskleistensymbol und wählen Sie Konfiguration bearbeiten. Kopieren Sie dies (ändern Sie die IP-Adresse):

[ssh] client = yes accept = 127.0.0.1:22 connect = [ip address of the server]:443 

Gehen Sie jetzt zurück zum Menü und klicken Sie auf Konfiguration neu laden . Und du bist fertig; Sie sollten sich nur mit ssh verbinden, aber 127.0.0.1:22 verwenden.

Ich sehe, dass dies eine gültige Option ist. Ich habe den Server heruntergeladen, aber es fällt mir schwer, einen Windows-Client zu finden, mit dem er eine Verbindung zum Server herstellen kann. Ich versuche wirklich zu vermeiden, dass sich auf dem Client Software befindet, mit Ausnahme von Putty oder WinSCP. Ich denke, was ich lese, ist die Verwendung des Apache-Servers im Mod_proxy-Modus. Ich habe dieses Handbuch gefunden: https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension Phew..tiring. DjIns1ght vor 7 Jahren 0