Mit Iptables den gasammten Netzwerk gesperrt

Lenny28

New Member
Habe bei einer Fehlersuche statt Iptables -L das -F verwendet, dadurch habe ich das gesamte Netzwerk gesperrt. Der Server ist nicht mehr zu erreichen, ich komme nur noch per Rescue-Modus drauf.

Hier wird wohl das Modul nicht geladen und kann die Sperrung nicht aufheben:
Code:
iptables -F -t nat
bash: grml:/etc/ssh#: No such file or directory
grml:/etc/ssh# FATAL: Could not load /lib/modules/2.6.31-grml64/modules.dep: No such file or directory
iptables v1.4.2: can't initialize iptables table `nat': iptables who? (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
bash: FATAL:: command not found

Wie kann ich diese Regel wieder aufheben?

Danke im Voraus.

Gruß Lenny
 
Sollte das ganze bei einem Neustart nicht von alleine wieder weg gehen, wirst du dir wohl ein Skript bauen müssen, was es bei einem Neustart bereinigt. Das Skript fügst du dann über die Rescuconsole ein, und lässt es beim Starten des Servers ausführen.
 
Nein leider nicht.

Ich habe aber in diesem Modus Iptables mit --purge deinstallieren können und wenn er jetzt wieder startet kann ich es ja wieder drauf installieren, mal sehen obs klappt.

Gruß Gero

Edit: So habe es dann hinbekommen, erst iptables deinstalliert und neu installiert im diesem Modus und dann wollte es immer noch nicht und dann habe ich meinen Server angepingt und fest gestellt dass nicht alle IP-Adressen davon betroffen waren und so konnte ich ganz normal ins Terminal und die Iptables ab fragen mit -L -V machen und sah das durch den Befehl -F mein Blockhos alles blockiert hatte, diesen konnte ich dann mit Hilfe von Webmin (Linux Firewall) löschen und das Netzwerk neustarten.

Und mein Fehler beim restarten des Netzwerkes ist auch weg, was der ganze Ursprung dieses Problem war.
 
Last edited by a moderator:
Ein Tip für die Zukunft:
Wenn du schon auf nem Produktivsystem mit Iptables spielts, dann mach dir doch nen Cronjob, der zu jeder vollen Stunde deine Iptables-Regeln Resettet. Sollte dir also mal ein Fehler in die Quere kommen, löst der Server das Problem von alleine. Wenn dann alles klappt, haut man den Cronjob wieder in die Tonne.
 
Brauche ich nicht, ich habe mir die Linux Firwall unter Webmin eingerichtet, damit komme ich sehr gut zu Recht, zudem kenne ich mich auch etwas aus, sonst hätte ich das Problem heut nicht alleine gelöst bekommen, nur manchmal braucht man mehrere Anläufe um die Lage besser zu überdenken.

Und gespielt hatte ich nicht, ich hatte mich vertippt.

Danke aber trotzdem.

Gruß lenny.
 
Ich wollte gar nix andeuten, nur ein Tool aufzeigen was jedem (auch erfahrenen) Admins bestimmt schon gute Dienste geleistet hat.

Dass es ein Tippfehler war mag sein, aber dass das Deinstallieren von iptables wie das Rumstrampeln kurz vorm Untergehen aussieht ist nicht zu verneinen ;) Klar lädt er die Regeln von irgendwoher, solang die Binaries da sind. Wie soll das Ausführen von iptables im Resuce da helfen? Solang man den Befehl der die Regeln im eigentlichen System lädt sein lässt?

Und Webmin... naja... :rolleyes:

Immerhin ehrt Dich die scheinbare Policy DROP in Deinem iptables -- ein Zeichen dass doch nicht alles verkehrt ist. Aber vielleicht wurde das ja auch einfach von webmin gesetzt ;)
 
Ja ich weis das mit dem Webmin ist nicht die beste Lösung, erleichtert mir aber etwas die Arbeit neben der Bearbeitung mit dem Terminal. Ich bin kein Profi, aber auch kein Anfänger.

Wobei das Webmin nur wegen seine Sicherheitsrisiken schlecht ist, sonst ist hier nichts einzuwenden, hätte ich hier was gegen die Grafikdarstellung, dürfte ich zu Hause auch kein Grafischen Betriebssystem wie bei Windows oder Linux verwenden. Ich kenne das nur zu gut, mein erster Rechner war im Jahr 1984 und damals hatte ich den Comodore C128 mit 64er Modus, hier musste man auch alles per Befehl eingeben und arbeitet mit Basic und Dos zusammen.

