[Frage] Der korrekte Weg für Port forwarding mit FW6.20 ohne freetz

kmeleon

Neuer User
Mitglied seit
8 Okt 2009
Beiträge
66
Punkte für Reaktionen
1
Punkte
8
Hallo!

Mit der neuen Firmware 6.20 ist vieles anders und der bisherige Weg zum Forwarden eines Ports klappt nicht mehr. Ich habe in diesem Forum schon gesucht, bin aber bisher nicht fündig geworden. Ich möchte auf Port 80 über das Internet auf meine Fritzbox (apache bzw. svn) zugreifen. Bisher habe ich das ein Mal über die GUI gemacht und der Eintrag blieb Reset-fest, aber mit neuer Firmware ist der Eintrag nach einem Reboot immer wieder deaktiviert.

Meine Randbedingungen:
  • FW6.20
  • avm Firmware und kein freetz
  • debug.cfg-Patch von PeterPawn bereits appliziert
  • Port 80 und 443 stehen zur Verfügung (443 ist durch die avm WebGUI bereits blockiert), wobei Port 80 für das Forwarding genutzt werden soll
  • Eintrag soll Reset-fest sein
  • über debug.cfg wird der apache2 und svn gestartet

Wie erreiche ich es, dass die Forward rule für Port 80 auch nach einem Reboot aktiv bleibt?

Danke Euch für Eure Hilfe!
 
lan:0 benutzen

Abend

Ohne freetz und Editieren der ar7.cfg, aber mit debug.cfg.
Erstmal das "Gerät" mit der "Notfall IP" runterfahren...
Code:
ifconfig lan:0 down
...dann mit beliebiger IP wieder hochfahren...
Code:
ifconfig lan:0 192.168.178.2 up
Apache auf dieser IP laufen lassen (konfigurieren).
Diese IP im Webinterface zum Forwarden benutzen.
 
Also so ähnlich habe ich das vorher auch gemacht, mit zwei Unterschieden: Verwendung von lan:1 als Interface, IP-Adresse auf 192.168.1.254 gesetzt. Damit war die Funktion nach einem Reboot immer wieder deaktiviert...

Aber auch mit Deinen Vorschlägen bekomme ich es nicht hin: Registriere ich über ifconfig die IP-Adresse 192.168.1.254 oder 192.168.178.2 vor der Aktivierung im Webinterface, dann kann ich sie anschließend nicht mehr aktivieren. Die Meldung

Die angegebene IP-Adresse wird von FRITZ!Box verwendet. Eine Portfreigabe auf diese IP-Adresse ist nicht zulässig.

wird ausgegeben. Schalte ich die IP erst im WebInterface frei und erzeuge dann das Interface über ifconfig, so funktioniert alles, aber ich kann es nicht automatisieren (da das Port forwarding beim nächsten Reboot wieder automatisch entfernt wird).

Wo liegt mein Fehler?
 
Zuletzt bearbeitet:
Moin

Das Interface lan:1 ist eigentlich die Bessere Wahl.
Trotzdem wird auch über diese IP die fritz.box aufgelöst, und somit auch Port 80 des AVM Webinterfaces (Die Fehlermeldung).
Ich hab ganz vergessen zu erwähnen, dass mein AVM Webinterface nicht auf Port 80 läuft, sondern jenseits der 10.000 (Portnummer).
Deswegen gibt es bei mir keine Kollision mit der Port 80 Geschichte. Der ist also frei und benutzbar/zuweisbar.

Um also auf Port 80 weiterleiten zu können, das AVM Webinterface auf einen anderen Port "verschieben".

nvi /var/flash/ar7.cfg
Code:
websrv {
        port = "[color="red"]12345[/color]";
        https_port = "";
        read_timeout = 15m;
        request_timeout = 30s;
        keepalive_timeout = 5m;
        nokeepalive = "*";
        errordir = "/usr/www/html/errors";
        webdir = "/usr/www";
        cgidir = "cgi-bin";
        indexfn = "index.var", "index.htm", "index.html";
        users_only_for_https = yes;
        cors_allow_origins = "*.avm.de";
        cors_allow_headers = "SOAPACTION", "Content-Type", "Origin";
        cors_allow_methods = "GET", "POST", "OPTIONS";
        cors_max_age = 1d;
}
Ändern, speichern...
Code:
Exc :x
...neustarten...
Code:
reboot
 
Zuletzt bearbeitet:
Hallo und guten Abend!

