So verwenden Sie iptables zum Filtern von Paketen unter Linux

Inhaltsverzeichnis

In diesem Tutorial werden wir darüber sprechen iptables, die Firewall oder Firewall, die wir in Linux haben. Dieses Tool ermöglicht es uns, Pakete zu filtern (mit denen sich das Tutorial befassen wird), einen Log-Datensatz zu generieren und NAT-Übersetzungen durchzuführen.

Dank iptables können wir ganz einfach Regeln zum Filtern von Paketen generieren, obwohl es beim ersten Gebrauch etwas verwirrend erscheinen mag, werden Sie feststellen, dass es nach einigen Tagen keine Komplikationen gibt.

Die Verwendung dieses Tools erfordert hohe Berechtigungen, dh wir müssen Superuser sein, damit es ausgeführt werden kann. Wir haben viele Funktionen in iptables, das Ziel des Tutorials ist es, eine Annäherung an seine Verwendung durch Beispiele zu sehen. Es ist wichtig, dass Sie nach Abschluss des Tutorials weitergraben, da es sehr nützlich ist.

Dann verlassen wir die offizielle Website, falls es von Interesse ist:

NotizFür IPv6 haben wir ip6tables.

Wenn wir Informationen über iptables sehen möchten, führen wir Folgendes in einem Terminal aus:

 Mann iptables
Wir sehen die folgenden Informationen:

Im Bild sehen Sie einen Teil der vom Befehl bereitgestellten Informationen. Um alles zu sehen, scrollen Sie im Terminal nach unten. Wie wir am Anfang des Tutorials gesehen haben, besteht eine der Aufgaben, die iptables uns ermöglicht, darin, Regeln oder Filter zu erstellen, um zu wissen, was mit den Paketen zu tun ist, deren Ursprung / Ziel unsere Maschine ist. Für diese Aufgabe interessiert uns, warum wir die folgenden Konzepte verwenden:

Bretter
Iptables hat mehrere Tabellen, aber für unser Tutorial konzentrieren wir uns nur auf Filtertabelle, die für die Filterung zuständig ist, wird standardmäßig in iptables verwendet.

Ketten
Die Strings, die ich hier einfügen werde, gehören zu der zuvor kommentierten Tabelle.

  • Eingang: Pakete, die für unsere Maschine bestimmt sind.
  • Ausgabe: Pakete, die von unserem System stammen.
  • Vorwärts: Pakete, die unsere Maschine durchlaufen, um an eine andere weitergeleitet zu werden.

Regeln
Wir werden die 2 angeben, die im Tutorial verwendet werden, aber es gibt noch mehr.

  • Annehmen: Pakete werden akzeptiert.
  • Tropfen: Pakete werden verworfen.

Parameter
Einige der Parameter, die wir verwenden können, sind die folgenden.

  • -Eine Regel: Um eine Regel hinzuzufügen
  • -D-Regel: Um die von uns angegebene Regel zu löschen.
  • -L: Erlaubt uns, die Regeln aufzulisten.
  • -F: Alle bestehenden Regeln löschen.
  • -j Ziel: Regeltyp festlegen (Akzeptieren, Löschen).
  • -t Tabelle: Zeigt die verwendete Tabelle an (standardmäßig Filtertabelle).
  • -p Protokoll: Wird verwendet, um das Protokoll anzuzeigen.
  • -i Schnittstelle: Wir legen die Schnittstelle für die Regel fest.
  • -S: Um den Ursprung anzuzeigen.
  • -D: Um das Ziel anzugeben.
  • -h: Zeigt Hilfe an.

Es gibt noch viele mehr, wie sie sein können --Zielhafen oder --source-port. Um alle zu sehen, können Sie den oben besprochenen Befehl ausführen:

 Mann iptables
Oder Sie können auch ausführen:
 iptables -h
NotizSie müssen sich die Optionen des Tools genau ansehen, da es zwischen Klein- und Großbuchstaben unterscheidet und wir einen Fehler machen können (es ist nicht dasselbe, es zu setzen -P das -P).

Beginnen wir mit den Beispielen, insgesamt werden 10 gesetzt, damit es besser verstanden wird und wir sehen können, wie iptables im Firewall-Modus funktioniert. In den Beispielen werden Sie kein sudo sehen, es ist nicht notwendig, wenn Sie als root sind, ansonsten müssen Sie das Wort sudo am Anfang jedes Beispiels hinzufügen.

1. Verbieten Sie die Abreise zu jedem ZielZu Beginn geben wir ein einfaches Beispiel: Verlassen Sie den Ausgang nirgendwo.

 iptables -A AUSGABE -j DROP
Dieser ist sehr einfach, wie Sie sehen können, der nächste ist noch einfacher.

2. Alle Regeln löschenWir fahren mit einem sehr einfachen Beispiel fort, lassen unsere iptables ohne Regeln, dafür führen wir aus:

 iptables -F
Nun, lass es uns im nächsten etwas komplizierter machen.

