PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bei ssh-servern Port offenhalten



Hamu72
25.06.12, 09:03
Ich habe folgendes Problem und suche eine elegante Lösung:

Bei unseren Kunden laufen insgesamt über 100 Geräte mit Debian Linux ( vorwiegend Etch und Lenny). Da die Lokalitäten der Geräte über ganz NRW verteilt sind, haben wir für die Wartung SSH-Zugriff. Bei der Installation vor Ort wird eine Port-Weiterleitung eingerichtet. Soweit klappt das sehr gut.

Es kommt aber auch mal vor (glücklicher Weise selten), dass die Kunden ihre Passwörter für den Router nicht mehr Wissen, und die Zugangsdaten natürlich auch verbummeln, so dass ein Reset nicht möglich ist.
Bei einem dieser Kunden wird bald der Router aufgeben, wie es aussieht. Ohne Zugangsdaten und Passwort ist da Internetmäßig der Ofen aus...

Naja, um bei solchen Kunden eine Fernwartung nutzen zu können, müssten sich diese Rechner, die ja als ssh-Server fungieren, irgendwie per ssh daheim melden. Also einen ssh-Tunnel öffnen, den ich bei Bedarf nutzen kann, um mich auf ihnen einzuloggen.

So wie ich es bisher sehe, müsste jeder dieser Rechner einen SSH Tunnel mit einer individuellen Port-Nummer aufbauen. Mein Rechner soll aber nicht mit andauernden Anfragen bombadiert werden und soll auch nicht ununterbrochen eine Anzahl SSH-Tunnel aufrechterhalten.

Besteht also die einzige Lösung darin, einen zusätzlichen Rechner aufzustellen oder im I-Net zu mieten, an den sich all diese Rechner per SSH anmelden und mit dem ich mich wiederum bei bedarf mit dem entsprechenden Port verbinde um einen Zugriff auf das entsprechende System zu erhalten?

Oder wäre es sinnvoller, den Remote-Rechnern auf irgendeine Weise einen Befehl zukommen zu lassen, jetzt eine SSH Verbindung zu mir aufzubauen?
Und wie stelle ich das an? Regelmäßig per CRONjob auf einem Webserver nach einer Datei fragen z.b., die einem bestimmten Rechner den Befehl gibt?
Wie geht das elegant und praktisch?

Es geht im Grunde um eine Art Reverse-SSH wie es in diesem Thread angesprochen wird: http://www.linuxforen.de/forums/showthread.php?t=206299&highlight=reverse+ssh

Nur dass am anderen Ende keine Person sitzt, die den Befehl ausführt, sondern er nach Bedarf ausgeführt wird.

muell200
25.06.12, 10:30
willkommen im forum...



Es kommt aber auch mal vor (glücklicher Weise selten), dass die Kunden ihre Passwörter für den Router nicht mehr Wissen, und die Zugangsdaten natürlich auch verbummeln, so dass ein Reset nicht möglich ist.


da hilft ein passwort verwaltungsprogramm :)




Oder wäre es sinnvoller, den Remote-Rechnern auf irgendeine Weise einen Befehl zukommen zu lassen, jetzt eine SSH Verbindung zu mir aufzubauen?


waere da nicht eine vpn die bessere und sichere loesung?
per ssh kenne ich keine "vernueftige" loesung...

Hamu72
25.06.12, 11:12
da hilft ein passwort verwaltungsprogramm :)


Mir braucht man das nicht sagen... ;)
Es würde ja schon reichen, wenn die Verwaltung dieser Firmen ihre vom Provider zugeschickten Einwahldaten abheften würden. :rolleyes:



waere da nicht eine vpn die bessere und sichere loesung?
per ssh kenne ich keine "vernueftige" loesung...


Danke für den Vorschlag.
Mit VPN kenne ich mich widerum nicht aus. Ich dachte, ssh wäre schon eine sichere Lösung.

Unsere Remote-Rechner arbeiten auch sehr minimalistisch. Es wird nur ein Xserver gestartet, der wiederum nur einen Browser öffnet, um eine Webseite anzuzeigen. So eine Digital Signage Geschichte.
Es bedient an diesem Gerät niemand etwas vor Ort per Tastatur o.Ä.
Sie dienen rein zur Anzeige von Informationen für den Endkunden.

In wiefern wäre VPN eine bessere Lösung als ssh?
Funktioniert VPN auch rein Konsolengesteuert? Bekannt ist mir das nur als grafische Lösung unter Windows.
Bleibt bei VPN nicht das Problem der Reverse-Steuerung?

Ich möchte per Fernwartung auf den Remote-Geräten nur ungern wild heruminstallieren. Falls etwas schiefgeht muss ich erstens wieder vor Ort fixen und zweitens sollte der Kunde und der Endkunde keine Störungen auf der Anzeige erleben (Fehlermeldungen, neustarts usw.)
SSH ist schon installiert, eine VPN-Lösung meines Wissens nach noch nicht.

