Toon posts:

X-forwarding SSH Firewall probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hi,

Ik wil graag een x-appl. draaien op mijn windows PC door gebruik te maken van X-forwarding/SSH. Dat lukt me wel in mijn thuis omgeving zonder firewall ertussen, maar niet remote. Zo ziet plaatje eruit:

PC1---SSH GW (FW?)---ADSL---router met port forwarding---Linux bak met SSHD en X

Mbv PuTTY op de PC kan ik een SSH verbinding opbouwen met de Linux bak. Als ik de PC thuis rechtstreeks in het LAN bij de Linux bak prik, kan ik ook een x-appl draaien. Maar dat lukt niet als ik het zo doe als hierboven geschetst. Dan krijg ik error:
xterm Xt error: Can't open display: %s (ook als ik DISPLAY exporteer naar "PC IP adres":0.0)

Waarom krijg ik eigenlijk een fout? In beide gevallen gaat alle traffic toch door de SSH tunnel? Wat er doorheen gaat moet toch transparant zijn? Of worden er toch andere porten gebruikt of sessies opgezet die door de SSH GW of FW worden tegen gehouden? Ik dacht dat X-forwarding juist bedoeld is voor dit soort constructies.

Wie heeft tips/kan me verder helpen?
Alvast dank.

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Doe eens "echo $DISPLAY" als je de verbinding met putty hebt opgezet? %s vind ik wat vreemd aandoen.

In principe zou alle verkeer door de SSH tunnel moeten gaan, maar niet als je DISPLAY exporteert naar PC-IP:0.0, dat moet "SERVERIP:10.0" zijn (of localhost:10.0), want dat locale adres wordt juist geforward naar je client. Daarom werkt het niet als je dat PC IP invult in DISPLAY.

Waarom het niet werkt als je "gewoon" een ssh verbinding maakt met putty met X forwarding weet ik niet, het zou kunnen dat je sshd niet goed ingesteld is, waardoor X niet geforward wordt of DISPLAY niet goed geinitiialiseerd, maar het zou ook kunnen dat je putty niet goed hebt ingesteld.

It sounds like it could be either bad hardware or software


Verwijderd

Topicstarter
smokalot schreef op 06 januari 2004 @ 16:38:
Doe eens "echo $DISPLAY" als je de verbinding met putty hebt opgezet? %s vind ik wat vreemd aandoen.

In principe zou alle verkeer door de SSH tunnel moeten gaan, maar niet als je DISPLAY exporteert naar PC-IP:0.0, dat moet "SERVERIP:10.0" zijn (of localhost:10.0), want dat locale adres wordt juist geforward naar je client. Daarom werkt het niet als je dat PC IP invult in DISPLAY.
Als ik "echo $DISPLAY" doe, krijg ik niks terug. Gewoon leeg.

Je tweede opmerking over "SERVERIP:10.0" ed. begrijp ik niet. Kun je iets meer toelichting geven.

Bedankt alvast.

Verwijderd

Topicstarter
Overigens heb ik in beide gevallen Exceed op de PC draaien.

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Verwijderd schreef op 06 januari 2004 @ 16:51:
[...]


Als ik "echo $DISPLAY" doe, krijg ik niks terug. Gewoon leeg.

Je tweede opmerking over "SERVERIP:10.0" ed. begrijp ik niet. Kun je iets meer toelichting geven.

Bedankt alvast.
Als je SSH met X forwarding wilt, worden er zeg maar 2 ssh tunnels gebouwd, eentje voor je shell, en eentje voor X.

Die tunnel moet je zien als een soort symlink, of als een soort wormgat, kan het even niet beter omschrijven. Je moet het je voorstellen dat aan de X-tunnel aan de kant van de server, alles wat bij de opening daarvan komt erin wordt gezogen, en er weer uitkomt bij de client. Voor de X server op de client lijkt het dus alsof de data van lokaal komt, en op de server lijkt het alsof het DISPLAY lokaal is! vandaar localhost. Het 10:0 is omdat de sshd een nieuwe DISPLAY aanmaakt, en begint met tellen vanaf 10, ipv vanaf 0, die zijn meestal in gebruik nl.

heb je X forwarding wel aanstaan in je sshd.conf? en vink je bij putty wel X forwarding aan?

It sounds like it could be either bad hardware or software


Verwijderd

Topicstarter
smokalot schreef op 06 januari 2004 @ 17:51:
[...]

Als je SSH met X forwarding wilt, worden er zeg maar 2 ssh tunnels gebouwd, eentje voor je shell, en eentje voor X.

