Autossh package für freetz

B

boba23

Guest
Hey,

hab schon vor einigen Wochen autossh in mein freetz image integriert.
War aber eher ein dirty hack. Ich hänge mal mein Paket als tar.gz an, inkl. integration in menuconfig und kleinem Patch der autossh.c, wo ein #define VER fehlte um sauber durchzukompilieren.
Falls Interesse besteht kann man autossh ja evtl. offiziell in den Trunk integrieren.
Bei mir läuft es problemlos mit dem openssh client, sollte aber auch mit dropbear funktionieren.

Funktionsbeschreibung:

Autossh ist Tool zum Starten und gleichzeitig dauerhaftem Überwachen von SSH Client Verbindungen. Sollte eine SSH Verbindung, die mit Autossh gestartet wurde abbrechen, startet Autossh die Verbindung automatisch neu. Die Idee stammt von rstunnel (Reliable SSH Tunnel), wurde jedoch in C implementiert.

boba
 

Anhänge

  • autossh.tar.gz
    1.1 KB · Aufrufe: 18
Zuletzt bearbeitet von einem Moderator:
Ich hatte mich bemüht die autossh-Webseite, Wikipedia, Readme-Datei usw. zu studieren, um herauszufinden, wofür das Ding denn nützlich sein könnte. Leider bin ich immer noch nicht schlau geworden und meine immer noch, dass man die angebotenen Features auch mit den Hausmitteln realisieren könnte:
1. Eine zweite Instanz kann man immer starten, egal ob openssh oder dropbear. Man beachte die Parameter, dass die Ports nicht kollidieren.
2. Durch ar7 und co kann man die Weiterleitungen so einrichten, dass man von mehreren Ports auf z.B. 22 geleitet wird
3. Durch Startparameter von dropbear oder allerwenigstens vor dem Kompilieren kann man sein Loginverhalten (Fehlversuche/Timeout) in gewissen Grenzen konfigurieren. Vermutlich geht sowas auch bei OpenSSH.

Deswegen stellt sich die Frage: Wofür könnte denn autossh gut sein? Kannst du in 2-3 Sätzen uns dafür begeistern?

MfG
 
Hi Herrmann,

sorry, für die etwas mangelhafte bzw. nicht vorhandene Erklärung meinerseits.
Ich bin davon ausgegangen, dass die autossh website aussagekräftig genug ist.
Ich weiss nicht so recht welchen Anwendungsfall du mit "mehrere" Ports auf 22 umleiten meinst.
Mir geht es darum, und ich denk der ein oder andere würde das auch nutzen, auf der Fritz im Hintergrund gestartete ssh clients, die NUR dem port forwarding von der Fritz aus zu einem remote SSH server dienen, zu monitoren, und bei bedarf zu restarten.

Beispiel:

Ich hab auf ner Linux Kiste irgendwo im Netz einen Squid Proxy auf Port 4711 laufen.
Da ich den exklusiv nutze, möchte ich sicher dorthin von meinen Proxy clients (Browser etc.) hin connecten.
Dazu setze ich auf der Fritz (meinem Router) eine ssh client verbindung zu dieser Linux Büchse auf, die mit der Option -L 40001:localhost:4711 ein ssh port forwarding von der Fritz zu der Linux Maschine aufbaut.
Dadurch kann ich auf meinen Clients hinter der Fritz den Proxy fritz.box:40001 nutzen und komme darüber über einen sicheren SSH Tunnel zu dem Squid Proxy.

Das ssh Port Forwarding läßt sich natürlich für zig andere Anwendungsfälle nutzen, und im Normalfall brauch ich dazu nur eine im Hintergrund laufende Verbindung, die halt auch ma "stirbt" und dann durch autossh automatisch neu gestartet wird, vorausgesetzt, man hat priv/pub Key Authentication ohne Passphrase konfiguriert für die SSH Verbindung und muss so kein Passwort eingeben beim Reconnect.

Ich wüßte nicht, wie ich das ähnlich zuverlässig mit Freetz Boardmitteln realisieren kann.

Davon abgesehen sehe ich auch keinerlei Schaden durch Autossh in Freetz, der Platzbedarf hält sich auch sehr in Grenzen, und es ist ja auch aus/ab- wählbar. ca. 32KByte.

boba
 
3. Durch Startparameter von dropbear oder allerwenigstens vor dem Kompilieren kann man sein Loginverhalten (Fehlversuche/Timeout) in gewissen Grenzen konfigurieren. Vermutlich geht sowas auch bei OpenSSH.
MfG

