SSH Tunnel zum WebIF unserer Träume

  • Das Howto findest ihr jetzt auch im GP-Wiki...


    SSH Tunnel zum Webif erstellen



    Dieses HOWTO beschreibt, wie man einen ssh-Tunnel über einen Gateway auf einen Zielrechner aufbaut, um das WebIF aufzurufen (portforwarding über SSH).
    Somit habt ihr einen Zugang auf eure DreamBox über eine verschlüsselte Verbindung.



    Voraussetzungen:

    • Linux mit installiertem ssh ;). Bei den Redmonder kann auch Putty verwendet werden.
    • Die Url oder IP Adresse eures Router muss bekannt sein (Internetseitig).
    • Port 22 muss auf eure Dreambox weitergeleitet sein (NAT).
    • Die Dreambox braucht ein Passwort.



    Syntax für den Tunnel lautet wie folgt:


    Code
    ssh -L lokalerport:zielrechner:zielport benutzer@gateway


    Der Befehl erstellt nach erfolgreichem login einen verschlüsselten Tunnel. Alle Anfragen an Port Lokalerport auf dem lokalen Rechner, werden nun über den Gateway zum Zielrechner an den Zielport weitergeleitet.



    Kleine Befehlsbeschreibung:

    • Lokaler Port sollte grösser 1024 gewählt werden (unprivilegierte Ports verwenden).
    • Als Zielrechner verwendet ihr die IP-Adresse der DreamBox.
    • Zielport ist 80 für das WebIf der DreamBox.
    • Für den Benutzer könnt ihr root nehmen.
    • Gateway ist die IP oder URL eures Routers.
    • Beim login (nach Eingabe des Befehls) ist das Passwort der DreamBox einzugeben.


    1) Verbindung starten:


    Code
    ssh -L 3000:192.168.1.30:80 root@routerip.dyndns.net



    2) Zugriff über den Tunnel auf das WebIF:

    Code
    http://localhost:3000


    3) Tunnel starten ohne Passworteingabe
    Wenn ihr den Tunnel starten wollt, ohne Passworteingabe könnt ihr folgendem HowTo von johnbock folgen.




    Kleine Tricks

    • Für das Managen der Tunnels unter Linux bietet sich gSTM an
    • Es können auch andere Geräte im Netzwerk erreicht werden z.B. ein NAS mit WebIF. Dann muss für den Zielrechner einfach die IP des NAS eingegeben werden (Zielport muss auch stimmen).
    • Unter Windows (wie auch Linux) kann Putty verwendet werden.
    • Im lokalen Netzwerk könnt ihr den Zugang natürlich auch testen mit (ssh -L 3000:IPderBox:80 root@IPderBox)



    So, nun wünsch ich Euch allen Happy Tunneling 8).
    Die Grenzen sind nahezu grenzenlos.


    Gruss mfg eg

    Hilfe gesucht ? schau mal ins GP WIKI - Kein Support per PN

    Edited 2 times, last by mfgeg ().

  • Kleiner Nachtrag für das Einrichten von SSH.


    1. Tip
    Für mehr Sicherheit ist es zu empfehlen, den Standard Port 22 zu ändern. Den Port der Box kann in der Datei /etc/init.d/dropbear geändert werden. Sucht am Anfang nach Dropbear_Port=?? und ändert diesen. Vergesst aber nicht die nötigen Einstellungen am Router vorzunehmen, bezüglich NAT.


    1.5 Tip
    Nachtrag zu Punkt eins. Es kann natürlich auch der externe Port geändert werden für den ssh Zugriff (welcher anschliessend intern auf 22 geleitet wird). Man muss dann den Port beim Syntax mit -p XXX angeben damit es klappt. Z.B..


    Code
    ssh -p 32456 ....


    2. Tip
    Wählt ein gescheites Passwort!!!. Das Passwort kann mit passwd geändert werden.

    Hilfe gesucht ? schau mal ins GP WIKI - Kein Support per PN

    Edited 3 times, last by mfgeg ().

  • Hallo mfgeg,


    erst einmal danke für das tolle howto.


    Bei einem ersten lokalen Test kann ich mich zwar korrekt über ssh an der Dreambox anmelden, allerdings bleibt im Browser nach Eingabe der url http://localhost:3000 die Seite leer. In der noch geöffneten ssh Konsolenverbindung zu Box steht folgende Fehlermeldung:
    "channel 3: open failed: unknown channel type: "


    Hast du da eventuell noch einen Tipp für mich?


    Gruß
    Chris

  • So ich ergänze das Thema für die vielen Redmonder, damit das Webif mittels putty erreicht werden kann.
    Als Basis beziehe ich mich auf den Syntax vom ersten Post, wie auch auf die Voraussetzungen und deren Tips vom zweiten Post. Zu einigen Punkten hänge ich auch noch ein Screenshot an :D


    Hier nochmals der Syntax mit einem Beispiel...


    Code
    ssh -L lokalerport:zielrechner:zielport benutzer@gateway


    Code
    ssh -L 3000:192.168.1.30:80 root@routerip.dyndns.net


    1) putty starten:


    Unter Hostname schreibt ihr die externe IP oder eure Dyndns Adresse rein. SSH muss vorgewählt sein und der Port (Standard 22).



    2) Tunnel menu öffnen:


    Navigiert auf der linken Seite auf Connection => SSH => Tunnels.



    3) Tunnel definieren:


    Schreibt unter Source Port den lokalen Port (3000) rein.
    Bei Destination kommt die IP der Dreambox plus Zielport (192.168.1.30:80)


    Eingaben mit [add] bestätigen.



    4) Verbindung speichern:


    Navigiert auf der linken Seite auf Sessions. Speichert die Session, somit könnt ihr bei erneutem benutzen von putty nur das entsprechende Profil laden (Name Eintragen und mit [Save] bestätigen).



    5) Verbindung starten:


    Schaltfläche [open] anklicken um die Verbindung zu starten.



    6) Sicherheits - Meldung bestätigen:


    Die Meldung "PuTTy Security alert" mit [yes] bestätigen (Erscheint nur beim ersten einloggen)



    7) Einloggen an der Dreambox:


    Jetzt muss mit Benutzername und Passwort eingeloggt werden. Nach erfolgreichem einloggen erscheint das Prompt der Box.



    8 ) Mit Webbrowser Verbindung herstellen:


    Browser starten und mit folgender URL eine Verbindung zu Box herstellen.


    Code
    http://localhost:3000


    9) Fertig...




    Die Verbindung / Tunnel kann im putty mit exit geschlossen werden..


    Viel Spass, hoffe es klappt :D



    //Edit Bilder entfernt im Wiki findet ihr die Anleitung

    Hilfe gesucht ? schau mal ins GP WIKI - Kein Support per PN

    Edited 2 times, last by mfgeg ().

  • Hi,


    funktioniert bei mir leider auch nicht. Putty bringt eine Fehlermeldung "Network Timed out".
    Ich kann nur mittels WinSCP auf den Server zugreifen oder eben im Homenetz per lokaler Addresse auf das WebIf.

  • fmpeg, magst das kurz in die Wiki schreiben? find ich klasse die Anleitung mit den Screenshots.

    Es heißt auch nicht mehr Troll, sondern Netzbürger mit Frustrationshintergrund.
    <br>
    Leider muß ich es extra schreiben: Kein Support per PM. Privater Support hilft uns nicht weiter als Forum!

  • Quote

    Original von Magma
    Hi,


    funktioniert bei mir leider auch nicht. Putty bringt eine Fehlermeldung "Network Timed out".
    Ich kann nur mittels WinSCP auf den Server zugreifen oder eben im Homenetz per lokaler Addresse auf das WebIf.


    Hmm ich weiss jetzt nicht wie du probiert hast intern, extern. Zu welchem Rechner macht du die ssh Verbindung und zu welchem den Tunnel? Nimmst du immer den Alix3D3 als Server oder brauchst du auch die Dream dazu?


    Muss schon klappen...


    Ich kannst auch intern mit dem ssh Befehl einen Tunnel machen zum Webif.


    Code
    ssh -L 3000:192.168.1.26:80 root@192.168.1.26


    Ist beides mal die IP der Dream für das Webif. Klappt super. Klar du musst den Syntax für putty anpassen.
    Ansonsten musst du einmal deine Angaben posten. Und sicher einmal intern testen, bevor du es von extern machst.

  • Ich hätte zu dem SSH mal eine Frage.
    Es gibt doch im Bluepanel unter Dienste eine Funktion SSH aktivieren.
    Muß dieses auch aktiviert werden?
    Ich wollte mir das SSH mal einrichten.

  • Ja der SSH Dienst (dropbear) muss laufen. Sonst kannst du keine Verbindung darauf machen. Und auch ein Passwort muss definiert sein...

  • mal ein altes Thema herauskramen...


    wie kann ich einen Tunnel machen, wenn ich das WebIF von CCcam aufrufen möchte?

  • Quote
    Code
    http://localhost:3000


    so komm ich doch nur aufs webif der box, aber nicht aufs cccam webif?

  • Nö der Trick ist der vorhergehende Befehl, wo du den Tunnel startest. Den leitest du von einem Port auf einen anderen hin.


    Mit localhost:3000 schlüpfst du nur durch den Tunnel durch. Das funkt aber nur, wenn dein ssh server den Tunnelbau versteht.

    Hilfe gesucht ? schau mal ins GP WIKI - Kein Support per PN

    Edited once, last by mfgeg ().

  • achso, stimmt.
    dh in putty beim Punkt Tunnel statt zB 192.168.1.30:80 --> 192.168.1.30:16001?


    würde sich logisch anhören...

  • Ok, besten Dank für die schnelle Hilfe. Werds probieren und mich melden bei weiteren Fragen.

  • Verstehe ich das richtig, dass Putty immer geöffnet sein muss? Wie kann ich dann WebIf von einem anderen PC erreichen?

  • Hallo zusammen,
    ich frage noch mal deutlicher.
    Putty in der Funktion für einen SSH-Tunnel funktioniert nur, wenn Putty geöffnet ist und auch nur von meinem lokalen Netzwerk aus. Das heißt für verschlüsselt via Tunnel auf das WebIf der Box zugreifen zu können, klappt nur vom meinem PC aus. Ist das richtig?
    Welche Möglichkeiten gibt es, wenn ich von extern via dyndns auf meine Box verschlüsselt zugreifen möchte? Oder geht das doch irgendwie mit Putty?

  • Du brauchst einfach Putty, um den Tunnel zu bauen.
    Und ja das Fenster muss geöffnet sein,
    sonst wird der Tunnel beendet.


    Aber natürlich kannst du (mit Putty) auch von überall auf dein Heimnetzwerk zugreifen.
    Via deiner externen IP oder dann mittels Dyndns Namen.

  • Hallo mfgeg,
    zu deinem zweiten Satz. Wie soll das gehen? Nehmen wir mal an, ich bin irgendwo in Deutschland, hab meine Laptop mit und möchte auf meine Box! Normalerweise würde ich mit meiner dyndns-Adresse das WebIf erreichen. Wie geht das mit dem Tunnel? Unter z. B. http://localhost:3000 eingeben, obwohl zu Hause Putty nicht auf wäre?
    Da verstehe ich wohl was nicht!