Die tunnel moet je zien als een soort symlink, of als een soort wormgat, kan het even niet beter omschrijven. Je moet het je voorstellen dat aan de X-tunnel aan de kant van de server, alles wat bij de opening daarvan komt erin wordt gezogen, en er weer uitkomt bij de client. Voor de X server op de client lijkt het dus alsof de data van lokaal komt, en op de server lijkt het alsof het DISPLAY lokaal is! vandaar localhost. Het 10:0 is omdat de sshd een nieuwe DISPLAY aanmaakt, en begint met tellen vanaf 10, ipv vanaf 0, die zijn meestal in gebruik nl.

heb je X forwarding wel aanstaan in je sshd.conf? en vink je bij putty wel X forwarding aan?
In ssh_config had ik al ForwardX11 op yes gezet en ook ForwardAgent op Yes

Hoe wordt zo'n 2e tunnel opgebouwd? Vanuit de linux bak? Dan zal ie wel tegengehouden worden door de FW. Of gaat dat ook door de opgebouwde tunnel?

Heb nu volgende getest. Als ik op mijn ander thuis PC met PuTTY weer een SSH connectie maak, is daar naar DISPLAY gelijk aan localhost:10.0, precies zoals je schrijft. Ik moet dan wel de DISPLAY zetten op PC IP thuis:0.0 om een x-appl te kunnen draaien.
Als ik dat echter doe via de remote PC, buiten het LAN, heeft de DISPLAY geen waarde. Als ik daarna de DISPLAY zet op localhost:10.0, krijg ik nog steeds de error: xterm Xt error: Can't open display: %s

Wat kan ik nog proberen om dit probleem te tackelen?

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 13:07

voodooless

Sound is no voodoo!

Verwijderd schreef op 07 januari 2004 @ 09:51:
[...]

In ssh_config had ik al ForwardX11 op yes gezet en ook ForwardAgent op Yes

Hoe wordt zo'n 2e tunnel opgebouwd? Vanuit de linux bak? Dan zal ie wel tegengehouden worden door de FW. Of gaat dat ook door de opgebouwde tunnel?

Heb nu volgende getest. Als ik op mijn ander thuis PC met PuTTY weer een SSH connectie maak, is daar naar DISPLAY gelijk aan localhost:10.0, precies zoals je schrijft. Ik moet dan wel de DISPLAY zetten op PC IP thuis:0.0 om een x-appl te kunnen draaien.
Als ik dat echter doe via de remote PC, buiten het LAN, heeft de DISPLAY geen waarde. Als ik daarna de DISPLAY zet op localhost:10.0, krijg ik nog steeds de error: xterm Xt error: Can't open display: %s

Wat kan ik nog proberen om dit probleem te tackelen?
Je moet in Putty ook wel ff X-forwarding aanzetten, zoals eerder beschreven! Daar kun je ook meteen instellen welk display gebruikt gaat worden!

Do diamonds shine on the dark side of the moon :?


Verwijderd

Topicstarter
deepspace schreef op 07 januari 2004 @ 09:58:
[...]


Je moet in Putty ook wel ff X-forwarding aanzetten, zoals eerder beschreven! Daar kun je ook meteen instellen welk display gebruikt gaat worden!
X11 forwarding is enabled. Daarbij staat standaard de X display location op:
localhost:0 in PuTTY.

Moet dat wat anders zijn? Zo werkt het in elk geval op mijn PC in het Lan bij de linux doos. Je kunt daar overigens ook meer zaken instellen wat betreft port forwarding ed. Moet ik daar nog wat aan veranderen? (Zou eigenlijk niet begrijpen waarom)

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Verwijderd schreef op 07 januari 2004 @ 10:22:
[...]


X11 forwarding is enabled. Daarbij staat standaard de X display location op:
localhost:0 in PuTTY.

Moet dat wat anders zijn? Zo werkt het in elk geval op mijn PC in het Lan bij de linux doos. Je kunt daar overigens ook meer zaken instellen wat betreft port forwarding ed. Moet ik daar nog wat aan veranderen? (Zou eigenlijk niet begrijpen waarom)
Wat je in PuTTY hebt staan als localhost:0 klopt, dat is exceed.

Maar aangezien jij een lege DISPLAY hebt als je ssht denk ik dat er iets mis is met je sshd, die zou namelijk localhost:10 voor jou aan moeten wijzen.

LET WEL, localhost:10 gaat over de ssh-tunnel, maar als jij ssht naar je server, en daar DISPLAY=[PC-IP]:0 exporteert, gaat het NIET door de SSH tunnel, en kan het kloppen dat het alleen maar op het interne LAN werkt, omdat X wat moeite heeft met firewalls enzo. Als je X door ssh gebruikt heb je daar geen last van (omdat het niet uitmaakt waar de tunnel allemaal doorheen gaat).

