• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] ssh und http Zugriff

padersuse

Hacker
Hallo,

mit webmin kann man sicherlich gut einen entfernten Rechner verwalten, ich möchte aber folgendes ausprobieren.
1. vncserver in der konsole eines Benutzers am entfernten Rechner starten (hat auch geklappt)
2. ssh Verbindung zum entfernten Rechner aufbauen (hat auch geklappt). Dann aber über diese ssh-Verbindung den konqueror oder firefox als vncviewer starten. Ohne ssh-Verbindung hat das auch schon geklappt; von der perfomance her habe ich hier das beste Ergebnis erzielt, auch im Vergleich zum Programm krdc oder vncviewer. Ich möchte aber ssh einbinden. Welchen Befehl gebe ich dann ein ? Die Verbindung habe ich hergestellt über den Befehl
ssh -l benutzername -C -L 5901:ip-nummer:5901 ip-nummer
Auf dem remote Rechner lief natürlich der SSH-Dienst.
Weiß jemand Rat ?
Gruß Padersuse
 

rolle

Guru
Zu VNC und SSH_X_Forwarding siehe:
http://www.linux-club.de/faq/VNC_NoMachine_NX_und_SSH_X-Forwarding
Verstehe ich Dich richtig, Du hast drei Rechner; auf dem ersten verbindest Du Dich mit dem zweiten und möchtest von dort den dritten steuern?
 
OP
P

padersuse

Hacker
Hallo Rolle,

man könnte diese Frage so interpretieren, aber so weit will ich gar nicht gehen. Ich hab jetzt verschiedene remote desktop client Lösungen ausprobiert : krdc, vncviewer und über firefox, z.B. mit http://ip_nummer:5801, ohne ssh. Die Client-Lösing über Java (Firefox) war deutlich am schnellsten. Ich wollte diese Lösung aus Sicherheitsgründen über ssh starten, aber wie ? Die ssh-Verbindung bekomme ich hin, aber wie setzte ich auf diese Verbindung firefox per java auf ?
Gruß Padersuse
 

rolle

Guru
Also Beispiel:
Rechner A ist Client, Rechner B Server.
Dann mußt Du den Port 58xx (je nachdem, was für einen VNC Du auf was für einem Port laufen hast) forwarden und dann im Browser auf A localhost:58xx als Adresse eingeben.
 
OP
P

padersuse

Hacker
Hallo Roland,

hab das gerade mal versucht unter firefox über http://localhost:5801 eine Verbindung aufzubauen, klappt aber nicht, denn in der konsole erscheint parallel : open failed: connect failed: No route to host. Wenn ich auf dem lokalen Rechner http://localhost:5801 eingebe, woher weiss dann der Browser, dass nicht der Lokalrechner gemeint ist ?
Gruß Padersuse
 
OP
P

padersuse

Hacker
Hallo Roland,

noch eine Frage :
wenn ich zunächst eine ssh-Verbindung aufbaue über den Befehl
ssh -Xl username -C -L 5801:ip-nummer:5801 ip-nummer und danach über Firefox mit dem Befehl http://localhost:5801 auf den Fernrechner über den Port 5801 zugreifen möchte, ist dann die http-Verbindung auch getunnelt ?
Auf meiner Fritzbox vor dem Fernrechner ist nur der Port 22 freigegeben. Vielleicht klappt der Zugriff über Firefox deswegen nicht.
Gruß Padersuse
 
OP
P

padersuse

Hacker
Hallo,

der Port wird auch zum Server geleitet. Wenn ich die Ports 22, 5801 und 5901 auf meiner Fritzbox freigebe bzw. weiterleite, funktioniert auch der http-Zugriff des Clients über firefox, aber dann ist der Zugriff über http nicht getunnelt oder doch ?

Gruß Padersuse
 

rolle

