.titleBar { margin-bottom: 5px!important; }

[gelöst] Freetz-Config-GUI (Port 81) nach außen freigeben

Dieses Thema im Forum "Freetz" wurde erstellt von ao, 6 Okt. 2008.

  1. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 ao, 6 Okt. 2008
    Zuletzt bearbeitet: 7 Okt. 2008
    Hallo,

    auch nach der Lektüre etlicher Threads zu Themen wie VirtualIP, Portfreigaben, ar7.cfg u.ä. habe ich immer noch nicht geschnallt, wie ich meine Freetz-Konfigurationsoberfläche (Port 81) nach außen freigebe.

    Auf meiner FB 7170 laufen u.a. virtualip und dropbear. Mittels virtualip habe ich 192.168.178.253 (255.255.255.0, interface: eth0:1) als virtuelle IP festgelegt. Außerdem habe ich via AVM-FB-Oberfläche eine Portweiterleitung eingestellt, so dass ich mittels ssh von außen (hinter einem Proxy) auf meine Box komme. Die ar7.cfg sieht an der Stelle so aus (dropbear lauscht auf der FB auf Port 22):
    Code:
    [...]
    tcp 0.0.0.0:443 192.168.178.253:22 0 # SSH-Tunnel;
    Wie muss denn nun die Portweiterleitung korrekt aussehen, damit der FB-Port 81 (für das Freetz-GUI) nach außen freigegeben wird?
    Ich habe hinter dem Proxy nur die Ports 80 und 443 offen - bitte berücksichtigen!
    Danke für Eure geduldige Hilfe und für's Augenöffnen...

    Edit - die Lösung (siehe auch im Freetz-Wiki zu dropbear):
    Mit dem folgenden von McNetic weiter unten beschrieben Eintrag unter Tunnels klappt es: L1081 192.168.178.253:81
    Weitere Tunnel-Einträge sind nicht nötig (bzw. waren bei mir störend - und wurden entfernt).
    Und dann im Browser einfach aufrufen: localhost:1081
    Damit habe ich einen Fernzugriff auf das Freetz-GUI.

    Analog lässt sich der Fernzugriff auf das original AVM-WebGUI bewerkstelligen:
    L1080 192.168.178.253:80
    Und dann im Browser einfach aufrufen: localhost:1080

    Damit der Zugriff auf die AVM-Seite (Port 80) funktioniert, muss man allerdings noch den Referer unterbinden.
    Unter Firefox ist dazu der Wert für network.http.sendRefererHeader unter about:config auf 0 (Null) zu setzen.
     
  2. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    672
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    Du kannst nicht zwei Dienste auf dem gleichen Port laufen lassen (zumindest nicht allgemein zugänglich; mit iptables wärs möglich abhängig von der Quelladresse auf andere Ports weiterzuleiten, aber das willst Du wahrscheinlich nicht, und ich weiss auch nicht, ob es mit dem dsld funktionieren würde).
     
  3. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #3 ao, 6 Okt. 2008
    Zuletzt bearbeitet: 6 Okt. 2008
    Hallo McNetic,

    habe ich Dich richtig verstanden, dass man ohne iptables mit nur einem offenen Port 443 (den Port 80 kann ich nicht wirklich dazu verwenden) nicht mehrere Dienste wie z.B. 1. ssh und 2. http laufen lassen kann?

    Hmm, wenn es mit iptables tatsächlich ginge, würde ich mich da reinlesen wollen. Aber die Quelladresse ist doch immer dieselbe, wenn ich hinter dem Proxy bin. Wie lösen das denn andere Leute hier?

    Also so wird es wohl nicht gehen, oder? ar7.cfg:
    Code:
    forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
          "tcp 0.0.0.0:443 192.168.178.253:81 0 # Freetz-Konfiguration",
          "tcp 0.0.0.0:443 192.168.178.253:22 0 # SSH-Tunnel";
    
    Die 1. Zeile war schon drin, spielt hier keine Rolle.
    Die 3. Zeile (ssh) funktioniert einwandfrei.
    Die 2. Zeile??


    EDIT:
    Seltsam, plötzlich ist die Verbindung weg und ein erneutes ssh Login klappt nicht. Nach ca. 30 Sek. "Server unexpectedly closed network connection" (sagt PuTTY).

    Außerdem:
    Wieso erscheinen die o.g. Zeilen in /var/flash/ar7.cfg nun mit "-Zeichen und Komma und Semikolon hinter den "-Zeichen? Ist das so normal?
    Falls ja, bricht die Verbindung wohl aus dem oben von McNetic genannten Grund ab:
    Parallele Dienste auf demselben Port klappen einfach nicht. Oder ist es etwas anderes?

    Es wundert mich nur, dass zwischen meinem Beitrag eins drüber und diesem hier es eben 1x funktioniert hat, sonst hätte ich auch gar nicht die ar7.cfg kopieren und hier einfügen können.
     
  4. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,735
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das klappt
     
  5. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @ao
    Du kannst nicht Verbindungen für einen Port an zwei Ziele weiterleiten.
    Die Portweiterleitung bedeutet folgendes:
    Jede TCP-Verbindung wird durch die IP-Adressen und Ports der beiden Seiten definiert. Die IP-Adressen der beiden Seiten sind fest, so daß nur noch die Ports übrig bleiben, um verschiedenen Verbindungen zu unterscheiden.
    Wenn eine neue Verbindung aufgebaut wird, kann diese in Abhängigkeit vom Ziel-Port weitergeleitet werden.
    Wenn in Deinem Fall eine neue Verbindung auf Port 443 ankommt, ist das die einzige Information, die die Box zu diesem Zeitpunkt hat. Woher soll sie jetzt wissen, ob diese Verbindung auf Port 81 oder auf Port 22 weitergeleitet werden soll? und beide Ports gleichzeitig geht auch nicht.

    Die einzige andere Information, die zur Verfügung steht, ist IP-Adresse und Port der Gegenstelle (und die eigene IP-Adresse, aber die bringt eien nicht weiter). Als Quell-Port wird von der Gegenstelle ein gerade freier Port ausgewählt. diese Information hilft auch nicht weiter. Es bliebe also noch die von McNetic angedeutete Möglichkeit, in Abhängigkeit der IP-Adresse der Gegenstelle die Verbindung weiterzuleiten. Das geht aber nur, wenn Verbindungen für verschiedenen Ports auch von verschiedenen IP-Adressen kommen und diese auch noch vorher bekannt sind, also kein DynDNS, oder noch mehr Klimmzüge.

    Für Dein konkretes Problem könnte ein SSH-Tunnel die Lösung sein.
     
  6. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja, einen ssh Tunnel nutze ich. Hatte ich das oben evtl. nicht richtig formuliert? Der Tunnel geht vom Port 443 an meine Box an Port 22.
    Über diesen Tunnel würde ich dann gerne an meine Freetz-Oberfläche (ggf. auch an die von AVM).
     
  7. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    672
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    Das was Du meinst, ist kein SSH-Tunnel sondern eine Portweiterleitung des Ports 443 auf 22. Das hat mit den dahinterliegenden Diensten erstmal gar nix zu tun.
    Wenn Du aber auf Port 443 eine SSH-Verbindung aufbaust, dann kannst Du in Putty unter Connection->SSH->Tunnels einen SSH-Tunnel einrichten. Dort gibts Du dann z.B. an daß der 'Source Port' (unten lokal aktivieren) 1081 auf Destination 192.168.178.253:81 weitergeleitet wird. Dann kannst Du auf localhost:1081 verbinden und diese Verbindung wird durch den SSH-Tunnel auf die Fritzbox weitergeleitet.
     
  8. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    ao, ich würde dir dafür matrixtunnel empfehlen. Mit dem kriegst du sogar keine referer-Probleme. Paket ist wirklich super-klein (nur etwa 40kB im Image) und du brauchst kein Putty. Sonst wie im Forum irgendwo bereits beschrieben wurde in Putty eine Weiterleitung (Tunnel) einrichten oder Putty sogar als Proxy benutzen (was bei mir nicht geklapt hat).

    Matrixtunnel ist aber etwas lahm, zumindest am Anfang der Vebindung.

    MfG
     
  9. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    672
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    1.) Er verwendet doch eh putty, oder?

    2.) Jede andere sinnvolle SSH-Implementierung kann auch Tunnel erstellen.

    3.) Kann man mit matrixtunnel mehrere Tunnel auf unterschiedliche Anwendungen über einen Port tunneln?
     
  10. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #10 ao, 7 Okt. 2008
    Zuletzt bearbeitet: 7 Okt. 2008
    Hi Ihr Zwei,
    ich habe mich wohl wirklich blöd ausgedrückt, sorry. [​IMG]

    Also, ich nutze in der Tat PuTTY mit SSH-Tunnel: L443 127.0.0.1:443
    D.h. 127.0.0.1 ist die Adresse des NTLM Authorization Proxy Servers (ebenfalls in PuTTY eingetragen), und ich verwende den offenen Port 443, um die ssh Session mittels PuTTY zum Port 443 meiner FB zu leiten - auf der FB über das virtuelle Interface 192.168.178.253 mit Port 443, welcher durch eine FB-interne Portweiterleitung auf Port 22 gemappt ist (alternativ hätte ich dropbear auch gleich auf Port 443 lauschen lassen können). So weit klappt das auch ganz gut, und sicher dürfte es ja auch sein.

    Nun möchte ich eben auch Zugriff auf mein Freetz-GUI haben (auch mittels ssh gesichert und daher geschicktermaßen über den o.g. SSH-Tunnel). Das ist doch so vom Prinzip her korrekt, oder?

    Edit:
    Es scheint dabei aber ein Problem zu geben:
    Wenn ich nun wie oben vorgeschlagen in PuTTY folgende 2. Regel unter Tunnels eintrage:
    L1081 192.168.178.253:81
    ... kommt kein Login-Prompt im session Fenster, und nach ca. 1 Minute wird die Verbindung abgebrochen mit der Meldung "Server unexpectedly closed network connection".
    D.h. das Tunneln von Port 81 über den SSH-Tunnel scheint damit nicht zu funktionieren.
     
  11. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    672
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    :confused:


    Jetzt versteh ich nur noch Bahnhof.

    Aaaalso ganz langsam, das komplette Szenario. Wo sitzt Du, wo ist die Firewall, wie bekommst Du mit Putty Deine Verbindung zur Box?

    Tatsache ist: Wenn Du mit Putty eine Verbindung zur Box hast, kannst Du auf von mir oben beschriebene Art und Weise Tunnel einrichten, wo dann auf dem Rechner, wo Putty läuft, der Port geöffnet wird (das was als L bezeichnet ist). Ein Zugriff wird dann durch den SSH-Tunnel auf den bei Destination eingetragenen Service weitergeleitet. Dort kannst Du beliebig viele Tunnels eintragen, die auf unterschiedlichen lokalen Ports lauschen und auf beliebige Zielserver am anderen Ende der SSH-Verbindung (also im Netz der FBox) zugreifen.
     
  12. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    S.o. im Beitrag über Deinem (haben sich überschnitten) und hier nochmal zur Verdeutlichung:

    Notebook mit PuTTY
    |
    Notebook mit ntlmaps NTLM Proxy Authentication Server (127.0.0.1:5865)*
    |
    HTTP-Proxy (Ports 80 und 443 offen)
    |
    FB -- virtualip (Port 443 <-> Port 22)
    |
    dropbear (lauscht auf Port 22)

    *Der NTLM Proxy Authentication Server ntlmaps ist der Proxy, gegen den ich PuTYY laufen lasse. Der Grund ist ganz simpel der, dass PuTTY leider nicht gegen das MS-proprietäre NTLM Protokoll laufen kann, d.h. die Authentifizierung übernimmt in diesem Fall ntlmaps als "Übersetzer" zwischen PuTTY und dem eigentlichen Proxy.
     
  13. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    672
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    Ich versteh es leider immer noch nicht ganz. Du Hast in Putty als Proxy den ntlmaps eingetragen. Wozu brauchst Du dann diese L443-Weiterleitung? Oder baust Du dann über den 1. Tunnel eine zweite Putty-Verbindung auf?
     
  14. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,629
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    @ao
    Ich greife auch ssh-gesichert auf das Fritz-GUI oder Freetz-GUI meiner Box zu. Unter XP mit Putty und unter FreeBSD und Linux, mit einem ssh-client. Als ssh-server auf der FritzBox benutze ich Dropbear. Das mach ich mit dynamischem Portforwarding und im Browser trage ich als Socks-Host die IP-Adresse 127.0.0.1 und den dynamischen Port ein. Mit dem ssh-client aktiviere ich den dynamischen Port so: ssh -D 3333 -oPort=<Port auf dem Dropbear lauscht> root@<IP-Adresse der FritzBox>. Mit Putty kann man auch einen dynamischen Port (... analog dem ssh-client) eintragen.
     
  15. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #15 ao, 7 Okt. 2008
    Zuletzt bearbeitet: 7 Okt. 2008
    @McNetic:
    Richtig, in PuTTY habe ich als Proxy den ntlmaps eingetragen.

    Wenn ich den Eintrag unter Tunnels weg lasse, geht es auch!
    Ok, ich hatte das Konzept in der Tat nicht richtig verstanden bzw. der Tunnels-Eintrag war einfach überflüssig/Käse.

    /var/flash/ar7.cfg:
    Code:
    [...]
    forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
                   "tcp 0.0.0.0:443 192.168.178.253:22 0 # SSH-Tunnel";
    [...]
    
    @sf3978:
    In die Parameter-Schreibweise muss ich mich erst noch einarbeiten, aber mit dem PuTTY-GUI müsste es ja entsprechend auch gehen.
     
  16. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,629
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    @ao

    Ja, es geht auch mit dem Putty-GUI.
     
  17. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    672
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    Soweit ich mich erinner sind in Dropbear die Anzahl der Verbindungen irgendwie beschränkt worden. Die zweite Zeile aus der ar7.config ist aber auch überflüssig und ggfs. schädlich. An der Tunnel-Einstellung dürfte es eigentlich nicht hängen bleiben, wenn die Verbindung nicht zustande kommt.
     
  18. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #18 ao, 7 Okt. 2008
    Zuletzt bearbeitet: 7 Okt. 2008
    Tausend Dank! [​IMG]
    Mit dem folgenden von McNetic ganz oben beschrieben Eintrag unter Tunnels klappt es: L1081 192.168.178.253:81
    Und dann im Browser einfach aufrufen: localhost:1081

    Dass es ständig hakte, lag an meinem anderen (völlig überflüssigen und störendem) Tunnel-Eintrag.

    Ich schreibe in meinem ersten Beitrag (unter Edit) rein, wie es geht, damit andere es gleich sehen, falls sie mit einem ähnlichen Problem auf diesen Thread stoßen. Einen kleinen Wiki-Eintrag mache ich auch noch...

    Edit @Hermann: Danke für den Referer-Hinweis!
    Damit der Zugriff auf die AVM-Seite (Port 80) funktioniert, muss man ggf. den Referer unterbinden.
    Unter Firefox ist dazu der Wert für network.http.sendRefererHeader unter about:config auf 0 (Null) zu setzen.
    Was für ein Referer-Problem hattest Du eigentlich gemeint?
     
  19. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,629
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    #19 sf3978, 7 Okt. 2008
    Zuletzt bearbeitet: 7 Okt. 2008
    @ao

    Versuchs mal mit dem dynamischen Portforwarding. Damit kommst Du überall hin und nicht nur auf die Freetz-GUI. Und am RefererHeader des Browsers musst Du auch nichts ändern.
     
  20. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke, klingt interessant!
    Für diejenigen, die noch kein dynamisches Portforwarding wie Du nutzen, habe ich im Wiki auch noch die Anmerkung bzgl. des Referers hinterlegt.