Ich habe einen Linux Fedora21-Client-Laptop hinter einer Unternehmens-Firewall (die über http- und https-Ports aber nicht über SSH 22 verfügt) und ich habe einen Linux Fedora21-Server zu Hause hinter meinem eigenen Router. Das Surfen mit https funktioniert, wenn ich die öffentliche IP-Adresse meines Heimservers angebe (weil ich meinen Heimrouter konfiguriert habe)
Ist es möglich, über den http / s-Port eine SSH-Verbindung (Remote Shell) zu meinem Heimserver herzustellen?
Ich habe ein Werkzeug namens gesehen corkscrew
. würde das helfen?
opensshd
und httpd
laufen auf dem Heimserver. Was würde sonst noch Konfiguration brauchen?
sshd
http-proxy
MMM
quelle
quelle
Antworten:
Was möglich ist, hängt davon ab, was die Firewall zulässt.
Wenn die Firewall beliebigen Datenverkehr auf Port 443 zulässt
Einige Firewalls nehmen den einfachen Ausweg und lassen alles auf Port 443 zu. Wenn dies der Fall ist, können Sie Ihren Heimserver am einfachsten erreichen, indem Sie ihn dazu bringen, SSH-Verbindungen auf Port 443 abzuhören. Wenn Ihr Computer direkt mit dem Internet verbunden ist, einfach fügen Sie hinzu
Port 443
,/etc/ssh/sshd_config
oder/etc/sshd_config
gerade unter der Linie, die sagtPort 22
. Wenn sich Ihr Computer hinter einem Router / einer Firewall befindet, der / die eingehende Verbindungen umleitet, leiten Sie eingehende Verbindungen an Port 443 mit so etwas wie dem Port 22 Ihres Servers umWo
wan0
ist die WAN-Schnittstelle auf Ihrem Router und 10.1.2.3 ist die IP-Adresse Ihres Servers in Ihrem Heimnetzwerk.Wenn Sie Ihrem Heimserver erlauben möchten, sowohl HTTPS-Verbindungen als auch SSH-Verbindungen an Port 443 abzuhören, können Sie leicht zwischen SSH- und HTTPS-Verkehr unterscheiden (in SSH spricht der Server zuerst, in HTTP und HTTPS dagegen der Client zuerst). Anleitungen zum Einstellen finden Sie unter http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html und http://wrouesnel.github.io/articles/Setting%20up%20sshttp/ up mit sshttp , und auch Haben Sie SSH auf Port 80 oder 443 während Webserver (nginx) läuft auf diesen Ports
Wenn Sie einen Web-Proxy haben, der CONNECT-Tunneling ermöglicht
Einige Firewalls blockieren alle ausgehenden Verbindungen, ermöglichen jedoch das Surfen im Internet über einen Proxy, mit dem die HTTP-
CONNECT
Methode effektiv ein Loch in die Firewall stechen kann. DieCONNECT
Methode ist möglicherweise auf bestimmte Ports beschränkt, daher müssen Sie dies möglicherweise wie oben beschrieben mit der Überwachung von Port 443 kombinieren.Um SSH über den Proxy zu aktivieren, können Sie ein Tool wie Korkenzieher verwenden . Fügen Sie in Ihrem
~/.ssh/config
eineProxyCommand
Zeile wie die folgende hinzu, wenn Ihr Webproxy wie folgt lautethttp://web-proxy.work.example.com:3128
:SSH in HTTP (S) einbinden
Einige Firewalls lassen selbst auf Port 443 keinen SSH-Verkehr zu. Um dies zu bewältigen, müssen Sie SSH tarnen oder in etwas tunneln, das die Firewall durchlässt. Siehe http://dag.wiee.rs/howto/ssh-http-tunneling/ für ein Tutorial dies mit auf dem Tun proxytunnel .
quelle
ProxyCommand nc -X connect -x __proxy_IP__:__port__ %h %p
Sie können einen anderen Weg versuchen, einen Webserver einzurichten, der Ihren Server ssh kann,
https://github.com/huashengdun/webssh
quelle
Sie können sslh verwenden, wenn Sie BEIDE HTTPS-Server und SSHd-Server auf demselben Port 443 ausführen möchten.
quelle