Toon posts:

[LINUX/SSH/?] SSH-tunnel actief houden op virtual server

Pagina: 1
Acties:

Verwijderd

Topicstarter
Situatie: we hebben een virtuele server-account bij Widexs. We willen graag een SSH-tunnel opzetten vanaf die virtuele server naar een server op kantoor, achter een firewall. Tot nu toe geen probleem, en handmatig gaat het goed:
code:
1
ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL

Er hoeft geen wachtwoord gegeven te worden omdat ik al een key aangemaakt heb.

MAAR op deze manier kan ik niet uitloggen (dan vervalt de tunnel) en daarnaast blijft de tunnel niet lange tijd actief als er geen verkeer over gaat.

Dus volgende idee werd het gebruik van screen:
code:
1
2
screen
ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL -f top &

Dan detach door CTRL-A D. Nu kan ik gewoon uitloggen en de tunnel blijft actief dankzij screen en de toevoeging "top", waardoor er verkeer blijft bestaan.

MAAR de servers van Widexs worden gemiddeld 1x per 3-4 maanden gereset, dan is de tunnel dus weer weg!! Met PHP kom ik ook niet ver, want die draait in safe-mode.

Iemand een aanwijzing hoe ik een mooie oplossing heb om de tunnel actief te houden, ook na reset?

  • im_ik
  • Registratie: November 2000
  • Laatst online: 28-12-2025

im_ik

dat ben ik dus

code:
1
screen -S tunnel -d -m ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL

en dan dit automatisch laten uitvoeren waarneer de machine boot

[ Voor 5% gewijzigd door im_ik op 08-04-2004 12:50 ]

Atari Terminator AI - LegoBlockX3 = ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T008ᖟ


Verwijderd

Topicstarter
Daar zit nou net een probleem: ik weet niet hoe ik op die virtuele server iets kan laten uitvoeren bij boot. Bijvoorbeeld elke minuut een scriptje via een cron misschien, maar dat vind ik niet bepaald elegant...

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

In de meeste *nix based OS'en kun je, mits je voldoende rechten hebt gewoon iets toevoegen in de directory
/etc/rc.d
Welk OS draait er op je server? Waarschijnlijk zou het wel het netste zijn om deze de verbinding te laten initieeren bij een reboot :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Anders even 'crontab -e' uitvoeren en neerzetten:

@reboot <ssh commando met parameters>

Verwijderd

Topicstarter
im_ik schreef op 08 april 2004 @ 12:50:
code:
1
screen -S tunnel -d -m ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL

en dan dit automatisch laten uitvoeren waarneer de machine boot
Dat is een mooie, zoiets zocht ik! Werkt ook prima op de command line, maar in de crontab niet :(

Zo ziet mijn crontab file er nu uit (geedit met crontab -e):
code:
1
5 * * * * screen -S tunnel -d -m ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL


Ik kan ook niet zien wat er fout gaat...

[ Voor 7% gewijzigd door Verwijderd op 14-04-2004 18:55 ]


Verwijderd

Topicstarter
Verwijderd schreef op 08 april 2004 @ 18:28:
Anders even 'crontab -e' uitvoeren en neerzetten:

@reboot <ssh commando met parameters>
ooh ooh, werkt dat? nice! Nu alleen nog even uitvinden waarom die regel in mijn crontab het niet doet...

Verwijderd

Topicstarter
Spider.007 schreef op 08 april 2004 @ 13:39:
Welk OS draait er op je server?
uname -a geeft:

code:
1
Linux SERVER.widexs.nl 2.4.25-wdx #1 SMP Thu Feb 19 10:42:23 MET 2004 i686 unknown


uname -- version geeft:

code:
1
2
3
4
5
6
uname (GNU sh-utils) 2.0
Written by David MacKenzie.

Copyright (C) 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Wordt je hier wijzer van?

;) naar blaataap

