IP / IP-Range per iptables geblockt - Haben aber noch Zugriff!

  • Thread starter Thread starter Deleted member 11625
  • Start date Start date
D

Deleted member 11625

Guest
Ich setze Debian 5 ein. Bisher hat folgende Anweisung immer funktioniert:

iptables -A INPUT -s 46.4.0.0/16 -j DROP

(in dem Fall das Sperren einer ganzen IP-Range).

Neuerdings geht das nicht mehr, die IPs haben noch Zugriff. Auch wenn nur eine einzige IP angegeben ist, funktioniert der Zugriff immer noch.

Muss ich evtl. zwingend das Protokoll angeben? Jetzt sagt mir iptables "all". Sollte doch alle Protokolle sperren, oder nicht?

Wo liegt mein Fehler? Oder kann es sein, dass die Anweisung nach einiger Zeit irgendwie ungültig wird, obwohl "iptables -L" mir diese noch anzeigt?
 
Last edited by a moderator:
Wahrscheinlich gibt es noch eine andere Regel, welche den Zugriff wieder erlaubt.
Ist die IP auch in dem Range enthalten?
Wie sehen denn die anderen Regeln aus?

Schon mal alle Regeln (iptables -X, iptables -F) gelöscht und nur die eine angelegt und es getestet?
 
Es könnte sein, dass die IP-Range bereits vorher eine iptables-Regel matcht. Dann werden alle danach folgenden ignoriert. Wenn die IP zuerst auf ein ACCEPT trifft, so ist der Zugriff erlaubt. Egal ob später noch ein DROP folgt oder nicht.
 
Danke für eure schnellen Antworten. Ich glaube, wstuermer hat den entscheidenden Hinweis gegeben.

Ich sehe bei "iptables -L" über meinen gesperrten IPs folgende Anweisung:
Code:
ACCEPT     all  --  anywhere             anywhere

Das wird dann wohl bedeuten, dass alles danach ignoriert wird, oder?

Was passiert, wenn ich eine neue Chain für die IPs anlege, wird die dann immer beachtet? Oder werden weitere Chains erst nach der INPUT-Chain bearbeitet?
 
Du solltest dir ein gescheites Firewall-Script schreiben, was erst alles störende blockt und dann explizit die benötigten Ports freigeben. So kannst du die Input-Policy auf DROP setzen und kannst das Script bei Bedarf erweitern.
Vorteil ist, dass du das in den Init-Prozess einbinden kannst und somit reboot-fest hast.
 
Das mit dem Firewall-Skript war quasi mein geplantes Vorhaben.

Es ist so, dass auf meinem Server die Verwaltungssoftware "Plesk" installiert ist (ja, ja, ich weiß... ;) ). Diese hat ein Firewall-Modul und führt bei Systemstart einige Anweisungen aus. Genauer gesagt werden ungültige Pakete "gedroppt", Ports werden gesperrt usw. Am Ende kommt dann diese ACCEPT-Anweisung.

Dann habe ich mir aber, weil ich das Plesk-Skript nicht frei anpassen kann, ein eigenes Skript geschrieben, welches ich nach dem Systemstart bisher manuell ausführe.

Mir war bis jetzt nicht bewusst, dass meine neuen Anweisungen aus meinem eigenen Skript in der Chain ÜBER den Plesk-Anweisungen stehen müssen bzw. mal mindestens über der ACCEPT-Anweisung.

Nach euren Antworten ist mir nun endlich auch klar, warum man bei iptables von "Chains" spricht. ;)

Ich werde mein Firewall-Konzept nun nochmal komplett überdenken.

Nochmals danke!
 
Back
Top