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

hallo, ich habe eine 7170 und teste seit längerem. Z.Zt habe ich die Firmware
29.04.55-10281 drauf und habe über die debug.cfg eine virt. Netzwerkkarte angelegt und auch über die Portfreigabe extern freigegeben..das funktionierte ca 5-10min. Freu.. danach funktionierte die Portfreigabe nicht mehr..Intern lässt sich der, über die virt. Adresse, installierte Apache Webserver einwandfrei erreichen!
 
Wo genau kommt das patch hin in welches Verzeichniss?
 
Ich habe im ersten Beitrag mal eine kleine "Anleitung" hinzugefügt, wie man das ganze ohne Patchen direkt nutzen kann.

Jörg
 
Könntest du denn deine "Lange" version als fertigen Patch für das ds-mod bereitstellen? So hätte doch jeder was von und VirtualIP braucht man überhaupt nicht mehr.

Und könnte man nicht auch mittels Script die Restriktion umgehen das man einen öffentlichen PORT nur einmal eintragen kann für eine IP? In meinem Netgear konnte ich z.b. den Port 80 einfach auf verschiedene interne IP's weiterleiten.
 
Hiho...habe das grad mal geteste...das lange script rennt wunderbar...und als autostart in rc.customs merkt man garnicht mehr das da was war...
habe mal spasseshalber die datei die ich nutze angehängt...
 

Anhänge

  • unhiderules.zip
    1.2 KB · Aufrufe: 138
Das tut's bei mir nicht. Die portweiterleitung auf die box selbst wird nicht angezeigt. Brauch ich noch irgendwas besonderes an Paketen vom freetz sonst ? Und wo kann ich diese rc.custom schon beim kompilieren mit ins Image bringen, oder geht das erst nachträglich durch die weboberfläche von freetz?