Guru
Das kommt immer darauf an, was genau Du dem Browser als Adresse mitgibst. Es ist aber keine gute Idee, die VNC-Ports in der Firewall zu öffnen, da die Sicherheit von SSH ungleich höher ist.
Also noch einmal das Prinzip von Portforwarding. Man gibt in Deinem Beispiel einen Port auf dem Server an, der auf einem Port, das muß nicht der gleiche sein, auf dem Client weitergeleitet wird. Jede Verbindung mit dem Port auf dem Client stellt automatisch eine Verbindung mit dem Port auf dem Server her. Für die Programme, die auf den Port auf dem Client zugreifen ist das transparent, sprich sie merken nichts davon, daß eigentlich ein anderer Rechner antwortet.
Um potentielle Fehler auszuschalten:
- Bist du sicher, daß der VNC-Server auch auf Port 5801 lauscht?
- Mache mal Folgendes:
Code:
ssh -l USERNAME_AUF_SSH-SERVER -C -L 4321:VNC-SERVER:5801 SSH-SERVER
Beachte dabei, daß das dieselbe Nutzerin sein muß, unter der auch der VNC-Server läuft.
danach:
Code:
telnet localhost 4321
Bekommst Du dann eine Verbindung, die in etwa so ausschaut?
sjrohold@sv00:~> telnet sv00 5920
Trying 192.168.255.100...
Connected to sv00.
Escape character is '^]'.
RFB 003.007
Falls ja, dann läuft immerhin schon einmal der VNC-Server. Dann kommt als nächstes die Kür: Öffne in einem javaunterstützenden Browser
Code:
http://localhost:4321
Klappt dann die Verbindung?
Das Sahnehäubchen kannst Du dann noch aufsetzen, wenn Du Deinen SSH-Server so konfigurierst, daß eine Anmeldung nur noch per Public-/Private-Schlüsselpaar möglich ist.
Falls schon der Teil mit telnet nicht funktioniert fiele mir als mögliche Fehlerquelle noch ein, daß der VNC-Server Verbindungen von localhost ablehnt. Das müßte dann noch entsprechend umgestellt werden. Wo, das müßte ich auch noch suchen.
 
OP
P

padersuse

Hacker
Hallo Roland,

habe folgendes durchgeführt :
1. in der Fritzbox port 22 freigegeben für Rechner mit ip-Adresse 192.168.1.60
2. vncserver in der konsole des Benutzers gestartet, dann mit nmap die offenen Ports überprüft :

PORT STATE SERVICE
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
111/tcp open rpcbind
139/tcp open netbios-ssn
199/tcp open smux
445/tcp open microsoft-ds
631/tcp open ipp
783/tcp open hp-alarm-mgr
834/tcp open unknown
953/tcp open rndc
5801/tcp open vnc-http-1
5901/tcp open vnc-1
6001/tcp open X11:1

Dann vom Client eine ssh Verbindung aufgebaut mit folgender Eingabe :
ssh -l USERNAME_AUF_SSH-SERVER -C -L 4321:ip-nummer-fritzbox:5801 ip-nummer-fritzbox, hat auch geklappt, nur wenn ich in der konsole dann
telnet localhost 4321
eingebe, bekomme ich folgendes :
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying ::1...
telnet: connect to address ::1: Connection refused
wenn ich in einer 2. Konsolensitzung des Clients (username@client) telnet localhost 4321 eingebe, erscheint

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

Auf der ersten Konolensitzung username@server erscheint :
channel 3: open failed: connect failed: No route to host

Beim Router vor dem Client sowie beim Client selbst habe ich die Firewall deaktiviert. Kann es doch eigentlich nur an der Fritz-Box liegen, denn ich kann in der SSH-Sitzung lokal am Server in der Konsole einwandfrei arbeiten.
Tja, wie erklärt man sich das ?
Gruß Padersuse

p.s.: ich habe das gleiche im lokalen netz ausprobiert, klappt wunderbar, es muss daher an der Fritzbox liegen, obwohl ich heute schon ein Firmwareupdate gemacht habe.
 

