GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gewusst wie:Grundlegende IPTables-Fehlerbehebung

Einführung

Lassen Sie uns in diesem Artikel einige grundlegende Schritte besprechen, die Sie unternehmen können, um Probleme zu beheben, die Sie möglicherweise haben, wenn Sie Ihre iptables-Regeln dazu bringen, das zu tun, was Sie möglicherweise tun sollen.

Voraussetzungen

Server mit CentOS 6.x (oder einer beliebigen Linux-Distribution)

iptables installiert und konfiguriert (für grundlegende Konfiguration siehe Grundlegende IPTables-Dateikonfiguration)

Grundlegende IPTables-Fehlerbehebung

Eine hilfreiche Ergänzung zum Erstellen Ihrer iptables-Regeln ist das Einrichten der Protokollierung. Die Protokollierung verwendet ein spezielles Ziel in der iptables-Toolbox, das ausgewählte Ausgaben an die Protokolldateien Ihres Betriebssystems (dmesg oder systemd) weiterleitet.

Auf der Kommandozeile:

sudo iptables -A INPUT -j LOG --log-prefix DROPPED-INGRESS-

Oder in Ihrer Datei /etc/sysconfig/iptables:

Beispiel für die Protokollierungssyntax

Packen wir die Syntax aus:

* ‘-A INPUT ‘ fügt diese Regel an das Ende der INPUT-Kette an. Denken Sie daran, dass die Regelreihenfolge wichtig ist. Wenn Sie diese Regel also nach einer Regel platzieren, die Datenverkehr verwirft oder ablehnt, wird sie niemals verwendet. Mehr dazu, wenn wir --log-prefix besprechen unten.

* ‘-j LOG ‘ springt zum LOG Ziel. Dieses Ziel ist ein spezielles Ziel, das als „nicht terminierendes“ Ziel bezeichnet wird. Im Gegensatz zu den am häufigsten verwendeten Zielen (wie ACCEPT , DROP , oder REJECT ), diese hindert iptables nicht daran, weitere Regeln zu parsen. Wenn diese Regel also aufgerufen wird, protokolliert sie das Paket (und kann zusätzliche Optionen ausführen, wenn dies in den folgenden Optionen angegeben ist) und fährt dann mit der Auswertung von Regeln in derselben Kette fort, bis sie auf eine übereinstimmende Regel mit einem abschließenden Ziel trifft oder bis es kommt an der letzten Regel in der Kette vorbei und folgt dem Standardziel.

* ‘--log-prefix DROPPED-INGRESS- ‘ fügt jedem Protokolleintrag die Zeichenfolge „DROPPED-INGRESS-“ hinzu. Dieser Zusatz kann hilfreich sein, um in einer langen Protokolldatei zu filtern oder danach zu suchen. Die Datei „--log-prefix ”-Option kann eine Zeichenfolge mit bis zu 256 Zeichen annehmen. Da diese Regel die letzte Regel in diesem INPUT ist Kette, wird jedes Paket protokolliert, das keiner der oben genannten Regeln entspricht und mit der Standardrichtlinie behandelt wird (in diesem Fall DROP ).

Wenn Sie sehen möchten, welche Ihrer Regeln aufgerufen werden (und, was vielleicht ebenso wichtig ist, welche nicht), können Sie einen Blick auf Ihre Paket- und Verkehrszähler werfen. Verwenden Sie das ‘-v ‘-Option zu den ‘iptables ‘ Befehl zum Anzeigen von Zählern (und auch einiger zusätzlicher Informationen):

sudo iptables -vL INPUT

oder

sudo iptables -nvL INPUT

Die Ausgabe von jedem dieser Befehle wird in den Spalten auf der linken Seite für Paket- und Bytezähler für jede Regel angezeigt. Das ‘-L ‘-Option gibt an, dass wir die Regeln aufgelistet haben wollen (beachten Sie, dass diese spezielle Option großgeschrieben wird). Das ‘-n ‘ gibt an, dass wir IPs nicht in ihre Hostnamen auflösen möchten (in längeren Listen kann diese umgekehrte Namensauflösung unnötigen Server-Overhead verursachen und Ihre Fehlerbehebung ärgerlich verlangsamen). Sie können jedes Flag separat verwenden (-n -v -L , z.B.) oder zusammen, wie oben, aber Vorsicht:Das ‘L ‘ muss an letzter Stelle stehen, da nach weiteren Eingaben in Form des Namens der aufzulistenden Kette gesucht wird (wenn nichts angegeben ist, werden standardmäßig alle Ketten in der Filtertabelle aufgelistet).

