Ich hab einen Server hinter einem NAT router stehen, der normalerweise durch einen port forward erreichbar ist. Nun ist durch Umstände der Portforward kaputt gewesen und ich konnte nicht mehr auf den Server zugreifen. Nun hatte ich mir überlegt, dass für solche Zwecke wohl ein ssh remote port forward ganz sinnvoll wäre, um im Notfall eben doch noch auf die Maschine zu kommen - einen Server der gut Verfügbar ist wäre ja vorhanden, den könnte man dafür verwenden.
Nun ist aber so ein Portforward auch nicht immer ganz stabil - abhilfe schaffen wohl tools wie autossh oder sidedoor. Jetzt hab ich auch von wireguard-dkms gehört, das ein einfaches VPN sein soll, leider derzeit nur in sid vorhanden. Hab allerdings auch mit dem Tool keine Erfahrungen und die Website sagt "You should not rely on this code"...
Gibt es irgendein Tool, welches für solche Zwecke gut geeignet ist? Was sind eure Erfahrungen mit den Tools?
Dauerhafter SSH Tunnel / Wireguard / etc?
Re: Dauerhafter SSH Tunnel / Wireguard / etc?
Dauerhaft würde ich das nicht machen. Vielleicht per Cron alle 10 Minuten nach einem HTTP-Objekt suchen. Bei Bedarf Webseite erstellen, max. 10 min warten und Remote-Tunnel startet automatisch.
Re: Dauerhafter SSH Tunnel / Wireguard / etc?
Aus Sicherheitsgründen? Oder weil der Tunnel einfach instabil sein kann? Ich hatte mal einen ssh tunnel am laufen und das hat nie so wirklich funktioniert...
Die Idee ist gut, ich glaube ich werde das so machen!
Die Idee ist gut, ich glaube ich werde das so machen!
Re: Dauerhafter SSH Tunnel / Wireguard / etc?
Was soll daran instabil sein? Du musst nur die timeouts runter setzen damit sich ssh schnell beendet wenn die Verbindung stirbt oder nicht aufgebaut werden kann und den Prozess neu starten lassen. Mit systemd geht sowas recht schön auch ohne zusätzliche Tools:Aus Sicherheitsgründen? Oder weil der Tunnel einfach instabil sein kann? Ich hatte mal einen ssh tunnel am laufen und das hat nie so wirklich funktioniert...
Code: Alles auswählen
[Unit]
Description=ssh tunnel
After=network.target
[Service]
User=someuser
Group=somegroup
ExecStart=/usr/bin/ssh -i pfadzumkey -o ExitOnForwardFailure=yes -o LogLevel=VERBOSE -o ServerAliveCountMax=5 -o ServerAliveInterval=2 -o ConnectTimeout=10 <tunneldinge> user@host
Restart=always
RestartSec=15s
StartLimitBurst=10
StartLimitInterval=10
[Install]
WantedBy=multi-user.target
Es gibt genug VPN Software (z.B. openvpn) welche kein eigenes Kernel Modul benötigt und gut abgehangen ist…Jetzt hab ich auch von Debianwireguard-dkms gehört, das ein einfaches VPN sein soll, leider derzeit nur in sid vorhanden. Hab allerdings auch mit dem Tool keine Erfahrungen und die Website sagt "You should not rely on this code"...
Unix is user-friendly; it's just picky about who its friends are.
Re: Dauerhafter SSH Tunnel / Wireguard / etc?
Warum eine VPN-Software? SSH bringt doch alles mit. Lese [1] und kehr den Weg einfach um. Geht bestimmt. Statt wie beschrieben sshuttle (nur SOCKS) kannst du vielleicht auch nur SSH nutzen wie z.B. die Option "-w local_tun[:remote_tun]" . Wie geschrieben würde ich diesen Not-Tunnel nicht durchgängig offen halten.
[1] http://www.linux-community.de/Internal/ ... d-Sshuttle
[1] http://www.linux-community.de/Internal/ ... d-Sshuttle
Re: Dauerhafter SSH Tunnel / Wireguard / etc?
VPN ist mir eigentlich zu viel, wireguard schaut ja vom konfigurationsaufwand her sehr einfach aus, aber scheint ja noch in entwicklung zu sein.
Es reicht ja wenn die Maschine irgendwie über ssh erreichbar ist - zur not kann man ja über ssh auch noch was tunneln. sshuttle kenne ich, aber einen socks proxy brauche ich auch eher nicht. Wie gesagt ein `ssh -R 12345:localhost:22 user@immererreichbarekiste` reicht vollkommen aus.
Wegen stabilität: Ich hatte mal vor ewigen Zeiten einen SSH Tunnel von einem Rechner der hinter NAT war. Das hat so überhaupt nicht hingehauen. Der tunnel ist alle paar minuten weg gewesen. Ja vermutlich hätte man die timeouts besser setzen müssen.
Gibt es nicht sogar ein programm das es erlaub ssh sessions wiederaufzunehmen, falls die mal kaputt geht (und sogar wenn sich die Verbindung ändert?)
Es reicht ja wenn die Maschine irgendwie über ssh erreichbar ist - zur not kann man ja über ssh auch noch was tunneln. sshuttle kenne ich, aber einen socks proxy brauche ich auch eher nicht. Wie gesagt ein `ssh -R 12345:localhost:22 user@immererreichbarekiste` reicht vollkommen aus.
Wegen stabilität: Ich hatte mal vor ewigen Zeiten einen SSH Tunnel von einem Rechner der hinter NAT war. Das hat so überhaupt nicht hingehauen. Der tunnel ist alle paar minuten weg gewesen. Ja vermutlich hätte man die timeouts besser setzen müssen.
Gibt es nicht sogar ein programm das es erlaub ssh sessions wiederaufzunehmen, falls die mal kaputt geht (und sogar wenn sich die Verbindung ändert?)
Re: Dauerhafter SSH Tunnel / Wireguard / etc?
Es geht nur um einen Notfall-Weg. Standardmäßig nutzt du Forwarding in das Netzwerk.
Falls du die "immererreichbarekiste" administrieren darfst, dann mach es doch ganz einfach:
Standardmäßig horcht der zugehörige SSH-Server auf z.B. 22. Dein SSH-Client im geNATteten Netz versucht nun einfach z.B. alle 10 Minuten sich mit einen SSH-Server auf Port 2222 zu verbinden.
Das geht natürlich in die Hose. Prüfe, dass das nicht zu viel Overhead erzeugt.
Wenn du nun die Verbindung wirklich brauchst, aktivierst du einfach auf "immererreichbarekiste" den SSH-Server zusätzlich auf Port 2222. Teste den Fall, damit die Verbindung nicht versehentlich mehrfach aufgebaut wird.
Falls du es als Standard-Weg verwenden willst, versuche sowas wie Respawn mit Systemd abzubilden siehe weiter oben. Vielleicht läuft das ja zuverlässig.
Falls du die "immererreichbarekiste" administrieren darfst, dann mach es doch ganz einfach:
Standardmäßig horcht der zugehörige SSH-Server auf z.B. 22. Dein SSH-Client im geNATteten Netz versucht nun einfach z.B. alle 10 Minuten sich mit einen SSH-Server auf Port 2222 zu verbinden.
Code: Alles auswählen
ssh -R 12345:localhost:2222 user@immererreichbarekiste
Wenn du nun die Verbindung wirklich brauchst, aktivierst du einfach auf "immererreichbarekiste" den SSH-Server zusätzlich auf Port 2222. Teste den Fall, damit die Verbindung nicht versehentlich mehrfach aufgebaut wird.
Falls du es als Standard-Weg verwenden willst, versuche sowas wie Respawn mit Systemd abzubilden siehe weiter oben. Vielleicht läuft das ja zuverlässig.