ssh-Möglichkeiten
- ssh-Tunnelungen mit Beispielen für Linux und (Windows)
Allgemein gilt: Der Remote-Dienst darf nicht auf einen lokalen Port getunnelt werden, der von einem lokalen Dienst genutzt wird (Linux gibt eine Warnmeldung bei Tunnelung auf einen privilegierten Port aus) !
Spezielle
Gegebenheiten in den Beispielen:
192.168.1.1 ist die lokale IP des
Schulserver, dessen Dienste getunnelt werden sollen.
Der lokale
Nutzername steht auch auf dem Remotehost zur Verfügung. Sonst
wird die Verbindung mit einem vorhandenem Account auf dem Remote-host
in der Form ssh -l <Username auf Remotehost> durchgeführt.
Je nach ssh-Protokoll (1 oder 2) muss möglicherweise der
Parameter -1 oder -2 eingefügt werden: ssh -2 ....
Jedes Gerät,
das einen TCP-Dienst im LAN anbietet, ist bei einer ssh-Verbindung
zum Server erreichbar!
(Der Server muss auf
IP-forwarding eingestellt sein)
Jeder, der einen ssh-account auf
dem Server hat, kann sich bei Kenntnis der IP des Internetinterfaces
im Netz frei bewegen!
Squid
tunneln /über remote-Proxie surfen:
Beispielsweise zur
Überprüfung von Proxiefilterlisten
lokale Browser-Proxy-Einstellung: http-Proxy: 127.0.0.1 Port 14000
local-pc:~ # ssh -L 14000:192.168.1.1:3128 80.130.56.230
Syntax: ssh -L <port auf lokalem Rechner>:<lokale IP Rechner im Schul-LAN>:<Port des Dienstes auf Rechner im Schul-LAN> <öffentl. IP des Verbindungsrechners oder Name des Rechners>
Im obigen Beispiel wird der Proxy Squid (Port 3128) des Schulservers (192.168.1.1) auf den lokalen Port 14000 getunnelt.
WEB-Server tunneln:
lokale Browser-Proxy-Einstellung: http-Proxy: 127.0.0.1 Port 14000
Mit ssh
-L 14000:192.168.1.1:80 64.130.56.230
und
url-Eingabe von „localhost“ im lokalen Browser hat man
die index.html des Schulservers zu Hause.
NMAP (Port 3000) tunneln (Webmin sollte analog mit Port 10000 statt 3000 laufen):
ssh -L 3000:192.168.1.1:3000
80.130.56.230
Im
Browser keinen Proxy angeben, sondern nur als url „localhost:3000“
eingeben.
X-Session tunneln
In der
sshd.conf des remote-Rechners muss „X11Forwarding
yes“ gesetzt sein.
ssh -X <ip des Remoterechners>
Nun kann auf dem remote-Host ein X11-Programm gestartet werden und wird auf dem lokalen Bildschirm angezeigt. Voraussetzung ist hier auf dem lokalen Rechner eine Xwindow-Sitzung ( unter Windows einen Xwindow-Server installieren. Dieser wird automatisch durch das remote-Programm gestartet). Zum Test eignet sich gut „xeyes“.
Dateitransfer mit scp oder sftp (unter Windows mit winscp)
Mit scp (securcopy) und sftp können Dateien zwischen zwischen lokalem Rechner und Remotehost über den ssh-Port 22 kopiert werden. Durch den Zusatzparameter -r ist der rekursive Dateitransfer eines Verzeichnisses möglich.
Upload:
scp
/usr/local/dir.txt <remotehost>:/usr/fileserv/software/
Download:
scp
<remotehost>:/usr/fileserv/software/dir.text /usr/local/
sftp bietet dieselben Möglichkeiten wie das normale FTP und ist scp bei Unkenntnis der Dateinamen auf dem Remoterechner vorzuziehen.
scp und sftp gehören zum OpenSSH-Paket.
Mit dem FTP-Programm Kbear (Linux) lassen sich gesicherte sftp-Verbindungen wie mit einem normalen FTP-Client ausführen
Webinterface tunneln
Habe
ein Switch/Netzwerkdrucker im (remote-)Netz die IP 192.168.1.50 und
ist über ein WEBinterface (port 80) konfigurierbar.
Mit
ssh
-L 14000:192.168.1.50:80 <dyn.IP des Internetinterface>
in
Server einloggen und im Browser
http://localhost:14000 (ohne
Proxybenutzung) eingeben. Das (remote-)Webinterface ist nun im
lokalen Browser zu sehen und zu bedienen.
VNC-Verbindung tunneln
ssh -C -L 5900:192.168.1.180:5900
80.130.56.230
VNC
läuft auf Port 5900. 192.168.1.180 ist die IP eines
Windowsrechners im LAN auf dem ein VNC-Server läuft. Der
Parameter -C dient zur Kompression der getunnelten Verbindung und
erlaubt ein zügiges Arbeiten.
Achtung: Läuft auf dem lokalen Rechner (localhost) ebenfalls ein VNCServer auf Port 5900, so tunnelt man den Remote-VNCServer einfach auf Port 5901 und stellt den VNCViewer auf Display:1 für den Remote-VNCServer ein.
Mit „vncviewer localhost“ wird der Desktop des Rechners im SchulLAN lokal in einem Fenster angezeigt.
VNC-Verbindung auf Linux-Terminalserver (oder Server mit installiertem GUI)
Auf
dem lokalen Rechner einen ssh-Tunnel für Port 5901 (bei
Display=1) schaffen
ssh -C (-l <user>) -L
5901:<lokale IP-Terminalserver>:5901 80.130.56.230
Nach dem Einloggen den vncserver starten und auf die Meldung der Display-Angabe achten ( server:1) bedeutet, dass der vncserver auf Port 5901 läuft.
lworch@rs-kropp:~>
vncserver
New 'X' desktop is rs-kropp:1
Starting applications
specified in /home/lworch/.vnc/xstartup
Log file is
/home/lworch/.vnc/rs-kropp:1.log
und
anschließend auf anderer Konsole des lokalen Rechners
vncviewer
localhost:1
eingeben.
Nun
sollte ein Fenster aufpoppen, indem sich ein xterm-Terminal befindet
(default-Fenstermanager des VNC-Servers ist twm).
Der vncserver
wird zum Ende der Sitzung mit vncserver
-kill :1 gekillt
Wird KDE als Oberfläche gewünscht, so ist in ~/.vnc/xstartup twm durch kde zu ersetzen.
Browserbedienung einer X-Session auf Linuxserver mit installierter grafischer Benutzeroberfläche
VNC-Verbindung wie bei
„VNC-Verbindung auf Linux-Terminalserver“. lworch@rs-kropp:~> vncserver -httpd "/usr/share/vnc/classes" (oder wo sonst die vnc-Java-classes liegen) |
|
Dann muss zusätzlich zu
5901 ein zweiter Tunnel auf Port 5801 für den Browser
geöffnet werden, auf dem das VNC-WEB-Interface „hört“:
|
|
Hier ein Beispiel für putty unter Windows:
Die oben genannten Beispiele für Linux lassen sich entsprechend auch mit putty realisieren.
Hier soll NTOP des Schulservers (Port 3000) über ssh getunnelt werden. (Gleiches muss für Webmin für Port 10000 gelten). Die dynamische IP im Internet des Schulservers ist 217.226.85.108 |
|
---|---|
Unter „SSH Tunnels“ werden folgende Einträge vorgenommen. 192.168.1.1
ist die lokale IP des Schulservers im Intranet der Schule |
|
Durch Klick auf Add werden die Einträge übernommen. |
|
Nach Öffnen der ssh-Verbindung mit putty steht die getunnelte Verbindung zur Verfügung. Im lokalen Browser (keine Proxybenutzung), d.h. „direkte Verbindung mit dem Internet“) kann nun mit der url „localhost:3000“ NTOP eingesehen werden.
|
|
siehe auch: http://sbarth.dyndns.org/arktur/seiten/ssh-vnc.html
Programme unter http://www.heise.de/ct/03/10/links/108.shtml
Es wird hier nicht diskutiert, ob ein Handy als Terminal sinnvoll ist. ;-)
Das Handy muss javafähig sein.
Dies ist bei heutigen Handys meist der Fall.
Der ssh-client
Midpssh wird von http://www.xk72.com/midpssh/download.html
(WAP-url: http://xk72.com/wap ) auf
das Handy geladen und installiert.
In den folgenden Erläuterungen beziehe ich mich auf das Vodafone-Netz und das Handy Siemens CX65V. Andere Konstellationen sind auch möglich, jedoch von mir nicht überprüft.
Manche Ports sind vom Netzbetreiber gesperrt. Ich habe den sshd auf Port 143 (imap) gelegt.
der sshd muss Passwortabfragen
gestatten. Dazu in der sshd_config „PasswordAuthentication
yes“ einstellen und den sshd neu starten („rcsshd
restart“ bei Suse).
Achtung: Ist man über ssh
eingeloggt und startet den sshd neu, so werden die Änderungen
nicht unbedingt übernommen (siehe Fehlermeldungen in
/var/log/messages).
Der Internetzugang ist auf dem Handy auf „VFD2-GPRS Web“ einzustellen. Menü „Einstellungen -> Verbindung -> http-Profil -> VFD2-GPRS Web“. Den Proxy habe ich deaktiviert. (Im Profil VFD2-GPRS-Web muss als APN „web.vodafone.de“ eingetragen sein.)
Bei der Verbindungsaufnahme taucht die Abfrage auf:
Internetzugang
(TCP://<ip-nr. oder url>)
- Einmal zulassen
- Nicht
diesmal
- Nicht für Sitzung
- Niemals erlauben.
- Für
Sitzung
Hier „Für Sitzung“ auswählen, da die nächste Verbindungsaufnahme sonst nicht klappt (zumindest bei mir).
Hilfen für Midpssh unter:
http://www.xk72.com/midpssh/faq.html
und http://www.xk72.com/phpBB2/
|
Der letzte Kick: Mit Lynx vom eingeloggten Rechner aus surfen: =;-> |