iptables -nvL INPUT Ausgabe

Beachten Sie hier, dass ich ein Paket habe, das meine Allow-All-SSH-Regel trifft, und mehrere, die das erste Allow RELATED/ESTABLISHED treffen Regel (dies würde meiner SSH-Sitzung auf diesem Server entsprechen). Ich kann auch sehen, dass meine Regeln zum Zulassen von SSH-Datenverkehr aus dem Bereich 192.168.50.0/24 keine Treffer aufweisen. Wenn also beispielsweise jemand sagte, er könne von diesem Bereich aus nicht auf diesen Server zugreifen, konnte ich sehen, dass seine Versuche es nicht einmal bis zu diesem Server schafften.

Es ist durchaus möglich, dass Ihre Paket-Byte-Zähler so hoch ansteigen, dass die Werte mit einem „K“, „M“ oder sogar „G“ am Ende abgekürzt werden, was jeweils 1000, 1.000.000 oder 1.000.000.000 entspricht. Wenn Sie trotzdem ungekürzte Zählungen sehen möchten, fügen Sie das '-x hinzu ‘Flagge:

sudo iptables -nvxL INPUT

Wenn Sie es vorziehen, sich nicht mit großen Zählzahlen herumschlagen zu müssen, können Sie Ihre Zählungen mit „-Z“ zurücksetzen (auf null). ‘-Befehl (beachten Sie auch hier, dass dieses Flag großgeschrieben wird). Sie können die Zählungen für alle Ketten, eine bestimmte Kette oder für eine bestimmte Zeile in einer Kette auf Null setzen. Jeweils:

sudo iptables -Z
sudo iptables -Z INPUT
sudo iptables -Z INPUT 1

Das letzte Beispiel würde nur die Zähler für Zeile Nummer 1 in INPUT auf Null setzen Kette.

Die Zähler würden auch jedes Mal zurückgesetzt, wenn Sie iptables neu laden (ob von einem Serverneustart oder dem Ausführen von sudo service iptables reload). Dies sind jedoch nicht die idealsten Methoden, um diese Aufgabe zu erfüllen.

Möglicherweise möchten Sie auch eine Echtzeit-Untersuchung Ihrer iptables-Zähler erhalten. Hier ist, wo die ‘watch ‘ Befehl ist praktisch. „Watch ‘ ermöglicht es uns, die gleichen Befehle zu wiederholen und die Ausgabe von Zeit zu Zeit zu beobachten (die Standardeinstellung ist alle 2 Sekunden).

sudo watch iptables -nvL INPUT

Während Sie „watch ‘ selbst erfordert keinen sudo-Zugriff, wenn der Befehl, den Sie beobachten werden, dies tut, könnten Sie ‘sudo voranstellen ' zur 'watch ‘ Befehl, um Root-Rechte für den Befehl zu haben, den Sie sehen möchten. Auch wenn Sie die beobachtete Ausgabe über so etwas wie „grep“ leiten möchten ‘, möchten Sie die gesamte Befehlszeichenfolge in einfache Anführungszeichen setzen:

sudo watch 'iptables -nvL INPUT | grep tcp'

Um „watch“ zu verlassen ‘, drücken Sie <Ctrl-C> .

Erfahren Sie mehr über unsere VPS-Hosting-Services und Virtual Private Server.


Linux
  1. So leeren Sie die iptables-Regeln

  2. Linux – Routing über Iptables?

  3. CentOS / RHEL 6:So speichern Sie iptables-Regeln

  4. CentOS / RHEL:Anleitung zur Fehlerbehebung bei iptables

  5. So öffnen Sie einen Port unter Linux

So installieren Sie Iptables unter CentOS 7

So konfigurieren Sie die iptables-Firewall unter Linux

Gewusst wie:Linux Allgemein – Grundlegende IPTables über die Befehlszeile

Gewusst wie:Grundlegende IPTables-Dateikonfiguration

So konfigurieren Sie eine Firewall auf Jelastic Cloud

So migrieren Sie CentOS/RHEL 6-iptables-Regeln auf CentOS/RHEL 7-Firewalld