[ Voor 71% gewijzigd door Verwijderd op 14-04-2004 17:49 ]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Ik zou je bij deze willen wijzen op de Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/silver/images/icons/edit.gif-knop om je bericht te veranderen, zodat je niet steeds een nieuw berichtje onder een van jezelf te zetten, en je tegelijk willen verzoeken dat niet meer te doen dus :)
Tevens is het weten en uitvinden welk OS je nou eigenlijk mee bezig bent basiskennis lijkt mij, daar is op internet ook genoeg over te vinden denk ik.

[ Voor 21% gewijzigd door blaataaps op 14-04-2004 17:41 ]


  • Mark
  • Registratie: Juni 1999
  • Laatst online: 20:11
Verwijderd schreef op 14 april 2004 @ 17:09:
[...]
Zo ziet mijn crontab file er nu uit (geedit met crontab -e):
code:
1
5 * * * * screen -S tunnel -d -m ssh -t -L 1025:192.168.2.222:80 coen@een-ip-adres
Geef eens het volledige path op naar screen en ssh (dus volledig /usr/bin/screen oid)

[ Voor 4% gewijzigd door Mark op 14-04-2004 19:09 ]


Verwijderd

code:
1
5 * * * * screen -S tunnel -d -m ssh -t -L 1025:192.168.2.222:80 coen@coen-ip-addr


En, loopt 'ie nou ieder uur om 5 over?

[ Voor 12% gewijzigd door Verwijderd op 14-04-2004 19:47 . Reden: oké coen ;) ]


Verwijderd

Topicstarter
Verwijderd schreef op 14 april 2004 @ 18:48:

En, loopt 'ie nou ieder uur om 5 over?
Yup!! Het werkt, echt cool! Enige probleem is dat er nu 5x screen open staat en 5x die tunnel:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ps aux
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
LOGINUSER  11763  0.0  0.0  2088  516 ?        S    19:05   0:00 /usr/bin/SCREEN -S tunnel -d -m /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER  11764  0.0  0.1  2884 1076 pts/0    S    19:05   0:00 /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER  8283  0.0  0.0  2084  516 ?        S    20:04   0:00 /usr/bin/SCREEN -S tunnel -d -m /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER   8284  0.0  0.0  2848  756 pts/1    S    20:04   0:00 /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER   3950  0.0  0.0  2084  520 ?        S    21:05   0:00 /usr/bin/SCREEN -S tunnel -d -m /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER   3952  0.0  0.0  2852  768 pts/2    S    21:05   0:00 /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER   2346  0.0  0.0  2084  520 ?        S    22:05   0:00 /usr/bin/SCREEN -S tunnel -d -m /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER   2347  0.0  0.0  2848  768 pts/4    S    22:05   0:00 /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER  30040  0.0  0.0  2084  940 ?        S    23:05   0:00 /usr/bin/SCREEN -S tunnel -d -m /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER  30041  0.0  0.1  2848 1528 pts/3    S    23:05   0:00 /opt/software/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
LOGINUSER   1952  0.0  0.1  5592 1508 ?        S    23:18   0:00 sshd: LOGINUSER@pts/5
LOGINUSER   1953  0.0  0.1  1964 1160 pts/5    S    23:18   0:00 -bash
LOGINUSER  3767  0.0  0.0  2316  696 pts/5    R    23:22   0:00 ps aux

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 20:11
Verwijderd schreef op 14 april 2004 @ 23:28:
[...]
Yup!! Het werkt, echt cool! Enige probleem is dat er nu 5x screen open staat en 5x die tunnel:
Gooi het hele commando in een scriptje welke vantevoren de oude verbinding afschiet, anders heb je over 24 uur ook 24 connecties open, dat zal je hoster niet leuk gaan vinden.

Verwijderd

Mark schreef op 15 april 2004 @ 00:21:
[...]