It sounds like it could be either bad hardware or software


  • Equator
  • Registratie: April 2001
  • Laatst online: 12:55

Equator

Crew Council

#whisky #barista

Die X forward tunnel is eigenlijk een aparte tunnel in je ssh connectie. Daarom heeft hij geen last van firewal's e.d.

Verwijderd

Topicstarter
smokalot schreef op 07 januari 2004 @ 11:41:
[...]

Wat je in PuTTY hebt staan als localhost:0 klopt, dat is exceed.

Maar aangezien jij een lege DISPLAY hebt als je ssht denk ik dat er iets mis is met je sshd, die zou namelijk localhost:10 voor jou aan moeten wijzen.

LET WEL, localhost:10 gaat over de ssh-tunnel, maar als jij ssht naar je server, en daar DISPLAY=[PC-IP]:0 exporteert, gaat het NIET door de SSH tunnel, en kan het kloppen dat het alleen maar op het interne LAN werkt, omdat X wat moeite heeft met firewalls enzo. Als je X door ssh gebruikt heb je daar geen last van (omdat het niet uitmaakt waar de tunnel allemaal doorheen gaat).
Misschien gaat hier dan wat fout. Als ik nl in mijn thuis LAN rechtstreeks een SSH verbinding opbouw is de DISPLAY gelijk aan localhost:10.0. Maar als ik dan zonder de DISPLAY te veranderen bv xterm & draai, krijg ik de volgende foutmelding:
X connection to localhost:10.0 broken (explicit kill or server shutdown).

Als ik je goed begrijp, lukt het dus dan ook niet om de display door de SSH tunnel te sturen. Wat doe ik fout?

Waarom is eigenlijk de DISPLAY leeg als ik remote een SSH verbinding opbouw?
Wat zou er fout kunnen zijn in mijn ssh config?

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Verwijderd schreef op 07 januari 2004 @ 13:14:
[...]


Misschien gaat hier dan wat fout. Als ik nl in mijn thuis LAN rechtstreeks een SSH verbinding opbouw is de DISPLAY gelijk aan localhost:10.0. Maar als ik dan zonder de DISPLAY te veranderen bv xterm & draai, krijg ik de volgende foutmelding:
X connection to localhost:10.0 broken (explicit kill or server shutdown).

Als ik je goed begrijp, lukt het dus dan ook niet om de display door de SSH tunnel te sturen. Wat doe ik fout?

Waarom is eigenlijk de DISPLAY leeg als ik remote een SSH verbinding opbouw?
Wat zou er fout kunnen zijn in mijn ssh config?
Ik heb zelf een vergelijkbare setup, maar dan met Xwin32, daar is het nodig om expliciet localhost of 127.0.0.1 toe te voegen aan de authorized list oid. Is dat het?

Ik vind het wel heel vreemd dat het uitmaakt waarvandaan je de ssh verbinding opzet, weet je zeker dat je niet iets hebt verandert in de config?

Je kunt kijken of het aan de client of de server ligt door bv eens te booten met een knoppix CD, en dan ssh -X te doen. Als het dan ook niet werkt ligt het hoogstwaarschijnlijk aan de server.

offtopic:
als je wilt kan ik ook voor je testen met mijn clients, zowel Xwin32+PuTTY als linux, moet je even een account voor me aanmaken en ff doormailen ofzo...

It sounds like it could be either bad hardware or software


Verwijderd

Topicstarter
smokalot schreef op 07 januari 2004 @ 13:46:
[...]

Ik heb zelf een vergelijkbare setup, maar dan met Xwin32, daar is het nodig om expliciet localhost of 127.0.0.1 toe te voegen aan de authorized list oid. Is dat het?

Ik vind het wel heel vreemd dat het uitmaakt waarvandaan je de ssh verbinding opzet, weet je zeker dat je niet iets hebt verandert in de config?

Je kunt kijken of het aan de client of de server ligt door bv eens te booten met een knoppix CD, en dan ssh -X te doen. Als het dan ook niet werkt ligt het hoogstwaarschijnlijk aan de server.

offtopic:
als je wilt kan ik ook voor je testen met mijn clients, zowel Xwin32+PuTTY als linux, moet je even een account voor me aanmaken en ff doormailen ofzo...
Ben niet bekend met authorized list. Heb verder niks aan config veranderd. Lokaal werkt het dus wel (maar weet eigenlijk niet of het door SSH tunnel gaat). Remote niet. Als je kan helpen, graag.
offtopic:
Probeerde je te mailen, maar krijg foutmelding dat je mailbox vol is....

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Verwijderd schreef op 07 januari 2004 @ 14:33:
[...]


