Debian 8 - IPTables kehrt bei jedem Paket zum Status zurück

Debian 8 - IPTables kehrt bei jedem Paket zum Status zurück

Problem: iptableskann nicht geändert werden. Auf meinem Computer kann ich ausführen iptables -F. iptables -Lzeigt an, dass es geleert ist.

Wenn Pakete in die Maschine hinein- oder hinausgehen, sind alle Regeln wiederhergestellt! Dasselbe Verhalten tritt auf, wenn ich ein ausführe iptables-restore < new_settings. Sie sind für eine Sekunde da, aber sobald ein Paket durchkommt, iptableswerden sie zurückgesetzt.

Ich benutzeDebian 8Das Betriebssystem war ein Upgrade vonDebian 7. Ursprünglich handelt es sich um den Computer einer anderen Person.

Ich habe Folgendes überprüft und dachte, es wäre eines dieser Dinge:

  • iptables-persistentist nicht vorhanden
  • /etc/iptables/ist nicht vorhanden
  • Wenn ich mir Prozesse anschaue, systemctlgibt es nicht einmal etwas mit ipim Namen

/# systemctl --all | grep ip run-rpc_pipefs.mount loaded active mounted /run/rpc_pipefs systemd-initctl.socket loaded active listening /dev/initctl Compatibility Named Pipe

  • Es ist keins # firewalldauf dem System vorhanden.

Wo können wir Dienste oder etwas finden, das Systemkonfigurationen ändert?

Antwort1

Vielleicht könnten Sie verwenden audit. Fedora aktiviert es standardmäßig und überflutet das Journal mit NETFILTER_CFG-Zeilen.

Siehe diese Frage:

Audit auf Änderungen an der laufenden iptables-Konfiguration

Im gezeigten Beispiel ist der relevante Prozess iptables, was nicht sehr hilfreich sein kann. Allerdings zeichnet es auch ppid, den übergeordneten Prozess (sowie das offensichtliche pid) auf.

Falls der übergeordnete ProzessAuchwird sofort beendet...

Sie könnten problemlos die Prozessbuchhaltung ( acctPaket) verwenden, um die Namen aller beendeten Prozesse ( lastcommBefehl) zu verfolgen. Das sind jedoch weniger Informationen, als Sie vielleicht denken. Ich denke hier an „bash“.

Es ist vielleicht besser, fatracedie geöffneten Dateien zu verfolgen, was auch die Programmausführung einschließt. Versuchen Sie einfach nicht, es z. B. durch grep zu leiten - es wird keine Ausgabe generieren, ich weiß nicht, warum.

Es gibt auch einSeite aufexecsnoop. Wenn Sie dieses Programm oder eine der darin vorgeschlagenen Alternativen verwenden können, wäre die Interpretation am einfachsten.

Technisch habe ich das nicht zugelassen fork(). Mir fällt aber kein guter Grund ein, warum Sie das fork()ohne tun sollten exec(), um Netfilter-Regeln zu erstellen.

Antwort2

Kurz zusammengefasstWenn Sie seltsame Probleme mit sich ständig ändernden Konfigurationsdateien haben, überprüfen Sie Ihre /etc/network/if-*.dDateien, falls Sie die Konfigurationen bereits überprüft haben systemd.

Es stellt sich heraus, dass eine weitere Möglichkeit, wo etwas den iptablesBefehl (oder eigentlich alles) ändern kann, in den -Ordnern liegt if-up.d, if-down.ddie Änderungen basierend auf der Internetverbindung vornehmen.

Darin /etc/network/befand sich jeweils ein Ordner für beide if-pre-up.d, if-up.d, usw.

Jeder enthält eine Reihe von Skripten, die ausgeführt werden, wenn die if-*Bedingung erfüllt ist. Wenn sich also die Internetverbindungen ändern (was auf jede Änderung in zutrifft iptables), wird ein Skript ausgeführt, das die iptables mit der Datei in /sbin/iptables-restore < /etc/network/iptableszurücksetzt .iptables/etc/network/

verwandte Informationen