Gooi het hele commando in een scriptje welke vantevoren de oude verbinding afschiet, anders heb je over 24 uur ook 24 connecties open, dat zal je hoster niet leuk gaan vinden.
En de @reboot optie?

Als je nu eenmalig een connectie open zet en dan de @reboot optie insteld?

  • Tha_Butcha
  • Registratie: November 2000
  • Laatst online: 30-01 13:59
en als die reboot actie niet werkt, dan kan je toch gewoon een scriptje bouwen dat checkt of er een tunnel is, zo ja: nix doen; zo nee: nieuwe tunnel bouwen. en dat scriptje aanroepen in cron.

Of roep ik nou iets heel geks?

Compromises are for the weak


Verwijderd

Tha_Butcha schreef op 15 april 2004 @ 11:46:
en als die reboot actie niet werkt, dan kan je toch gewoon een scriptje bouwen dat checkt of er een tunnel is, zo ja: nix doen; zo nee: nieuwe tunnel bouwen. en dat scriptje aanroepen in cron.

Of roep ik nou iets heel geks?
Dat zou denk ik nog beter zijn.

Want wat als de server aan de andere kant een keer reboot?
Het kan ook op allebei de servers zo zijn dat deze niet rebooten, maar dat de connectie om de een of andere reden wegvalt (al is het maar 1 minuut).

Dan is die connectie ook weg en heeft de @reboot ook geen zin.. ;)

[ Voor 14% gewijzigd door Verwijderd op 15-04-2004 11:57 ]


Verwijderd

Topicstarter
Tha_Butcha schreef op 15 april 2004 @ 11:46:
en als die reboot actie niet werkt, dan kan je toch gewoon een scriptje bouwen dat checkt of er een tunnel is, zo ja: nix doen; zo nee: nieuwe tunnel bouwen. en dat scriptje aanroepen in cron.

Of roep ik nou iets heel geks?
Het lijkt nu allemaal mooi te werken, even wachten op een reboot:

crontab:
code:
1
2
0 * * * * /bin/sh /opt/guide/www.domeinnaam.nl/HTML/test.sh
@reboot /bin/sh /opt/guide/www.domeinnaam.nl/HTML/test.sh


test.sh:
code:
1
2
3
4
5
6
7
if [ -z `/sbin/pidof -s /usr/local/bin/ssh` ]
then
        # set up tunnel
        /usr/bin/screen -S tunnel -d -m /usr/local/bin/ssh -t -L FORWARDPORT:IPLOCALSERVER:PORT USER@IPFIREWALL
#else
        # tunnel is active
fi

[ Voor 40% gewijzigd door Verwijderd op 16-04-2004 15:14 ]


Verwijderd

Topicstarter
nu alleen nog zorgen dat die andere server niet omvalt ;)

  • jvhaarst
  • Registratie: Maart 2000
  • Laatst online: 08-02 23:13

jvhaarst

Eendracht maakt macht

Misschien een stomme opmerking, maar waarom laat je die tunnel niet opbaouwen door de server in jullie netwerk ?
Daar heb je vast meer controle over, dan over de bak bij de hoster.
En je kunt hem dan ook opbouwen en afbreken op het moment dat je hem nodig hebt, ipv dat er altijd een verbinding open staat.

If you don’t have enough time, stop watching TV.


Verwijderd

Topicstarter
jvhaarst schreef op 16 april 2004 @ 16:17:
Misschien een stomme opmerking, maar waarom laat je die tunnel niet opbaouwen door de server in jullie netwerk ?
Daar heb je vast meer controle over, dan over de bak bij de hoster.
En je kunt hem dan ook opbouwen en afbreken op het moment dat je hem nodig hebt, ipv dat er altijd een verbinding open staat.
Omdat het verkeer altijd geïnitieerd wordt vanaf de webserver. Daarnaast heb ik alleen toegang tot de server achter de firewall en dat is een Windows-bak. Ik heb meer vertrouwen in de Linux webserver ;)
Pagina: 1