Konkret dazu meinst du wohl die Timeout Settings:

-K timeout_seconds
Ensure that traffic is transmitted at a certain interval in seconds. This is useful for working around firewalls or routers that drop connections after a certain period of inactivity. The trade-off is that a session may be closed if there is a temporary lapse of network connectivity. A setting if 0 disables keepalives.

Nun gut ... aber was machst du wenn dein konfigurierter Timeout von sagen wir 30 Minuten abgelaufen ist (Remote Kiste ist down aufgrund Stromausfall, oder sonst was). Dann bleibt dir nur deine SSH Verbindungen manuell neu zu starten.
Davon abgesehen, werden damit auch keine echten "Disconnects" abgefangen, wenn deine SSH Verbindung einma wirklich abgebrochen ist, dann wird Dropbear und auch Openssh nicht automatisch wieder reconnecten.

Autossh wird weiter versuchen die Verbindung neu aufzubauen. Daher auch der Name "Auto" ;-)

boba
 
Es ist eher ein Mißverständnis. Autossh scheint nur mit dem SSH-Client zu tun zu haben, Hermanns Fragen sehen eher aus, als hätte er an einen SSH-Server gedacht.

Wenn ich es richtig verstanden habe, entspricht es ungefähr Folgendem:
Code:
while true; do
    ssh $@
done
Mir ist auch klar, daß es nicht ganz das Gleiche ist.
 
[Edit frank_m24: Sinnfreies Vollzitat vom Beitrag direkt darüber gelöscht, siehe Forumregeln.]

Ja ich glaubte auch, dass er etwas anderes meinte ... aber ich denke mein Beispiel oben macht doch den Anwendungsfall relativ deutlich, oder?

boba
 
@boba23: Die Erklärung hatte gefehlt. Jetzt weiß ich bescheid. Ich war wirklich auf dem falschen Tripp und dachte an den Server. D.h. das Ding kann client-Verbindungen verwalten.
Klar, spricht nichts dagegen, es in FREETZ einzupflegen, wenn es denn läuft. Aber bitte in HELP-Sektion, auf WIKI-Seite über Pakete und hier durchs Editieren von ersten Beitrag falls noch nicht geschenen mit 2-3 Sätzen beschreiben: "SSH-Klient-Verwalter zur Verwaltung und Aufrechterhaltung mehrerer SSH-Verbindungen / Tunnels zu fremden SSH-Servern" (oder irgendwie ähnlich).
Dann kommen solche blöden Anfragen wie meine nicht zu Stande. Jetzt, wo ich aufgeklärt bin, überlege ich mir gerade, für was ich denn sowas nutzen könnte. Und da schweben mir schon Paar Ideen vor.

Die offene Frage für mich ist nur, hat den dropbear auch einen Klient an Board, oder geht es momentan nur mit OpenSSH?

MfG
 
dropbear wird ja als multibinarie gebaut und der ssh client ist dabei.

autossh sollte also mit OpenSSH/Dropbear-ssh-client problemlos klarkommen
 
Ich weiß nicht, ob es ein Nebeneffekt davon ist, dass ich mehrere -L-Optionen habe und es noch nie vorgekommen ist, dass alle Server, zu denen ich forwarde, gleichzeitig down waren, aber bei mir hat sich dropbear noch nie terminiert, sodass ich auch nichts neustarten muss (wird beim Booten aus rc.custom gestartet).
 
[Edit frank_m24: Mehrere Beiträge zusammengefasst. Man kann seine Beiträge auch editieren.]
Naja er13, es liegt ja nicht immer in deiner Hand, ob ne Verbindung ma abraucht. Was ist wenn deine Internetleitung ma ne Stunde weg ist? Oder sonstige höhere Gewalteinwirkung ?
Also dass deine Dropbear Verbindungen bis ans Ende aller Tage stabil durchlaufen, halte ich für ein Gerücht ;-)

boba

[Beitrag 2:]
@hermann

Klar, die Help im menuconfig kann ich noch editieren, das erste Post auch. Und im Wiki würd ich aber erst was ändern wenn's auch wirkich drin ist, oder?
Kannst mich gern pm'en zur weiteren Vorgehensweise ...

boba
 
autossh-Paket angepasst an trunk (siehe Patch im Anhang).
 

Anhänge

  • autossh_060211.patch.txt
    3.7 KB · Aufrufe: 15
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.