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

Port-Freigabe auf die Box ist so möglich! Virtual-IP überflüssig?!?

Dieses Thema im Forum "Freetz" wurde erstellt von MaxMuster, 5 Feb. 2008.

  1. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,917
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    #1 MaxMuster, 5 Feb. 2008
    Zuletzt bearbeitet: 30 Mai 2008
    Moin zusammen,

    ich möchte euch mal bitten, den folgenden Vorschlag zu prüfen:

    Code:
    --- usr/www/all/html/de/internet/portrule.js.ori        2008-02-05 09:52:26.000000000 +0100
    +++ usr/www/all/html/de/internet/portrule.js    2008-02-05 10:12:04.000000000 +0100
    @@ -35,10 +35,8 @@
            for (i=0; i < 4; i++) {
                    if ((Number(digits[i]) > 255 ) || (Number(digits[i]) < 0 )) return g_mldIpAdr;
            }
    -       // IP-Adresse 0.0.0.0 verbieten
    -       if ((Number(digits[0]) == 0) && (Number(digits[1]) == 0) && (Number(digits[2]) == 0) && (Number(digits[3]) == 0)) return g_mldIpAdr0000;
    -       // IP-Adresse *.*.*.0 verbieten
    -       if (Number(digits[3]) == 0) return g_mldIpAdr0;
    +       // IP-Adresse *.*.*.0 verbieten ... aber 0.0.0.0 erlauben ;-)
    +       if (Number(digits[3]) == 0 && address[0] != "0.0.0.0") return g_mldIpAdr0;
            // IP-Adresse *.*.*.255 verbieten
            if (Number(digits[3]) == 255) return g_mldIpAdr255;
            // IP-Adresse 169.254.*.* verbieten
    
    Damit kann man in der "normalen" Oberfläche als Ziel die "0.0.0.0" also die Box selbst angeben. Damit geht dann z.B. folgendes, ohne Eingriffe in die ar7.cfg:

    "tcp 0.0.0.0:22 0.0.0.0:22 0 # SSH auf FBOX",
    "udp 0.0.0.0:1194 0.0.0.0:1194 0 # OVPN";


    Jörg


    EDIT 20080406: Nachtrag einer "Minianleitung"

    Um das ganze ohne Patches zu nutzen, kann man das oben genannte auch per Telnet auf der Box direkt eingeben. Die "kurze" Variante ermöglicht es, Portfreigaben auf "0.0.0.0" zu setzen, die zwar im Flash abgespeicert werden, nach einem Reboot aber nicht mehr in der GUI sichtbar sind. Die "längere" Variante zeigt auch in der GUI alle Weiterleitungen auf 0.0.0.0 an und ermöglicht deren Änderung (Ausnahme ist die Standard-AVM-Regel für VOIP auf Port 5060).

    Für die "Mini-Lösung" per telnet auf die Box und dann das folgende ausführen:

    Code:
    pr=`find /var/html/ -name portrule.js`
    sed  's/return g_mldIpAdr0000/return null/'  $pr > /var/tmp/portrule.js
    mount -o bind  /var/tmp/portrule.js  $pr
    
    Wie gesagt: Damit kann man bis zu einem Neustart 0.0.0.0 als Ziel eintragen und diese Einträge (nicht schon existierende) "sehen". Nach einem Neustart bleiben diese Einträge zwar erhalten, sind aber nicht sichtbar in der GUI.


    Die "lange" Version ermöglicht auch die Anzeige der Einträge in der GUI:
    Code:
    pr=`find /var/html/ -name portrule.js`
    sed  's/return g_mldIpAdr0000/return null/'  $pr > /var/tmp/portrule.js
    mount -o bind  /var/tmp/portrule.js  $pr
    
    cat > /var/tmp/unhiderules << 'EOF'
    #! /bin/sh
    
    # Die VOIP-Regel "ausblenden"
    EXCLUDE="0\.0\.0\.0\:5060"
    
    #PW extrahieren
    local PWD=$(/bin/allcfgconv -C ar7 -c -o - | sed -ne '/^webui[[:space:]]*{/,/^}/{
    /=/{s/[[:space:]]*=[[:space:]]*/=/;s/^[[:space:]]*//;p}
    }' | grep '^password=' | cut -d '"' -f2)
        ret=$?
        if [ $ret != 0 ]; then
          echo "ERROR: Unhide_local_PFWD (exit code $ret)" >&2
          exit $ret
        fi
    
    # 0.0.0.0:xx 0.0.0.0:yy ersetzen durch 0.0.0.0:xx 127.0.0.1:yy
    cat /var/flash/ar7.cfg | sed  "/dslifaces/,/} {/ {/forward/,/}/ {/$EXCLUDE/! s/\(.*0\.0\.0\.0.*\)\(0\.0\.0\.0\)\(.*\)/\1127\.0\.0\.1\3/}}" > /var/tmp/tmpar7.cfg
    cat /var/tmp/tmpar7.cfg > /var/flash/ar7.cfg
    
    # Die "neuen" Regeln einlesen lassen, so dass sie per GUI erreichbar sind (die 0.0.0.0-er Regeln sind nicht "ansprechbar":
    killall -9 ctlmgr && sleep 1 && /usr/bin/ctlmgr
    sleep 5
    
    # ... und nun das Aendern auf 0.0.0.0 per GUI "emulieren"
    #
    TESTSTRING="127.0.0.1"
    NEUEIP="0.0.0.0"
    # Die Rules finden ... 
    rules="`wget -q -O - "http://127.0.0.1/cgi-bin/webcm?getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Alang=de&var%3Apagename=portfw&var%3Amenu=internet&var%3Apagemaster=" | grep -v $EXCLUDE |grep -A 6 $TESTSTRING | grep "uiDoEdit" | sed "s/.*uiDoEdit('\(.*\)').*/\1/"`"
    
    if [ "$rules" != "" ]; then
      # ... POST_DATA String "basteln" 
      PDATA="getpage=/usr/www/all/html/query.txt&login:command/password=$pw&id=uiPostForm&name=uiPostForm&var:pagename=portrule&var:menu=internet"
      for myrule in `echo "$rules" | tr '\n' ' '`; do
        PDATA="${PDATA}&var:rule=${myrule}&var:isnew=0&var:isexp=0&forwardrules:settings/${myrule}/fwip=$NEUEIP"
      done
      echo -n "$PDATA" | REQUEST_METHOD="POST" REMOTE_ADDR="127.0.0.1" CONTENT_TYPE="application/x-www-form-urlencoded" CONTENT_LENGTH=${#PDATA} /usr/www/html/cgi-bin/webcm > /dev/null
    fi
    # ... fertig
    EOF
    sh /var/tmp/unhiderules
    
     

    Anhänge:

  2. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,317
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    sorry...habe deinen patch schon für dich im ticketing hinterlassen...
    wohl daher 2 doofe ein gedanke...

    aber gut das wir das jetzt ahben...denn die 7270 firm version 50 und grösser machen kein virtual ip mehr...
     
  3. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,317
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    Kleiner hacken an der sache gefunden...
    Die portfreigaben gehen zwar damit wunderbar, aber die werden ausgeblendet nach dem nächsten neustart der box...
    sicherlich das selbe verhalten das zum nicht anzeigne der voip freigaben angewendet wird...
     
  4. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Kleiner Haken ist gut. Das heißt, dass man diese Freigaben also nicht mehr löschen kann?

    MfG Oliver
     
  5. lord-of-linux

    lord-of-linux Mitglied

    Registriert seit:
    3 Dez. 2005
    Beiträge:
    568
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Interessante Lösung, vielleicht lässt sich die Anzeige ja noch so patchen, dass es möglich ist, die Freigaben trotzdem zu sehen.

    Löschen wird wohl kein Problem darstellen:
    Einfach per nvi /var/flash/ar7.cfg die betroffenen Zeilen löschen, wenn man weiß was man macht. (Habe die Box so schon einmal zerschossen)
     
  6. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,317
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    ich mach es noch etwas anders...
    Code:
    cat /var/flash/ar7.cfg > /var/media/ftp/uStor01/ar7.cfg
    dann mit nem editor der an dieser datei geht editieren, speichern und 
    cat /var/media/ftp/uStor01/ar7.cfg > /var/flash/ar7.cfg
    
    so muss man erstmal nicht vi nutzen...
     
  7. wichard

    wichard IPPF-Promi

    Registriert seit:
    16 Juni 2005
    Beiträge:
    6,954
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Aachen
    Wer die ar7.cfg direkt bearbeitet, braucht sowieso weder ein Pseudo-Interface noch einen Patch des Webinterfaces... ;) Das Ziel des OP war ja doch ein etwas anderes.
     
  8. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,317
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    erstellen tu ich die dann schon über das avm webif...ich gebe je eher dauerhaft frei und mann muss ja nicht oft da wieder ran
     
  9. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,917
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ich überlege gerade einen "ugly workaround" beim Starten der Box:
    • Per "sed" die ar7.cfg verändern z.B. die "Ziel 0.0.0.0" auf 127.0.0.1 (nein, die hat bei mir leider nicht funktioniert :-()
    • ctlmgr killen und neu starten -> Regeln wären mit "127.0.0.1" sichtbar
    • per Script die GUI-CGI-Änderung von 127.0.0.1 auf 0.0.0.0 veranlassen
    • fertig

    Sieht da einer einen Haken an dem Vorgehen?

    Jörg
     
  10. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,317
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    wenn es denn funktioniert?
     
  11. han-solo

    han-solo Mitglied

    Registriert seit:
    28 Juli 2005
    Beiträge:
    451
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Gibt es denn keine Möglichkeit die Mekker-Abfrage auf die IP des Interfaces (z.B. eth0 = 192.168.178.1) zu unterbinden?

    Das wäre doch die beste Lösung.

    Gruß
    HS
     
  12. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,917
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    ... leider ist diese Abfrage im Binary (ich meine ctlmgr(?)) mit drin...

    Bei mir klappt es hiermit, damit werde alle Rules wieder angezeigt:
    Code:
    #! /bin/sh
    
    # Die VOIP-Regel "ausblenden"
    EXCLUDE="0\.0\.0\.0\:5060"
    
    #PW extrahieren
    local PWD=$(/bin/allcfgconv -C ar7 -c -o - | sed -ne '/^webui[[:space:]]*{/,/^}/{
    /=/{s/[[:space:]]*=[[:space:]]*/=/;s/^[[:space:]]*//;p}
    }' | grep '^password=' | cut -d '"' -f2)
        ret=$?
        if [ $ret != 0 ]; then
          echo "ERROR: Unhide_local_PFWD (exit code $ret)" >&2
          exit $ret
        fi
    
    # 0.0.0.0:xx 0.0.0.0:yy ersetzen durch 0.0.0.0:xx 127.0.0.1:yy
    cat /var/flash/ar7.cfg | sed  "/dslifaces/,/} {/ {/forward/,/}/ {/$EXCLUDE/! s/\(.*0\.0\.0\.0.*\)\(0\.0\.0\.0\)\(.*\)/\1127\.0\.0\.1\3/}}" > /var/tmp/tmpar7.cfg
    cat /var/tmp/tmpar7.cfg > /var/flash/ar7.cfg
    
    # Die "neuen" Regeln einlesen lassen, so dass sie per GUI erreichbar sind (die 0.0.0.0-er Regeln sind nicht "ansprechbar":
    killall -9 ctlmgr && sleep 1 && /usr/bin/ctlmgr
    sleep 5
    
    # ... und nun das Aendern auf 0.0.0.0 per GUI "emulieren"
    #
    TESTSTRING="127.0.0.1"
    NEUEIP="0.0.0.0"
    # Die Rules finden ... 
    rules="`wget -q -O - "http://127.0.0.1/cgi-bin/webcm?getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Alang=de&var%3Apagename=portfw&var%3Amenu=internet&var%3Apagemaster=" | grep -v $EXCLUDE |grep -A 6 $TESTSTRING | grep "uiDoEdit" | sed "s/.*uiDoEdit('\(.*\)').*/\1/"`"
    
    if [ "$rules" != "" ]; then
      # ... POST_DATA String "basteln" 
      PDATA="getpage=/usr/www/all/html/query.txt&login:command/password=$pw&id=uiPostForm&name=uiPostForm&var:pagename=portrule&var:menu=internet"
      for myrule in `echo "$rules" | tr '\n' ' '`; do
        PDATA="${PDATA}&var:rule=${myrule}&var:isnew=0&var:isexp=0&forwardrules:settings/${myrule}/fwip=$NEUEIP"
      done
      echo -n "$PDATA" | REQUEST_METHOD="POST" REMOTE_ADDR="127.0.0.1" CONTENT_TYPE="application/x-www-form-urlencoded" CONTENT_LENGTH=${#PDATA} /usr/www/html/cgi-bin/webcm > /dev/null
    fi
    # ... fertig
    
    Jörg
     
  13. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,317
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    wo hast du das denn stehen??
     
  14. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,917
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Erstmal nur als Skript abgespeichert und händisch gestartet, dann "sind sie alle wieder da" ;-)

    Jörg
     
  15. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Geht es hierbei denn darum, daß Virtual-IP nicht mehr funktioniert und eine Alternative gebraucht wird, oder ging es darum, das Ganze einfacher zu machen?

    Wenn Virtual-IP noch funktioniert, dann würde ich es dabei belassen. Der Ansatz hier wäre eleganter gewesen, aber nicht, wenn man dafür etliche andere Klimmzüge machen muß.
     
  16. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,917
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Wenn ich das oben richtig gelesen hatte, sollte Virtual-IP ab der 50-er FW nicht mehr gehen, das war aber nicht die ursprüngliche Intention...

    Eine Virtuelle IP über die debug.cfg ist vermutlichwegen der Probleme noch immer die beste Methode: "Sofort" beim Starten da und ohne weitere Klimmzüge....

    Jörg
     
  17. matze1985

    matze1985 Aktives Mitglied

    Registriert seit:
    17 Feb. 2007
    Beiträge:
    1,537
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Warum soll denn VirtualIP nicht mehr funktionieren?
    Hab ne 7141 und ne 50er FW und VirtualIP startet ganz normal:
    Code:
    /var/log/mod.log
    
    rc.mod version ds26-pre16
    Starting crond...done.
    telnetd is disabled
    Starting webinterface...done.
    Setting up virtual network interface ... done.
    ...
     
  18. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,917
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Habe ich nur gelesen..., gilt dann wohl nur für die 7270?!?

    Jörg
     
  19. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Virtual IP geht natürlich immer noch. Aber angeblich sollen die Portweiterleitungen nicht funktionieren. Ich habs aber auch noch nicht ausprobiert.

    MfG Oliver
     
  20. MBoehme

    MBoehme Neuer User

    Registriert seit:
    1 Okt. 2005
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,

    ich habe seit 4 Tagen auf meine Box die aktuelle Labor-FW Gaming mit Freetz laufen, sie läuft stabil, aber die Portweiterleitungen gehen nicht mehr. Virtual IP läuft, intern ist die Box auch über die zusätzliche IP erreichbar, aber von außen leider nicht mehr. :-(
    Wahrscheinlich möchte AVM nun, dass man Ihren VPN-Client nutzt, leider weiß ich noch nicht, wie ich ihn einrichten muss. Die Hilfe habe ich dummerweise entfernt. ;-)

    MfG Michael