Ich habe das jetzt entsprechend umgestellt, aber das war nicht der Fehler: Die obige Meldung wird nach wie vor ausgegeben. Ich kann sie nur unterdrücken, indem ich "ifconfig lan:1 down" ausführe, dann im WebIF das Forwarding einschalte, anschließend "ifconfig lan:1 192.168.1.254 up". Jetzt ist - wie oben schon beschrieben - alles wunderbar und alles läuft...bis zum nächsten Reboot. Ich gehe mal davon aus, dass das eine neu eingeführte Sicherheitsfunktion von avm ist, denn mit der Firmware davor hat das alles noch funktioniert (auch mit der 7270v2).

Das Umkonfigurieren des WebIF von Port 80 auf Port xx hat scheinbar auch noch zur Folge, dass FritzCall auf meinem Satelliten-Receiver nicht mehr auf die Fritz!Box zugreifen kann (zwecks Monitoring).

Weiß jemand noch Rat?
 
Ja, ich geb nicht so schnell auf. ;)

Wenn es jetzt noch darum geht die Forward Regel an/aus zu machen, dann hab ich noch den hier...
Shellskriptfunktion
Code:
fw_activate () {
if [ $# -eq 2 ] ; then
ctlmgr_ctl w forwardrules settings/rule${1}/activated ${2}
fi
}
Wobei das erste Argument der Listeneintrag, angefangen bei 0 und das Zweite 0 (aus) oder 1 (an).
Das siehst du auch im Webinterface, angehakt oder nicht.
Beispiel: fw_activate 0 0
Deaktiviert den ersten Listeneintrag.
 
Hehehe, danke Dir!! Nach so einer Funktion habe ich gesucht, die kannte ich noch nicht. Es funktioniert, allerdings nur wenn ich ein sleep 40 einbaue, bevor ich Deine Funktion aufrufe. Wäre natürlich sicherer, wenn man abfragen könnte, ob die Fritz!Box schon so weit ist.

Fällt Dir dazu auch noch etwas ein?
 
Code:
      while [ `ctlmgr_ctl r dslstatglobal status/isrunnung` != '1' ] ; do sleep 2; done
      sleep 10
      fw_activate 1 1

klappt leider nicht, der Status wird zu schnell auf 1 gesetzt, ca. 40 Sek. bevor "DSL ist verfügbar (DSL-Synchronisierung besteht mit 16805/923 kbit/s)." ausgegeben wird.
 
Moin

Oder die while Schleife solange laufen lassen, bis...
Code:
ctlmgr_ctl r dslstatistic status/ifacestat0/ipaddr
...nicht 0 ist, oder...
Code:
ctlmgr_ctl r dslstatistic status/ifacestat0/connection_status
...gleich "connected"

EDIT: Backticks sind nicht empfehlenswert, so gehts auch...
Code:
[ $(ctlmgr_ctl r dslstatistic status/ifacestat0/ipaddr) != "0" ] && echo "da" || echo "nicht da"
Code:
[ $(ctlmgr_ctl r dslstatistic status/ifacestat0/connection_status) == "connected" ] && echo "da" || echo "nicht da"
 
Zuletzt bearbeitet:
OK, ich werd's heute Abend mal ausprobieren.

Hast Du vielleicht noch einen Tip, wie man ein Portforwarding zu verschiedenen Applikationen/Servern realisieren kann? Da mir nur Port 80+443 zur Verfügung stehen (443 fest für das fritzbox WebIf) und ich dahinter mehrere "Server" laufen habe, auf die ich über den verbleibenden Port 80 zugreifen möchte, kann ich derzeit nur manuell über das WebIf zwischen den versch. Zielports hin- und herschalten. Ich habe mal gelesen, dass das mit nem apache2 und/oder Domain forwarding klappt. Gibt es noch einen anderen schönen Weg? Mir reicht auch ein Stichwort nach dem ich suchen kann!

Danke Dir!
 
Mit Apache Konfiguration kenn ich mich jetzt nicht so dolle aus.
Mit meinen busybox httpd geht sowas ganz ohne Portforwarding.
httpd.conf
Code:
P:/xml/:http://localhost/
So kann ich über ein "virtuelles" Verzeichnis (/xml/) auf einen HTTP Server zugreifen der auf localhost läuft.
(localhost von Serverseite gesehen)
Wo der Server steht ist egal.
Hauptsache erreichbar und der Port kann auch angegeben werden.
Code:
P:/xml/:http://localhost:81/
Das nennt sich: Reverse Proxy
 
Zuletzt bearbeitet:
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.