Port forwarding u.s.w. über shell möglich?

lier99

Neuer User
Mitglied seit
9 Sep 2005
Beiträge
29
Punkte für Reaktionen
0
Punkte
1
Kann man die Einstellung zum port forwarding auch aus der
Kommandzeile aus vornehmen? Wann ja, wie heisst das Kommando?

Danke.
 
Ja. Du mußt die Datei ar7.cfg dazu editieren. Hier finden sich die entsprechenden Einträge in der Sektion
Code:
                        forwardrules = "tcp 0.0.0.0:0 0.0.0.0:0 1 out",
                                       "udp 0.0.0.0:0 0.0.0.0:0 1 out",
                                       "udp 0.0.0.0:5060 0.0.0.0:5060",
                                       "udp 0.0.0.0:7078 0.0.0.0:7078",
                                       "udp 0.0.0.0:7079 0.0.0.0:7079",
                                       "udp 0.0.0.0:7080 0.0.0.0:7080",
                                       "udp 0.0.0.0:7081 0.0.0.0:7081",
                                       "tcp 0.0.0.0:21 192.168.2.21:21 0 # FTP-Server",
                                       "udp 0.0.0.0:1194 192.168.2.21:1194 0 # VPN",
                                       "tcp 0.0.0.0:22 192.168.2.2:22 0 # SSH",
                                       "tcp 0.0.0.0:23 192.168.2.2:23 0 # Telnet",
                                       "tcp 0.0.0.0:5031 192.168.2.2:5031 0 # NetCAPI";
wobei der letze Eintrag mit einem Semikolon abgeschlossen werden muß. Damit die Einträge aktiv werden, entweder die Box neu starten (/sbin/reboot) oder mittels des Befehls "ar7cfgchanged" die Einträge neu einlesen lassen. Die Internetverbindung wird dabei kurz getrennt.
 
wichard schrieb:
Ja. Du mußt die Datei ar7.cfg dazu editieren. Hier finden sich die entsprechenden Einträge in der Sektion
... cut.

Danke.

Ich suche nach einem Weg, ohne Reboot oder Unterbrechung irgendwelcher
Verbindungen (Telefonte, Internet, ...) a la iptables, ipfadm. (Ich weiss,
iptables kann man sich dazubauen) die forwards zu aktivieren, zu deaktivieren. z.B. um automatisch remote eine dbox mit einem neuen Image
via ftp zu versorgen.
 
Idee

lier99 schrieb:
... cut. Danke. Ich suche nach einem Weg, ohne Reboot oder Unterbrechung irgendwelcher Verbindungen (Telefonte, Internet, ...) a la iptables, ipfadm. (Ich weiss, iptables kann man sich dazubauen) die forwards zu aktivieren, zu deaktivieren. z.B. um automatisch remote eine dbox mit einem neuen Image via ftp zu versorgen.
Also ich hab das bei mir so gemacht: Da ich nur über Port 443 und proxytunnel von der Arbeit aus rauskomme und ich sowohl auf die Fritz!Box (für WOL) als auch auf meinen Heimrechner kommen muss, habe ich eine kleines Skript geschrieben, daß überwacht ob die Adresse meines Rechners (10.10.10.20) erreichbar ist.
Wenn nicht, wird mit sed dort entsprechende Eintrag in der ar7.cfg geändert und eni HUP-Signal an den dsld geschickt. Wenn der Rechner wieder online ist, wird die Regel wieder zurückgesetzt auf die 10.10.10.20. Im WOL-Skript, mit dem ich meinen Rechner aufwecke, mach ich das gleich beim Aufwecken.
Dann kann ich mich zwar nicht mehr von draussen über port 443 auf der Fritz!box einloggen, aber das geht dann ja über den PC bzw über einen anderen Port. Vielleicht hilft Dir das ja ein bisschen weiter!
 
Zuletzt bearbeitet:
elhennig schrieb:
Wenn nicht, wird mit sed dort entsprechende Eintrag in der ar7.cfg geändert und eni HUP-Signal an den dsld geschickt. Wenn der Rechner wieder online ist, wird die Regel wieder zurückgesetzt auf die 10.10.10.20. Im WOL-Skript, mit dem ich meinen Rechner aufwecke, mach ich das gleich beim Aufwecken.

Das hört sich interessant an, kannst du vielleicht mal dein Skript posten ?

Gruß .. Utahman
 
Skript

utahman schrieb:
Das hört sich interessant an, kannst du vielleicht mal dein Skript posten ?
Das Skript - portfwd genannt - sieht folgendermassen aus
Code:
ip="10.10.10.20"
while true ; do
online=true
cd /var/tmp
/usr/bin/wget http://$ip/host.ok >/dev/null 2>&1 || online=false
oldstat=`cat /var/tmp/host.stat`
if [ "x$online" != "x$oldstat" ]; then
  [ -f /var/tmp/ar7.cfg ] && rm -f /var/tmp/ar7.cfg
  cat /var/flash/ar7.cfg >/var/tmp/ar7.cfg
  if [ "x$online" = "xfalse" ]; then
    sed -e 's/\(.*\)10\.10\.10\.20\:443\(.*\)/\1192\.168\.178\.254\:443\2/g' /var/tmp/ar7.cfg >/var/flash/ar7.cfg
  else
    sed -e 's/\(.*\)192\.168\.178\.254\:443\(.*\)/\110\.10\.10\.20\:443\2/g' /var/tmp/ar7.cfg >/var/flash/ar7.cfg
  fi
  kill -HUP `cat /var/run/dsld.pid`
fi
[ -f host.ok ] && rm -f host.ok
echo $online >/var/tmp/host.stat
sleep 300
done
Ich mache das so, daß ich mir eine Datei host.ok vom Webserver auf meinem PC herunterlade. Wenn das gut geht, weiss ich, daß der Rechner verfügbar ist.
Ein einfaches Ping würde wohl auch ausreichen...

Das Skript wird wird beim Start von meinem Webserver nach /var/tmp heruntergeladen und in debug.cfg aufgerufen mit
Code:
cd /var/tmp
wget http://$surl$sdir/portfwd
chmod +x portfwd
/var/tmp/portfwd 2>&1 >/dev/null &
$surl ist der Name des Downloadrechners und $sdir das Verzeichnis darauf.
 
Danke, Scripts sagen mehr als 1000 Worte.

So long .. Utahman
 
Ich hol mal dieses Thema aus den Abgründen des Forums hoch, weil ich heute genau dei selbe Aufgabe zu bewältigen hatte. Mittlerweile geht das über ctlmrg_ctl
mit wird zB die erste Regel aktiviert
Code:
ctlmgr_ctl w forwardrules settings/rule0/activated 1

mit wird die erste Regel abgefragt:
Code:
ctlmgr_ctl r forwardrules settings/rule0/activated

http://www.wehavemorefun.de/fritzbox/Forwardrules#Aufgerufen_von
 
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.