rolle

Guru
Ich habe jetzt eine ganze Weile benötigt, um 'erste' und 'zweite' Konsolensitzung zu verstehen. Inzwischen bin ich mir sicher, daß Du einen grundlegenden Denkfehler hast. Die 'erste' Konsole, das ist Deine SSH-Sitzung. Natürlich funktionieren da Verbindungen zu Port 4321 nicht, der ist schließlich nur auf dem Client existent, auf dem Server nicht zugewiesen.
Deshalb mußt Du natürlich die SSH-Sitzung und Befehle auf der Konsole des Clients trennen, indem Du eine neue Konsole öffnest.
Das Ergebnis des telnets auf der Clientkonsole sieht ja auch so schlecht nicht aus.
 
OP
P

padersuse

Hacker
Hallo Roland,

dass ich einerseits die SSH-Sitzung und andererseits die Befehle auf der Konsole des Clients trennen muss ist mir inzwischen klar, denn in der SSH-Sitzung befinde ich mich schließlich eingeloggt unter username@servername. Diese Sitzung schafft für mich als user nur die Möglichkeit unter username@client den Port zu nutzen.
Leider hab ich immernoch nicht gelöst, warum die telnet-Verbindung abgebrochen wird. Ist es möglich, dass die Fritzbox "merkt", ob man port-forwarding betreibt ?

Padersuse
 

rolle

Guru
Nein, das ist vollkommen unmöglich. Es ist ja eben der Trick am Tunneln, daß nur Verkehr über SSH stattfindet, zumindest von außen gesehen.
 
OP
P

padersuse

Hacker
Hallo Roland,

die telnet Sitzung funktioniert inzwischen. Es lag hier meinerseits ein Mißverständnis vor. Bei der Eingabe
ssh -l USERNAME_AUF_SSH-SERVER -C -L 4321:VNC-SERVER:5801 SSH-SERVER

bin ich davon ausgegangen, dass vncserver und SSH-Server ein und derselbe Rechner sind, da ich glaubte, dass die in der Fritzbox eingetragene Route so funktionieren würde.

Mein Http-Zugriff klappt allerdings immernoch nicht richtig:
beginne ich die SSH Sitzung mit

ssh -l username -C -L 4321:192.168.1.62:5801 ip-fritzbox

und gebe ich im Browserfenster http://localhost:4321 ein, so erscheint die Java-Anmeldemaske, das Kennwort kann ich eingeben, aber es kommt die Fehlermeldung :
Network error: could not connect to server : localhost 5901

wenn ich die SSH-Sitzung mit ssh -l username -C -L 4321:192.168.1.62:5901 ip-fritzbox einleite und dann im Browserfenster
http://localhost:4321 eingebe,

erscheint nur : RFB 003.007

Noch eine Idee ?

Gruß Padersuse
 
OP
P

padersuse

Hacker
Hallo,
habe gerade o.g. Zugriff im lokalen Netzwerk realisiert über 2 SSH-Sitzungen :
ssh -l username -C -L 5901:192.168.1.62:5901 192.168.1.62
und
ssh -l username -C -L 5801:192.168.1.62:5801 192.168.1.62

Wenn ich es richtig verstanden habe, dann lauscht der VNC-Server auf Port 5901, der Web basierte Teil des Dienstes aber auf 5801, sodass man beide Ports über SSH-Sitzungen tunneln muss. Ich nehme an, übers Netz wirds auch funktionieren, werde dann berichten.
Wenn jemand eine schnellere Lösung eines Remote Desktops über SSH-Sizungen anzubieten hat, bin ich sehr gespannt.

Gruß Padersuse
 
OP
P

padersuse

Hacker
Hallo Roland,

wie von mir erwartet, klappt mein Zufriff auch übers Netz. Mit FreeNX werde ich mich umgehend beschäftigen.
Gruß Padersuse
 
Oben