Code:
/var/mod/root # /usr/bin/unhiderules.sh
Apr 28 22:35:33 ctlmgr[1958]: process priority is 19
Apr 28 22:35:33 ctlmgr[1963]: overwriting stale lockfile (438)
Apr 28 22:35:33 ctlmgr[1963]: [main.c:802] **** cwd -> {/}
Apr 28 22:35:33 ctlmgr[1963]: /var/flash/tr069.cfg: is empty
Apr 28 22:35:33 ctlmgr[1963]: FactoryDefault=/etc/default/avm/tr069.cfg (tr069)
Apr 28 22:35:33 ctlmgr[1963]: load_config(tr069): factory default loaded
Apr 28 22:35:33 ctlmgr[1963]: VPNConn_Register called...
Apr 28 22:35:33 ctlmgr[1963]: internal vcc:
Apr 28 22:35:33 ctlmgr[1963]:   name=voip vpi=1 vci=32 encap=1 sep_config=0 vcc=0x2aab6b00
Apr 28 22:35:33 ctlmgr[1963]:   name=internet vpi=1 vci=32 encap=1 sep_config=0 vcc=0x2aab
6b00
Apr 28 22:35:33 ctlmgr[1963]: UNMAP budget,0
Apr 28 22:35:33 ctlmgr[1963]: DOUBLE tam,0 TO info,0
Apr 28 22:35:33 ctlmgr[1963]: box init ok
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:443 0.0.0.0:443 0'
Apr 28 22:35:33 ctlmgr[1963]: forwardrules: internal rule
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'udp 0.0.0.0:5060 0.0.0.0:5060'
Apr 28 22:35:33 ctlmgr[1963]: forwardrules: internal rule
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'udp 0.0.0.0:2499 0.0.0.0:2499 0
# GBOX'
Apr 28 22:35:33 ctlmgr[1963]: forwardrules: internal rule
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:3389 192.168.0.2:338
9 0 # MS Remotedesktop'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON TCP 3389 192.168.0.2 3389
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:80 192.168.0.6:80 0
# HTTP-Server'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON TCP 80 192.168.0.6 80
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:81 192.168.0.2:81 0
# FTP Port 81'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON TCP 81 192.168.0.2 81
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:17039 192.168.0.2:17
039 0 # Bittorrent'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON TCP 17039 192.168.0.2 17039
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:13000+11 192.168.0.2
:13000 0 # FTP Passive'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON TCP 13000 192.168.0.2 13000
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:21 192.168.0.6:21 0
# FTP-Server'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON TCP 21 192.168.0.6 21
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:31337 192.168.0.2:31
337 0 # Bittorrent WebUI'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON TCP 31337 192.168.0.2 31337
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'udp 0.0.0.0:31337 192.168.0.2:31
337 0 # Bittorrent WebUI'
Apr 28 22:35:33 ctlmgr[1963]: FWRule ON UDP 31337 192.168.0.2 31337
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:8089 0.0.0.0:8089'
Apr 28 22:35:33 ctlmgr[1963]: forwardrules: internal rule
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'udp 0.0.0.0:5060 0.0.0.0:5060'
Apr 28 22:35:33 ctlmgr[1963]: forwardrules: internal rule
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'tcp 0.0.0.0:5060 0.0.0.0:5060'
Apr 28 22:35:33 ctlmgr[1963]: forwardrules: internal rule
Apr 28 22:35:33 ctlmgr[1963]: ipmasqfwruleex_parse ret=0 'udp 0.0.0.0:7078+32 0.0.0.0:7078
'
Apr 28 22:35:33 ctlmgr[1963]: forwardrules: internal rule
Apr 28 22:35:33 ctlmgr[1963]: next auto check for firmware updates sheduled in 190699 seco
nds (2008-05-01 03:33:52)
Apr 28 22:35:33 ctlmgr[1963]: sipextra my_init
Apr 28 22:35:33 ctlmgr[1963]: capiotcp My_Init
Apr 28 22:35:33 ctlmgr[1963]: VPNConn_Register called...
Apr 28 22:35:33 ctlmgr[1963]: VPNConn_Init called...
Apr 28 22:35:33 ctlmgr[1963]: /dev/avm_power <-- MODE=dsl
Apr 28 22:35:33 ctlmgr[1963]: WAN (ata) led value = 0
Apr 28 22:35:33 ctlmgr[1963]: [../webserver/webserver.c:538] Initialisation of webserver c
onfiguration
Apr 28 22:35:33 ctlmgr[1963]: https access enabled
Apr 28 22:35:33 ctlmgr[1963]: startup (Mar 11 2008 14:48:30)
Apr 28 22:35:33 ctlmgr[1963]: [main.c:1136] *** WEBSERVER started successfully
Apr 28 22:35:33 ctlmgr[1963]: verbose: DISABLED
BusyBox v1.9.2 (2008-04-27 16:46:02 CEST) multi-call binary

Usage: grep [-HhrilLnqvsoeFEABC] PATTERN [FILEs...]

Search for PATTERN in each FILE or standard input

Options:
        -H      Prefix output lines with filename where match was found
        -h      Suppress the prefixing filename on output
        -r      Recurse subdirectories
        -i      Ignore case distinctions
        -l      List names of files that match
        -L      List names of files that do not match
        -n      Print line number with output lines
        -q      Quiet. Returns 0 if PATTERN was found, 1 otherwise
        -v      Select non-matching lines
        -s      Suppress file open/read error messages
        -c      Only print count of matching lines
        -o      Show only the part of a line that matches PATTERN
        -m MAX  Match up to MAX times per file
        -F      PATTERN is a set of newline-separated strings
        -E      PATTERN is an extended regular expression
        -e PTRN Pattern to match
        -f FILE Read pattern from file
        -A      Print NUM lines of trailing context
        -B      Print NUM lines of leading context
        -C      Print NUM lines of output context

Apr 28 22:35:38 capiotcp_server[1996]:

capiotcp_server - Version 0.1.01.05
        TCP/UDP Port = 5031
        MaxCntrl     = 5
        OffsetCntrl  = 0


Apr 28 22:35:38 capiotcp_server[1996]: 0.0.0.0:5031: bind failed - Address already in use
(125)
/var/mod/root #
 