Ben niet bekend met authorized list. Heb verder niks aan config veranderd. Lokaal werkt het dus wel (maar weet eigenlijk niet of het door SSH tunnel gaat). Remote niet. Als je kan helpen, graag.
offtopic:
Probeerde je te mailen, maar krijg foutmelding dat je mailbox vol is....
oeps, heb mn oude mailadres daar nog staan...

mn nieuwe is joostbaas[apenstaartje]hotmail[punt]com
MSN kan ook.

It sounds like it could be either bad hardware or software


  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Na enige mailcommunicatie heb ik ingelogd via ssh met X forwading (vanaf mijn linuxmachine), en bleek dat ik prima in staat was om xtermpjes te openen. Het probleem zit m dus in de clients X server (exceed), en daarvoor heb ik deze link voor m gevonden, en als het goed is is hij nu stap 3 aan het proberen.

It sounds like it could be either bad hardware or software


Verwijderd

Topicstarter
Stap 3 uitgevoerd, maar helaas geen verschil.
Ik begrijp ook nog niet waarom DISPLAY leeg is. Weet het systeem dan wel waar het DISPLAY is?
Heb ook nog geprobeerd het DISPLAY te zetten op localhost:10.0, maar krijg nog steeds: xterm Xt error: Can't open display %s

Ik ga je hele link maar eens goed doornemen, maar vraag me af of het in exceed zit, omdat het lokaal en jou wel lukt.

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Verwijderd schreef op 07 januari 2004 @ 15:48:
Stap 3 uitgevoerd, maar helaas geen verschil.
Ik begrijp ook nog niet waarom DISPLAY leeg is. Weet het systeem dan wel waar het DISPLAY is?
Heb ook nog geprobeerd het DISPLAY te zetten op localhost:10.0, maar krijg nog steeds: xterm Xt error: Can't open display %s

Ik ga je hele link maar eens goed doornemen, maar vraag me af of het in exceed zit, omdat het lokaal en jou wel lukt.
Mijn $DISPLAY was niet leeg, maar stond op localhost:11.0

De sshd is wel goed geconfigureerd, alleen jouw client dus niet. Er zijn 2 programmaatjes bij betrokken, putty en exceed. Bij putty moet je gewoon de standaardsettings gebruiken, en dan alleen X11 forwarding aanvinken. Verder niks. Bij exceed moet je (zoals in de link bij stap 3 staat) 127.0.0.1 toevoegen. EXCEED MOET NATUURLIJK WEL DRAAIEN.

Als jouw DISPLAY niet geinitialiseerd wordt heb je waarschijnlijk X11 forwarding niet aangevinkt in putty. Ik weet niet wat er gebeurt op het moment dat er iets mis is met de X server (exceed), terwijl je wel X11FW aangevinkt hebt bij putty. Weet niet of dat je lege $DISPLAY zou verklaren.

Als je echt HEEL zeker weet dat je X11 forwarding aan hebt staan, dat exceed goed geconfigureerd is en draait, en het werkt nog steeds niet dan zou ik Xwin32 proberen.

It sounds like it could be either bad hardware or software


Verwijderd

Topicstarter
Ik heb nu inderdaad X-win32 geprobeerd. In de thuisomgeving heb ik daarna een ssh verbinding opgebouwd. Display stond toen meteen op localhost:10.0 en kon daarna meteen xterm opstarten. Hoe weet ik nou zeker of alles door de SSH tunnel ging en niet via een andere verbinding?

De remote verbinding vertoont nog steeds dezelfde verschijnselen: DISPLAY value is leeg na inloggen via SSH en hoe ik de DISPLAY ook zet, het display kan niet opgebouwd worden. Wat doe ik fout? Hoe kan ik het oplossen?

Wat verder van belang kan zijn is het volgende. Om een remote verbinding op te bouwen, moet ik eerst een ssh verbinding naar de SSH GW opbouwen. Dan krijg ik een login prompt. Ik hoef dan alleen te enteren en lijk dan ingelogd en krijg een scherm waarbij ik in moet vullen of ik telnet of ssh wil gebruiken, het uiteindelijke IP adres van mijn linux bak en de login naam.
Dit is dus een soort 2 traps ssh verbinding. Ik vraag me dus af of the X-forwarding van PuTTY op deze manier wel doorgegeven wordt naar de uiteindelijke linux bak. Kan ik dat controleren? Of alsnog X-forwarding opzetten?

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Verwijderd schreef op 08 januari 2004 @ 12:02:
Ik heb nu inderdaad X-win32 geprobeerd. In de thuisomgeving heb ik daarna een ssh verbinding opgebouwd. Display stond toen meteen op localhost:10.0 en kon daarna meteen xterm opstarten. Hoe weet ik nou zeker of alles door de SSH tunnel ging en niet via een andere verbinding?

