Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

In diesem Beitrag werden wir sehen, wie ssh funktioniert. Was ist SSH-Tunneling? was wichtig ist der SSH-Tunnel und wie der SSH-Tunnel einzurichten.
Wenn SSH-Server wird in Maschine installiert dann standardmäßig seinen erlaubt SSH-Tunneling.

SSH Tunneling (Port Forwarding)

Tunneling ist das Konzept das Netzwerkprotokoll zu einem anderen Protokoll zu kapseln. Hier setzen wir in SSH. so dass alle Netzwerkkommunikation ist verschlüsselt. Es ist auch Port Forwarding genannt. weil in SSH-Tunneling werden wir einen lokalen Port zu binden. so was ist das Paket wir diesen bestimmten Port senden gehen, sind alle Pakete transparent verschlüsseln und zu Remote-System ausgeliefert.

Was ist die Notwendigkeit für die SSH-Tunneling?

SSH ist genug, um das Remote-System zu verwalten. es ist nicht genug, um die alle Dienste zuzugreifen, die in Remote-System zur Verfügung stehen.

lassen i in dem folgende Szenario beschreiben,

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

kann nun das Szenario, System (192.168.56.101) ist Schnittstellen mein System der daran angeschlossenes zum Internet und Server seines Namen PrivateServer (192.168.56.102) Maschine hat zwei Ethernet berücksichtigen. einer ist mit dem Internet verbunden ist. und ein weiteres ist verbunden mit 10.10.1.0/24 lokalen Netzwerk. Intranet (10.10.1.11) Maschine ist ein Teil von 10.10.1.0/24 Unternetzwerk.

Hinweis. hier erwähnte i lokales System (192.168.56.101) und Remote-System (192.168.56.102) sind wie lokale Teilnetz-IP-Adresse suchen. Für VM Zweck verwenden ich diese IP-Adresse. Aber die Realität ist, sollte es eine öffentliche IP-Adresse sein.

Wichtige Notiz. SSH Server-Daemon-Dienst ausgeführt wird in Port 22 in allen diesen drei System und Firewall erlaubt diese System mit SSH-Client zu verbinden.

jetzt System (192.168.56.101) auf PrivateServer (192.168.56.102) kommunizieren, weil beide System mit dem Internet direkt verbunden ist. Aber System (192.168.56.101) nicht auf Intranet (10.10.1.11) Maschine kommunizieren, weil aus dem System (192.168.56.101) Perspektive 10.10.1.11 nicht Route der Lage IP-Adresse. 10.10.1.11 ist nicht öffentliche IP-Adresse, die lokale IP-Adresse. so können wir die Pakete nicht direkt Route.

Jetzt ist die Situation so aus dem System (192.168.56.101) Ich möchte das Intranet zuzugreifen (10.10.1.11) Maschine. IP-Tabellen ohne Änderung, umleiten, wie Werkzeuge / Dienstleistungen in Zwischen (oder) Zielmaschine. Weil ich nicht sys-admin bin, so habe ich keine root-Privilegien.

Eine der möglichen Lösung ist zunächst die Verwendung ssh in in PrivateServer einzuloggen (192.168.56.102) und dann wieder (verschachtelte) einloggen, um Intranet (10.10.1.11). Ja, es ist eine gute Idee, seine Werke, jetzt kann ich remote auf die Intranet verwalten (10.10.1.11). aber wenn Intranet (10.10.1.11) einige Dienste bieten wie VNC, Apache, SMTP-, POP3-, dann Squid-Proxy wie können wir diese Dienste aus dem System (192.168.56.101) zugreifen?

Die Lösung ist SSH Tunneling oder SSH Port Forwarding

Ich denke, hier alle Befehl Base64-Codierung codiert wird, bevor an den Server senden und vor verschlüsseln. (Aber ich bin mir nicht sicher)

hier sehr wichtig zu beachten, dass SSH nicht den Port als 22 andere stören (oder welcher Port SSH-Server ausgeführt wird).

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

SSH können gleichzeitig viele Kanals arbeiten. Im normalen Fall verwenden wir Shell-Kanal. Aber jetzt werden wir Datenkanal verwenden. so Grundkonzept ist, in 192.168.56.101 Maschine SSH-Client bind einen Port und stellen eine sichere Verbindung mit dem Server (192.168.56.102). und schafft einen Datenkanal und Shell-Kanal. (Wir können Schalenkanal unter Verwendung -N Option in SSH Befehl weglassen).

SSH-Tunneling-Typen

SSH bietet drei Arten von Tunneln

  • Dynamische Tunneling (SOCKS-Proxy)
  • Local Port Forwarding
  • Remote Port Forwarding

hier -D 8080 binden v5 erwähnen SOCKS-Proxy-Port 8080 in Client-Seite

Nun SSH-Client in 192.168.56.101 Maschine erstellen einen SOCKS-Proxy-Server in Client-Seite und bindet ein lokaler port.then zu 192.168.56.102 entfernten Maschine verbinden und sicheren Kanal aufzubauen.


Nun sind alle Client-Anwendung wie Firefox, Chrom. müssen die Proxy-Einstellung auf SOCKS-Proxy-Server localhost und Port-Nummer konfigurieren. (Check-Video als Referenz unter den post)