Zuletzt bearbeitet:
Nach Aufrufen aus der Konsole bleibt das Script hängen:
Code:
/var/media/ftp/uStor05/tmp # ./unhiderules.sh
BusyBox v1.9.2 (2008-04-22 17:17:49 CEST) multi-call binary

Usage: grep [-HhrilLnqvsoeFEABC] PATTERN [FILEs...]

Search for PATTERN in each FILE or standard input

Options:
        -H      Prefix output lines with filename where match was found
        -h      Suppress the prefixing filename on output
        -r      Recurse subdirectories
        -i      Ignore case distinctions
        -l      List names of files that match
        -L      List names of files that do not match
        -n      Print line number with output lines
        -q      Quiet. Returns 0 if PATTERN was found, 1 otherwise
        -v      Select non-matching lines
        -s      Suppress file open/read error messages
        -c      Only print count of matching lines
        -o      Show only the part of a line that matches PATTERN
        -m MAX  Match up to MAX times per file
        -F      PATTERN is a set of newline-separated strings
        -E      PATTERN is an extended regular expression
        -e PTRN Pattern to match
        -f FILE Read pattern from file
        -A      Print NUM lines of trailing context
        -B      Print NUM lines of leading context
        -C      Print NUM lines of output context

/var/media/ftp/uStor05/tmp #
Die Zeile
Code:
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/"`"
ohne Anführungszeichen
Code:
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/"`
löst das Problem und es lassen sich Portfreigaben auf die Box machen und auch ansehen.
 
Danke, werd ich testen.

@Darkyputz, evtl. dein Anhang korrigieren? :)
 
... das eigentliche Problem ist, dass die Variable "EXCLUDE", die im Original definiert war, hier auskommentiert wurde und die geänderte Version (mit "" um die Variable) ist "Fehlertolerant" und fängt das Fehlen ab. Ich würde daher vorschlagen:
Code:
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/"`"

Insgesamt ist das so "dirty", dass ich nicht weiß, ob man das in freetz mit aufnehmen sollte. Wenn überhaupt, dass eher über einen Button "auch die lokalen Weiterleitungen anzeigen" .

Jörg
 
Was ist an diesem Patch schlechter als an den vielen anderen? Ich finde es insgesamt schlanker wenn man nicht extra virtualip installieren muss und einfach in den Freigaben ne Portweiterleitung auf die Box selbst machen kann, mir leuchtet nicht mal wirklich ein wieso AVM das verbietete mal abgesehen vom "Spielverderben".
 
Zu spät gesehen,
hab ein Thema aufgemacht das hier herein passt:

http://www.ip-phone-forum.de/showthread.php?t=165348

mein System läuft auf dem aktuellen Entwicklerversion (installiert am 27.04.0.
Geiles Teil, folgende Frage aber stellt sich mir:

Eingeloggt per SSH, mit dem Befehl "netstat -nl" kann man sich alle offenen Ports anzeigen lassen.
Die Services laufen alle auf der Adresse 0.0.0.0, das heißt für Linux er lauscht auf jeden Interface, auch auf dem DSL Interface.
Standardmäßig müsste man also auch OHNE Portforwarding auf die Dienste zugreifen können.

In der Praxis funktioniert das aber nicht. Verhindert dort jetzt die AVM Firewall, dass man nicht ohne Portforwarding darauf zugreifen kann?
Standardmäßig steht diese doch auf "Permit All" ...

Freue mich auf Aufklärung
 
Hi,

im Prinzip schon ;-) Allerdings ist das DSL- (oder besser: das Internet-) Interface "etwas anders" denn es wird vom dsld bedient, der intern die Pakete "bearbeitet" und z.B. NAT macht. Nur wenn der die Pakete an den Kernel weiterleitet, können die Dienste, die darauf lauschen, die Pakete bekommen.
Die Firewall kann letzlich also nur Pakete verwerfen, die per Weiterleitung reinkämen.

Grüße

Jörg
 
Die Firewall steht garantiert nicht standardmäßig auf "permit all", zumindest nicht, was eingehende Pakete aus dem Internet betrifft. Sie würde sonst ja wenig bringen.
 