De remote verbinding vertoont nog steeds dezelfde verschijnselen: DISPLAY value is leeg na inloggen via SSH en hoe ik de DISPLAY ook zet, het display kan niet opgebouwd worden. Wat doe ik fout? Hoe kan ik het oplossen?

Wat verder van belang kan zijn is het volgende. Om een remote verbinding op te bouwen, moet ik eerst een ssh verbinding naar de SSH GW opbouwen. Dan krijg ik een login prompt. Ik hoef dan alleen te enteren en lijk dan ingelogd en krijg een scherm waarbij ik in moet vullen of ik telnet of ssh wil gebruiken, het uiteindelijke IP adres van mijn linux bak en de login naam.
Dit is dus een soort 2 traps ssh verbinding. Ik vraag me dus af of the X-forwarding van PuTTY op deze manier wel doorgegeven wordt naar de uiteindelijke linux bak. Kan ik dat controleren? Of alsnog X-forwarding opzetten?
Als je DISPLAY localhost:10.0 is gaat het door de SSH-tunnel.

Als ik het goed begrijp zit je in een bedrijfsnetwerk, en zit er tussen dat netwerk en het internet een SSH-gateway?

Ik heb eerlijk gezegd geen flauw idee hoe zo'n gateway werkt, maar ik kan me voorstellen dat het gewoon een SSH verbinding is naar de gateway, en dat je dan een soort scriptje krijgt wat een verbinding naar buiten maakt.

Ik kan het niet helemaal simuleren hier, aangezien ik maar 2 machines heb die ssh met X forwarding ondersteunen, maar als ik een paar keer heen en weer SSH krijg ik wel elke keer een hogere $DISPLAY (10.0, 11.0), dus dat zou betekenen dat de X data ook ALLE tunnels doorgaat. Dat zou betekenen dat het wel KAN, en hangt het alleen af van de configuratie van de gateway. Als er ergens in de keten van tunnels een host is die geen X forwarding ondersteunt gaat het niet werken, en het lijkt erop dat jouw gateway dat niet doet.

Het zou kunnen dat de verbinding die de GW lanceert met de ssh server geen X forwarding doet, ook al zou hij het misschien wel KUNNEN doen.

Komt erop neer dat jij met deze config nooit kunt X forwarden naar buiten, dus ga maar aan de beheerder vragen of ie er wat aan wil/kan doen

It sounds like it could be either bad hardware or software


Verwijderd

Topicstarter
smokalot schreef op 08 januari 2004 @ 12:22:
[...]

Als je DISPLAY localhost:10.0 is gaat het door de SSH-tunnel.

Als ik het goed begrijp zit je in een bedrijfsnetwerk, en zit er tussen dat netwerk en het internet een SSH-gateway?

Ik heb eerlijk gezegd geen flauw idee hoe zo'n gateway werkt, maar ik kan me voorstellen dat het gewoon een SSH verbinding is naar de gateway, en dat je dan een soort scriptje krijgt wat een verbinding naar buiten maakt.

Ik kan het niet helemaal simuleren hier, aangezien ik maar 2 machines heb die ssh met X forwarding ondersteunen, maar als ik een paar keer heen en weer SSH krijg ik wel elke keer een hogere $DISPLAY (10.0, 11.0), dus dat zou betekenen dat de X data ook ALLE tunnels doorgaat. Dat zou betekenen dat het wel KAN, en hangt het alleen af van de configuratie van de gateway. Als er ergens in de keten van tunnels een host is die geen X forwarding ondersteunt gaat het niet werken, en het lijkt erop dat jouw gateway dat niet doet.

Het zou kunnen dat de verbinding die de GW lanceert met de ssh server geen X forwarding doet, ook al zou hij het misschien wel KUNNEN doen.

Komt erop neer dat jij met deze config nooit kunt X forwarden naar buiten, dus ga maar aan de beheerder vragen of ie er wat aan wil/kan doen
Zo ver ik nu kan overzien, moet het wel de SSH GW zijn. Blijkbaar wordt x-forwarding niet door de gehele tunnel ondersteund. Ik ga proberen om de SSH GW aangepast te krijgen.

Ik laat je weten of ik verder kom.

Nogmaals dank voor je hulp.
Pagina: 1