nopes
25.06.12, 21:43
...
Bei einem dieser Kunden wird bald der Router aufgeben, wie es aussieht. Ohne Zugangsdaten und Passwort ist da Internetmäßig der Ofen aus...

Naja, um bei solchen Kunden eine Fernwartung nutzen zu können, müssten sich diese Rechner, die ja als ssh-Server fungieren, irgendwie per ssh daheim melden. Also einen ssh-Tunnel öffnen, den ich bei Bedarf nutzen kann, um mich auf ihnen einzuloggen...


Also wenn ich das richtig verstehe, schmeißen die ihren jetzigen Route weg und stellen einen neuen hin? Wenn dem so ist, sehe ich keine realistische Variante da Störungsfrei von außen dran zu kommen, da dazu was auf dem Route eingestellt werden müsste. Was man nicht von jedem Kunden erwarten kann, bzw. man kann, es wird aber nicht jeder schaffen ;)

Also ja, du brauchst was dauerhaftes im Inet, dann kannst du auf den Clients was basteln, was das rssh realisiert. Ob die Verbindung dauerhaft sein sollte hängt von der gewünschten Reaktionszeit ab:

Unmittelbar, dann brauchst du was dauerhaftest, die entfernten bzw. Kundenrechner stellen eine Sitzung her und müssen regelmäßig prüfen, ob diese noch vorhanden ist, wenn nicht eine neue aufbauen.
Ist eine Verzögerung hinnehmbar, dann wäre es auch denkbar, dass die entfernten bzw. Kundenrechner regelmäßig eine Datei prüfen, z.B. mit scp wget oder sowas und nur bei bedarf das rssh starten, allerdings dauert es dann immer bis man drauf kann.


Ich würde zu dauerhaft tendieren, da man es einfacher überwachen kann und es auch nicht so viele Fehlerquellen gibt. Eleganter ist aber die aber die zweite Variante, da man hier relativ einfach ports und rhost dynamisch machen kann, könnte ja alles in der zu prüfenden Datei stehen, die Lösung macht es möglich Service-Sitzungen direkt auf seine Rechner zu schalten, so dass man nicht ssh in ssh machen muss.

VPN sehe ich hier nicht als Vorteil, es macht meiner Meinung nach nur sinn, wenn eins da ist, wenn nicht ist ssh völlig in Ordnung.

Zu guter letzt, ist das natürlich auch ein gewisses Sicherheitsrisiko, da sowas missbraucht werden kann, erst Recht, wenn kein Anwender sein OK geben brauch. Besser im Sinne der Sicherheit wäre ein aktives anfordern einer Service-Sitzung, so ala XP, da kann man ja einen Bekannten um Hilfe bitten, der Punkt ist, ein Mensch muss es auslösen, alle anderen Varianten sind potentiell gefährlich.

Hamu72
27.06.12, 13:14
Danke für die Antwort(en)

Die Rechner sind Mini-PC, die auf die verschiedensten Weisen bei den Kunden "verbaut" sind. Normal kommt man da nicht einfach so dran. Es sind ausser dem Monitor und evtl. WLAN-Stick keine Geräte angeschlossen.
Ausserdem sind die Leute, die vor Ort etwas eingeben müssten Einzelhandelskaufleute, Lebensmittelfachverkäuferinnen usw.
Die kann ich nicht anweisen, sich eine Tastatur zu schnappen, eventuelle Verkleidungen abzubauen um an einen USB Port zu kommen und dort Linuxbefehle einzugeben :D

Wenn ich per Fernwartung nicht drankomme und das System sich auch durch einen Neustart via Sicherung oder Netzstecker nicht wiederbeleben lässt, muss ich also ohnehin vor Ort fahren und selber nachsehen.

Ich glaube auch, dass die sinnvollste Lösung ist, per Dateiabfrage eine reverse-SSH Connection zu einem externen Server aufzubauen, auf dem ich mich widerum per ssh einlogge um die Verbindung anzunehmen.

Diese Notsituationen passieren sehr selten, aber sie passieren eben. Eine dauerhafte Verbindung wäre da wohl eher Ressourcenverschwendung.
Ausserdem ist die weiterführende Idee mit Anweisungen ja auch sehr gut.

Im Grunde kann man sich in bestimmten Fällen eine Verbinsung ja ganz sparen, indem man einfach einen Befehl in die Datei schreibt, der vom Remote-PC ausgeführt wird, oder gleich ein bash-script. z.B. für einen Reboot.

Da wir webspace mit ssh zugang bei einem Provider (Hetzner) gemietet haben, müsste ich den ja für das reverse-ssh nutzen können.
Hoffentlich gibt es da keine Beschränkungen, die mir da einen Strich durch die Rechnung machen.

Ich probier mal rum. Falls sich dabei Probleme ergeben und ich Hilfe brauche die sich auf das in diesem Thread angesprochene Thema bezieht, würde ich dazu den Thread hier weiter benutzen. Falls das für die Mods ok is.

TheDarkRose
27.06.12, 20:00
Hach, ein Rasberry Pi oder ein andere Mini-Pc würde sich da als Vermittler am besten eignen ^^