Das mit dem deinstallieren war ein versuch und ist ja nichts schlimmes dabei, das ganze Problem war nur das im Rescue-Modus bestimmte lib Dateien worauf sich das iptables bezieht nicht richtige oder gar nicht arbeiten, so das ich in diesem Modus nicht wie gewohnt die Iptables Reglen abrufen und löschen konnte. Das ganze hatte mit Blockhosts zu tun, denn als ich später doch noch normal ohne Rescue-Modus rein kam, konnte ich ihn als Übeltäter ausmachen und sein Eintrag rauslöschen. Ich konnte mich also nicht mehr per Terminal normal als Root einloggen.

Normalerweise steht bei ihm die IP-Adresse und das Drop oder Reject dabei, beide waren nicht vorhanden, man ist auch gar nicht mehr auf dem Server gekommen, es gab daher weder eine Anzeige das die Seite nicht geladen worden ist oder dass man kein Zutritt hatte. Die Server Ips die ich habe waren alle gesperrt, so dass jeder Aufruf in einem Timeout ging.

Das deinstallieren und neu installieren hatte am Ende auch nichts gebracht, denn dadurch hatte sich nichts gebessert. Ich kann dir nicht sagen wie und warum, aber später bei den ganzen versuchen pingte ich meine IP-Adressen an und fand heraus dass eine IP-Adresse nicht gesperrt war und konnte mich hier als Root ganz normal per Terminal einloggen.

Aber egal, ich hab es ja hin bekommen, sicherlich hätte es hier auch andere Wegen gegeben, aber wie sagt man, alle Wege führen nach Rom.

Gruß Lenny
 
Last edited by a moderator:
Im Rescue hättest Du die Regeln des eigentlichen Systems sowieso nicht gesehen bzw. ändern können, egal op iptables nun da gewesen wäre im Rescue oder nicht. Mehr wollte ich nicht sagen.
 
So, ich habe mich mal schlau gemacht, bei diesem Iptables -F sollen eigentlich die Roules der Firewall Resetet werden, also sollte hier eigentlich keine Sperre vorkommen.

Wie ich bin, musste ich es natürlich nochmals testen um sicher zugehen dass es doch nicht was anderes sein konnte und siehe da er sperrte wieder alle meine Ip-Adressen des Servers.

Diesmal ging ich anders vor, ich führte auf der Konsole meines Kundendienst des Providers ein Neustart durch und wartete etwas. Diesmal pingte ich gleich meine 3 IP-Adressen ab. Und siehe da, nach dem neustart war meine Haupt IP- Adresse nicht mehr gesperrt, wahrscheinlich läuft da schon vom System aus so ein Script, das die Sperre aufhebt. Es waren also nur die zwei zusätzlichen IP-Adressen gesperrt die ich noch habe. Hätte ich beim ersten mal auch so machen müssen.

Wie ich bereits sagte habe ich eine Linux Firewall unter Webmin am laufen, so dass diese noch auf die anderen zwei IP-Adressen griff, diese auch Resetet, war wieder alles frei.

Also greift beim Reset mit iptables die Firewall des Webmin ein, dass mich hier raus wirft.

Sollte jetzt nur eine kleine Aufklärung zu meinen neuen Erkenntnisse sein. Ich bleibe aber bei meiner Linux Firewall, denn dort habe ich es einfacher Regeln zu erstellen und die gleichen Befehle die ich im Terminal mit iptables eingeben kann, kann ich auch in der etc/iptables.up.rules manuell eintragen.

Dort habe ich auch das ganze Osteuropa und die USA gesperrt, außer bestimmte Bots die ich benötige sind frei.

Gruß und frohes neues Jahr
Lenny
 
Iptables -F resettet zwar Iptables, aber nicht die Hauptregeln. Wenn du also ein INPUT DROP und ein OUTPUT DROP drinnen stehen hast, dann resettet dir Iptables nur die kleinen Regeln, also wenn du Beispielsweise alles geschlossen hast, und Port 80 freigegeben hast, wird die Regel für Port 80 resettet. Die Masterregel beliben aber, und stehen somit auf DROP. Deshalb schmeisst dich dein Server raus.
 
Danke für deine Antwort, jetzt ist mir alles klar.:)

Und das ist ja in meiner Linux Firewall vorhanden, erst alles sperren und dann nur dass öffnen was gehen soll und da sind die SSH Ports auch mit dabei, da diese bei mir nicht auf Standard laufen.

Gruß Lenny
 
Last edited by a moderator:
Ich habe im Rescue Mode iptables aus dem Verzeichnis /etc/init.d/ in ein anderes Verschoben und dann nach dem Neustart die iptables Datei wieder eingefügt.

Dabei wurden die Einstellungen gelöscht....
 
Ich habe im Rescue Mode iptables aus dem Verzeichnis /etc/init.d/ in ein anderes Verschoben und dann nach dem Neustart die iptables Datei wieder eingefügt.

Dabei wurden die Einstellungen gelöscht....

Allein deswegen wurden sie ganz sicher nicht gelöscht.
Kopier es wieder hin und beim Neustart sind se wieder da :)
 
Last edited by a moderator:
Back
Top