Linux 15.038 Themen, 107.129 Beiträge

Spezifische Firewall regel löschen

Synthetic_codes / 4 Antworten / Baumansicht Nickles

Moinsen allseits.
Ich schreibe derzeit an einem PRoxy, der das arbeiten mit UMTS vereinfachen soll.
Jetzt habe ich folgendes Problem: Der Proxy sitzt auf meinem UMTS Router. Beim Start der Software erstellt er eine Firewallregel in der iptables-PREROUTING Chain, mit der alle Datenpakete mit Ziel-Port 80 auf 127.0.0.1:81 umgeleitet werden.(80 ist das Webinterface des routers daher 81).

Nun möchte ich bei beendigung des tools diese Firewall-regel wieder löschen lassen. Bisher habe ich es so gelöst, dass ich die Firewall einfach neu gestartet habe, was die betreffende Regel natürlich wieder löscht, aber dennoch ca 10 sekunden zeit kostet. Nun gibt iptables mir ja die option -D/--delete an. Ich habe versucht die regel exakt so zu formulieren, wie ich sie beim einrichten formuliert habe nur eben mit -D statt -A. Tut ned, was tu ich falsch tun?

'); DROP TABLE users;--
bei Antwort benachrichtigen
the_mic Synthetic_codes „Spezifische Firewall regel löschen“
Optionen

Das müsste so eigentlich funktionieren. Bekommst du eine Fehlermeldung (Bad Rule Error)? Welchen Return-Wert ergibt der iptables -D Befehl? Das kannst du abfragen, indem du direkt nach iptabled -D den Befehl echo $? ausführst. Eine Rückgabe von 0 heisst, dass der Befehl korrekt beendet hat, alles andere lässt auf einen Fehler schliessen (aber Achtung, 0 schliesst einen Fehler nicht zwingend aus ;-) ).

cat /dev/brain > /dev/null
bei Antwort benachrichtigen
Synthetic_codes the_mic „Das müsste so eigentlich funktionieren. Bekommst du eine Fehlermeldung Bad Rule...“
Optionen

hmm, iptables quittiert stumm, was eigentlich erfolg bedeutet. Die regel ist nach dem Löschen derselben jedoch immernoch aktiv

iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-ports 81

damit erstelle ich die regel.
Bisher versuchte ich sie mit

iptables -t nat -D PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-ports 81

zu löschen. echo $? gibt nur eine leere ausgabe.

'); DROP TABLE users;--
bei Antwort benachrichtigen
the_mic Synthetic_codes „hmm, iptables quittiert stumm, was eigentlich erfolg bedeutet. Die regel ist...“
Optionen

Ich hab das kurz bei mir getestet. Das Einfügen erstellt die Regel merkwürdigerweise zwei Mal. d.h. um sie zu entfernen, muss ich iptables -D auch zweimal aufrufen, um beide Instanzen der Regel zu löschen. Prüf mal, wie sich das bei dir verhält.

cat /dev/brain > /dev/null
bei Antwort benachrichtigen
Synthetic_codes the_mic „Ich hab das kurz bei mir getestet. Das Einfügen erstellt die Regel...“
Optionen

hmm, okay das war mir gar nicht aufgefallen. Aber du hast recht, ein zweites mal löschen bringt den gewünschten erfolg.

Verstehe ein anderer aber hauptsache es funktioniert :-P

Thx

'); DROP TABLE users;--
bei Antwort benachrichtigen