3. Verbieten Sie die Abfahrt über den Hafen 80Jetzt kümmern wir uns darum, die Ausgabe über einen bestimmten Port zu schließen, in diesem Fall ist es 80, daher können wir nicht über das http-Protokoll im Internet surfen (wenn wir zu einer https-Seite navigieren, können wir navigieren, obwohl wir dasselbe tun könnten wie 80).

 iptables -A AUSGABE -p tcp --destination-port 80 -j DROP
NotizBei Verwendung eines Ziel- oder Quellports müssen wir den Parameter -p angeben, um das Protokoll anzugeben.

Wir kommen zum vierten Beispiel.
4. Verbieten Sie die Navigation zu einer SeiteBei dieser Gelegenheit sind wir daran interessiert, den Zugriff auf die X-Seite von unserem System aus zu verbieten. Stellen wir uns vor, diese Seite sei sosolvtic.com, dafür finden wir ihre IP heraus, sehr einfach, indem wir einen Ping ausführen, um sie zu erhalten.

Und jetzt werden wir ausführen:

 iptables -A AUSGABE -d 178.33.118.246 -j DROP
Wie wir sehen, reicht es aus, Ihre IP nach dem Parameter anzugeben -D.

5. Listen Sie die bestehenden Regeln aufIn diesem Beispiel wird versucht, die Filterregeln aufzulisten, die wir derzeit definiert haben:

 iptables -L
Wir sehen ein Bild, wir haben nur zwei Regeln definiert, wie wir unten sehen:

Kommen wir zum sechsten Beispiel, in dem wir die Liste der Regeln erneut verwenden.

6. Löschen Sie eine bestimmte RegelHier werden wir ausgehend von den Regeln, die wir im vorherigen Beispiel hatten, eine der Exit-Regeln löschen, in diesem Fall die erste, die angezeigt wird, und führen Folgendes aus:

 iptables -D AUSGANG 1
Und um zu überprüfen, ob es tatsächlich gelöscht wurde, verwenden wir Beispiel 5:

Fahren wir mit mehr fort.

7. Vermeiden Sie es, angepingt zu werdenWir wollen nicht, dass sie uns anpingen, dafür werden wir den Eintrag für das ICMP-Protokoll blockieren.

 iptables -A INPUT -p ICMP -j DROP
Unten hinterlasse ich ein Bild des Pingens vor dem Ausführen des obigen Befehls und danach:

Wir können sehen, dass unser Gerät nicht antwortet, da es ICMP-Pakete ablehnt. Wenn wir die Ausgabe anstelle der Eingabe blockieren, würden wir Folgendes ausführen:

 iptables -A AUSGABE -p ICMP -j DROP
Das gleiche wie im vorherigen Bild würde wieder passieren. Zum Testen habe ich dreimal ping ausgeführt, wenn wir ausführen, können wir die Anzahl der Pakete sehen:
 iptables -L -v

Wir sehen, dass es effektiv 3 in das vorherige Bild einfügt.

8. Verhindern, dass eine IP Daten an uns sendetWir werden eine Eingabe anwenden, wir möchten nicht, dass eine bestimmte IP uns verbindet, also führen wir Folgendes aus:

 iptables -A INPUT -s 192.168.66.1 -j DROP
Betrachten wir ein etwas längeres Beispiel.

9. Erlaube Exits zu einer Reihe von IPsStellen Sie sich vor, Sie möchten nur Ausgaben an einen Bereich von IP-Adressen akzeptieren, den Rest der Ausgaben jedoch ablehnen. Wir müssen Folgendes ausführen:

 Iptables -A AUSGANG -d 192.168.0.0/24 -j AKZEPTIEREN Iptables -A AUSGANG -j DROP
NotizDie Ausführungsreihenfolge der Regeln ist wichtig, versuchen Sie dieses Beispiel mit dem Netzwerk, das Sie zulassen möchten, und stellen Sie eine Verbindung her, Sie werden sehen, dass es funktioniert, dann löschen Sie alle Regeln und führen Sie die 2 Sätze umgekehrt aus, jetzt würde es die Verbindungen ablehnen .

Kommen wir zum zehnten und letzten Beispiel.

10. Öffnen Sie Port 143 (imap)Wir werden einen Port für den Eingang aller TCP-Pakete öffnen, in diesem Fall 143 (für den Rest wäre es dasselbe).

 iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
In diesem Beispiel wollten wir verwenden --dport, damit Sie sehen können, dass wir dies verwenden können oder --Zielhafen, könnten wir auch gebrauchen --Sport anstatt --source-port.

Das Tutorial endet hier, jetzt versuchen Sie, andere Regeln anzuwenden. Je mehr Sie üben, desto schneller werden Sie beim Anwenden von Regeln sein und desto weniger kostet es Sie. Zum Abschluss hinterlassen wir ein Tutorial, das für Sie von Interesse sein könnte, das Öffnen und Schließen von Ports in Windows 10.

wave wave wave wave wave