Wenn ich mich nicht ganz irre: ... doch, tut sie...
Ausschnitt aus der Standard-ar7.cfg:
Code:
                dsldpconfig {
                        security = dpsec_firewall;
                        lowinput {
                                policy = "permit";
                                accesslist =
                                             "deny ip any 242.0.0.0 255.0.0.0",
                                             "deny ip any host 255.255.255.255",
                                             "deny udp any any eq 135",
                                             "deny tcp any any eq 135",
                                             "deny udp any any range 137 139",
                                             "deny tcp any any range 137 139",
                                             "deny udp any any range 161 162",
                                             "deny udp any any eq 520",
                                             "deny udp any any eq 111",
                                             "deny udp any any eq 22289",
                                             "deny udp any any eq 1710",
                                             "deny udp any any eq 1048",
                                             "deny udp any any eq 158",
                                             "deny udp any any eq 515";
                        }
hinter policy steht die default-Policy, nur durch die "fehlenden Portweiterleitungen" entsteht die "Sicherheit", denn nur diese Pakete (und solche, für die es einen NAT-Eintrag von ausgehendem Verkehr gibt) kommen rein. Wirklich Verworfen werden eingehend nur Multicasts, Broadcasts usw.

Jörg
 
Die Firewall steht garantiert nicht standardmäßig auf "permit all", zumindest nicht, was eingehende Pakete aus dem Internet betrifft. Sie würde sonst ja wenig bringen.

Klar bringt das was, die Pakete wissen halt nicht wo sie hin müssen und laufen ins Nirvana.
So funktioniert jeder NAT-Router.
 
wie geht's nu richtig

Hi,
habe nun auf meiner 7170 auch die 29.04.57 drauf und das portforewarding geht nicht mehr. welche variante läuft denn hier aus dem forum? das nervt sehr nicht mehr mit ssh auf die box zu kommen.
grüsse
georg
 
Was ist mit der Variante aus Post #1? Geht die bei dir nicht?

Jörg
 
Was ist mit der Variante aus Post #1? Geht die bei dir nicht?

Jörg

Hi,
meinst du die lange oder die kurze variante. habe vor meinem post alles bereits durchgelesen, habe aber leider nicht erkannt das im ersten post bereits die aktuellste version steht. bei den vielen anderen geposteten varianten hab ich nicht mehr durchgeblickt.

wie kann ich das fest in der box verankern? evt. über ein pseudoimage über die debug.cfg??

danke für die antwort.
grüße
georg
 
der trick nennt sich portrule patch...
darf jeder haben wer will...
einfach beim modden in das de verzeichniss eurer box im patches verzeichniss und fertig
ab dann könnt ihr im webmenü 0.0.0.0 freigaben machen...
 

Anhänge

  • portrule.zip
    382 Bytes · Aufrufe: 187
Danke! Trotzdem noch eine Frage:
Jetzt habe ich "portrule.patch" hier liegen:
~/freetz-trunk/patches/7170/de/portrule.patch

Code:
--- usr/www/avm/html/de/internet/portrule.js_orig       2007-12-18 11:00:47.000000000 +0100
+++ usr/www/avm/html/de/internet/portrule.js    2008-02-05 11:03:18.000000000 +0100
@@ -36,7 +36,7 @@
 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;
+if ((Number(digits[0]) == 0) && (Number(digits[1]) == 0) && (Number(digits[2]) == 0) && (Number(digits[3]) == 0)) return null;
 // IP-Adresse *.*.*.0 verbieten
 if (Number(digits[3]) == 0) return g_mldIpAdr0;
 // IP-Adresse *.*.*.255 verbieten
Kann ich nun "make" aufrufen oder muss ich nochmal "make menuconfig" starten und erst dann "make" oder ist sonst noch etwas anzupassen? Z.B. fangen im o.g. Pfad alle anderen Patches mit Ziffern an, Deiner nicht. Klappt das so?
Woher weiß "make", dass da ein zusätzlicher Patch abzuarbeiten ist?
 
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.