Hinweis. betrachten Server (192.168.56.102) und Intranet (10.10.1.11) beide Maschinen Apache httpd-Server laufen und binden Port 80

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

  • Ein Proxy-Server ist genug, um die alle Dienste von Remote-Maschine und deren Teilnetz-Dienste zugreifen
  • Wir müssen die Proxy-Einstellungen in Client-Anwendung konfigurieren, wenn Anwendung nicht den Proxy nicht unterstützt, dann können wir nicht auf den Dienst zugreifen.

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

Wenn u den 10.10.1.11 Maschine http-Dienst zugreifen wollen, dann müssen wir die Einrichtung neues lokales Port-Forwarding.

wir können nicht vor Port-Forwarding verwenden. weil alte zeigt immer auf localhost: 80.

jetzt Client-Seite lokal Port 8000 auf 10.10.1.11:80 Maschine über 192.168.56.102 weitergeleitet.

(Für weitere Referenz überprüfen Sie das Video unten. In Video zeige ich die, wie Remote-Desktop mit VNC zugreifen)

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

  • keine Notwendigkeit, die Proxy-Einstellungen zu konfigurieren
Nachteil:
  • Jeder Service, den wir verschiedene lokale Port-Forwarding einrichten müssen, (das heißt zum Beispiel, 2-Port-Weiterleitung benötigt 192.168.56.102 und 10.10.1.11 http Dienstleistungen zu erhalten)



Remote Port Forwarding


Remote-Port-Forwarding ist die gleiche wie lokale Port-Forwarding. aber dieses Mal müssen wir die Port-Weiterleitung in Server-Seite setzen (192.168.56.102), nicht Client-Seite


wenn wir diesen Befehl seine Verbindung zum Client ausführen und 8000 Port in Client-Seite (nicht Server-Seite) erstellen.
verwenden wie gewohnt Client seinen lokalen Port 8000 Verbindung zum Server. wie lokale Port-Forwarding.


Warum Remote Port Forwarding ist wichtig?
Seine selten verwendet, wenn wir die Maschine gearbeitet. diese Maschine ist im Inneren des NAT. so von außen niemand darauf zugreifen können. diese Art von Situation auf den Rechner zuzugreifen und nach vorne (192.168.56.101) unter Verwendung von Remote-Port zu unserem Clientsystem zurück. dann von der Client-Maschine können wir die Dienste zugreifen. (Sein scheint etwas verwirrend, aber es ist einfach zu sein)




In Windows-Rechner
In Windows-Rechner wollen, wenn SSH-Server dann laufen gibt es viele SSH-Server verfügbar sind WinSSHD freeSSHd. OpenSSH. Wenn wir nur SSH-Client wollen, dann können wir Putty verwenden.

nähme im System (192.168.56.101) i Windows-verwenden dann, wie wir den SSH-Tunneling zugreifen.

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

Wenn wir setzen wollen lokales Port-Forwarding dann nicht verwendet Port 6000 in Quellport und Ziel ist localhost: 80 und wählen Sie Lokal. (Sein gleich 6000 bis -L: localhost: 80)

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun

Wenn u 10.10.1.11 Maschine des Remote-Desktop dann machen lokal Port nach vorne (Check der oberen Bild) zugreifen möge, und Ziel ist 10.10.1.11:5900 hier 5.900 ist der Hafen von VNC-Server verwendet. mit dann einem beliebigen VNC-Client (hier i verwendet tightvnc Client) ur lokal Port verbinden 6000

so erwähnt localhost :: 6000, hier müssen wir doppelten Doppelpunkt erwähnen ::. weil in vnc Client-Port nicht auf diese Weise festgelegt. (Schaut euch das Video)

Bildschirm-Cast - - Ramki Technischer Blog Wie SSH Tunneling (Port Forwarding) tun







Bypass-Firewall
Das SSH-Tunnel-Konzept kann verwenden Firewall zu umgehen. lässt das Szenario in Betracht ziehen. In Server-Seite seiner ermöglichen Firewall und einige Service ausgeführt werden und diese Dienste können localhost oder derselben Maschine zugreifen durch. aber u kann nicht durch Remote-Rechner zugreifen. weil Firewall blockiert die alle die Port außer SSH-Port (22).

diese Art von Situation verwenden wir Tunnel und fast alle Dienste von außen zugegriffen werden. weil Firewall-Regel basiert. In Firewall Perspektive der gesamte Datenverkehr ist geht durch Port 22 so seine erlaubt. aber intern haben wir Tunnel und Zugriff auf alle Dienste.

Wie um zu verhindern SSH Tunnel
Öffnen Sie den SSH-Server-Konfigurationsdatei / etc / ssh / sshd_config stellen Sie dann die Parameter
AllowTcpForwarding nein
dann neu starten SSH-Dienst. dann erlauben sie nicht den SSH-Tunnel-Service, aber noch können wir SSH-Shell-Dienst zugreifen.

Aber in ssh Manpage sie deutlich erwähnt

„Beachten Sie, dass TCP-Weiterleitung deaktivieren keine Sicherheit verbessern, es sei denn Benutzer auch Shell-Zugriff verweigert, da sie immer ihre eigenen Spediteure installieren können.“

so noch können wir nutzen SSH-Tunnel verwenden, obwohl wir setzen AllowTcpForwarding Nr. (Ich werde in meinem nächsten Beitrag zeigen)

Ich hoffe, dass alles klar ist. Wenn irgendein Mißverständnis lass es mich wissen.

Screencast (Watch in HD)

In Verbindung stehende Artikel