Eine sichere Befehlszeilenschnittstelle stellt nur eine der vielen Arten und Weisen dar, wie SSH verwendet werden kann. Mit einer angemessenen Bandbreite können X11-Sessionen über einen SSH-Kanal verwaltet werden. Mithilfe von TCP/IP-Forwarding können bisher unsichere Port-Verbindungen zwischen Systemen auf spezifische SSH-Kanäle gemapped werden.
Eine X11-Session über eine bestehende SSH-Verbindung zu öffnen ist so einfach wie das Ausführen eines X-Programms, während Sie bereits einen X-Client auf Ihrem Rechner ausführen. Wird ein X-Programm von einer Secure Shell Prompt ausgeführt, erstellen der SSH-Client und -Server einen neuen, verschlüsselten Kanal in der aktuellen SSH- Verbindung, und die Daten des X-Programms werden über diesen Kanal auf Ihren Client-Rechner gesendet, als ob Sie über ein lokales Terminal mit dem X-Server verbunden wären.
Sie können sich sicherlich vorstellen, wie nützlich X11-Forwarding sein kann. Sie können hiermit zum Beispiel eine sichere, interaktive Session mithilfe der up2date GUI auf dem Server erstellen, um bestimmte Pakete zu aktualisieren (sofern die notwendigen Red Hat Network Pakete auf dem Server installiert sind). Verbinden Sie sich hierzu über ssh mit dem Server und geben Sie Folgendes ein:
up2date |
Sie werden nun aufgefordert, das Root-Passwort für den Server einzugeben. Anschließend erscheint Red Hat Update Agent, und Sie können Ihre Pakete auf dem Server aktualisieren, als ob Sie direkt vor Ihrem Rechner sitzen würden.
Die zusätzlichen Bearbeitungsinformationen, die für das Verschlüsseln und Entschlüsseln der über den Kanal gesendeten Informationen notwendig sind, sowie die für das Übertragen der verschlüsselten Daten des X-Programms erforderliche zusätzliche Bandbreite können jedoch von großer Bedeutung sein. Es müssen entsprechende Tests durchgeführt werden, um sicherzustellen, dass das X-Programm mit Ihrer speziellen Hardware und Bandbreite verwendet werden kann.
TCP/IP-Forwarding funktioniert mit dem SSH-Client, der anfordert, dass ein bestimmter Port beim Client oder Server über die bestehende Verbindung gemapped wird.
Um einen lokalen Port des Clients auf den Port des Servers zu mappen, müssen Sie zunächst die Portnummern beider Rechner kennen. Es ist auch möglich, zwei nicht-standardmäßige unterschiedliche Ports miteinander zu mappen.
Verwenden Sie den folgenden Befehl (auf einer einzigen Zeile), um einen TCP/IP-Forwarding-Kanal zu erstellen, der auf Verbindungen auf dem lokalen Rechner wartet:
ssh -L <local-port>:<remote-hostname>:<remote-port> <username>@<hostname> |
Bitte beachten | |
---|---|
Für das Einrichten von TCP/IP-Forwarding-Kanälen für Ports mit weniger als 1024 Zylindern - wie auch für das Starten von Diensten an solchen Ports - müssen Sie als Root angemeldet sein. |
Wenn Sie zum Beispiel Ihre E-Mails auf einem Server mit dem Namen mail.domain.com mithilfe von POP abrufen möchten und SSH auf diesem Server zur Verfügung steht, können Sie den folgenden Befehl verwenden, um TCP/IP-Forwarding einzurichten:
ssh -L 1100:mail.domain.com:110 mail.domain.com |
Nachdem TCP/IP-Forwarding zwischen den beiden Rechnern eingerichtet wurde, können Sie Ihren POP-Mail-Client anweisen, localhost als POP-Server und 1100 als Port für das Abrufen neuer E-Mails zu verwenden. Alle an Ihren Port 1100 gesendeten Anforderungen werden auf diese Weise sicher an den Server mail.domain.com weitergeleitet.
Wenn mail.domain.com keinen SSH-Serverdämon ausführt, Sie sich jedoch über SSH (und eventuell mit einer Firewall) an einem nahen Rechner anmelden können, können Sie dennoch SSH verwenden, um den Teil der POP-Verbindung zu sichern, der über öffentliche Netzwerke läuft. Hierzu ist ein Befehl notwendig:
ssh -L 1100:mail.domain.com:110 other.domain.com |
In diesem Beispiel leiten Sie Ihre POP-Anforderung von Port 1100 Ihres Rechners über die SSH-Verbindung auf Port 22 an other.domain.com weiter. Anschließend verbindet sich other.domain.com mit Port 110 auf mail.domain.com, so dass Sie neue E-Mails abrufen können. Nur die Verbindung zwischen Ihrem System und other.domain.com ist sicher. In den meisten Fällen reicht dies jedoch aus, um Ihre Informationen sicher über öffentliche Netzwerke zu senden.
In diesem und im vorigen Beispiel müssen Sie sich allerdings gegenüber dem SSH-Server identifizieren, um das TCP/IP-Forwarding vornehmen zu können. Versichern Sie sich, dass Sie die normalen SSH-Befehle ausführen können, bevor Sie TCP/IP-Forwarding einrichten.
TCP/IP-Forwarding kann sehr nützlich sein, wenn Sie Informationen sicher über Netzwerk-Firewalls übertragen möchten. Wenn die Firewall so konfiguriert ist, dass SSH-Kommunikationen über den Standardport (22) erfolgen, die Übertragung über andere Ports jedoch gesperrt ist, ist eine Verbindung zwischen zwei Rechnern mit gesperrten Ports weiterhin möglich, indem die Meldungen über eine festgesetzte SSH-Verbindung zwischen diesen Rechnern übermittelt werden.
Bitte beachten | |
---|---|
Dies stellt jedoch ein großes Risiko dar. TCP/IP-Forwarding für das Weiterleiten von Verbindungen ermöglicht es jedem Benutzer des Client-Servers, sich mit dem Dienst zu verbinden, an den Sie Verbindungen weiterleiten. Dies ist besonders dann gefährlich, wenn Ihr Client-System auf irgendeine Art und Weise beschädigt ist. Prüfen Sie mit dem Systemadministrator, wer Ihre Firewall verwaltet, bevor Sie TCP/IP-Forwarding verwenden. Der Grund hierfür ist, dass Systemadministratoren diese Anwendung auf dem Server deaktivieren können, indem sie auf der AllowTcpForwarding-Zeile No in /etc/ssh/sshd_config eingeben und sshd neu starten. |