Ubuntu iptables Wie man den Netzwerkverkehr mit Iptables steuert?

Ubuntu iptables Wie man den Netzwerkverkehr mit Iptables steuert?
"… A User-Space Unix-Dienstprogramm, mit dem Systemadministratoren die vom Kernel-Nettofiltermodul implementierten IP-Paket-Filterungsregeln konfiguriert werden können.” Iptables fungiert als Firewall, die Paketfilterregeln verwendet, die auf verschiedenen Kriterien wie IP -Adresse, Port und Protokollen basieren.

In diesem Handbuch wird erläutert, wie Sie Iptables -Regeln für ein Ubuntu -System konfigurieren und verwenden, um Ihr Netzwerk zu sichern. Unabhängig davon.

Iptables werden in Ubuntu und den meisten Debian-basierten Verteilungen vorinstalliert. Ubuntu verpackt auch Gufw Firewall, eine grafische Alternative, mit der Sie mit Iptables arbeiten können.

NOTIZ: Um Iptables zu verwenden und zu konfigurieren, benötigen Sie Sudo -Berechtigungen für Ihr System. Sie können mehr über Sudo aus dem folgenden Tutorial erfahren.

Jetzt, wo Sie wissen, was Iptables ist, lassen Sie uns direkt hineintauchen!

So verwenden Sie Iptables, um den IPv4 -Verkehr zu verwalten?

Um Iptables für IPv4 -Netzwerk und Verkehrsmanagement zu verwenden, müssen Sie Folgendes verstehen:

Der Befehl iptables

Iptables bietet eine Auswahl von Optionen, mit denen Sie Ihre Iptables -Regeln anpassen und stimmen können. Lassen Sie uns einige dieser Parameter diskutieren und sehen, was sie tun.

NOTIZ: Sie können eine Reihe von Regeln konfigurieren, die eine bestimmte Teilmenge verwalten, die als Iptables -Ketten bezeichnet wird.

Iptables Parameter

Bevor wir anfangen, Iptables -Regeln zu erstellen und zu konfigurieren.

Betrachten Sie den folgenden Befehl:

sudo iptables -i Eingabe -S 192.168.0.24 -j Drop

Der obige Befehl zeigt den Iptables an, eine Regel in der Kette zu erstellen. Die Regel lässt alle Pakete aus der IP -Adresse 192 fallen.168.0.24.

Lassen Sie uns den Befehl, Zeile für Linie, untersuchen, um ihn besser zu verstehen.

  • Der erste Befehl iptables ruft das Iptables-Befehlszeilendienstprogramm auf.
  • Als nächstes kommt das Argument, das zum Einfügen verwendet wird. Das Insertion -Argument fügt zu Beginn der Iptables -Kette eine Regel hinzu und wird somit eine höhere Priorität zugewiesen. Verwenden Sie das Argument -I, gefolgt von der Nummer, in der die Regel zugewiesen werden soll.
  • Das Argument -S -Argument hilft, die Quelle anzugeben. Daher verwenden wir das Argument -S -Argument, gefolgt von der IP -Adresse.
  • Der Parameter -J mit iptables gibt den Sprung zu einem bestimmten Ziel an. Diese Option legt die Aktion fest, die die Iptables ausführen sollen, sobald ein passendes Paket vorhanden ist. Iptables bietet standardmäßig vier Hauptziele an. Dazu gehören: Akzeptieren, Drop, Protokoll und ablehnen.

Iptables bietet eine Auswahl von Parametern, mit denen Sie verschiedene Regeln konfigurieren können. Zu den verschiedenen Parametern, mit denen Sie Iptables -Regeln konfigurieren können, gehören:

Iptables Regelparameter Beschreibung
-s -sure Geben Sie die Quelle an, die eine Adresse, ein Hostname oder ein Netzwerkname sein kann.
-P -Protokoll Gibt das Verbindungsprotokoll an; Zum Beispiel TCP, UDP usw.
-d -destination Gibt das Ziel an, das eine Adresse, ein Netzwerkname oder ein Hostname sein kann.
-J -Jump Legt die Aktion fest, die Iptables ausführen sollen.
-O -Out -Schnitt Legt die Schnittstelle fest, über die das Iptable das Paket sendet.
-I -inzwischen Legt die Schnittstelle fest, mit der Netzwerkpakete festgelegt werden.
-c -Set -Counters Ermöglicht dem Administrator, die Byte- und Paketzähler für eine bestimmte Regel festzulegen.
-G -GOTO -Kette Der Parameter gibt an, dass die Verarbeitung bei der Rückkehr in der Benutzerkette fortgesetzt werden sollte.
-F -Fragment Fordert Iptables an, die Regel nur auf die zweite und folgende Fragmente der fragmentierten Pakete anzuwenden.

Iptables Optionen

Der Befehl iptables unterstützt eine breite Palette von Optionen. Einige gemeinsame sind:

Möglichkeit Beschreibung
-A -Append Fügt eine Regel am Ende einer bestimmten Kette hinzu
-D -Delete Entfernt eine Regel aus der angegebenen Kette
-F -Flush Entfernt alle Regeln nacheinander
-L -liste Zeigt alle Regeln in der angegebenen Kette an
-Ich -einseriere Fügt eine Regel in die angegebene Kette ein (als Zahl übergeben, wenn keine Nummer angegeben ist; Regel wird oben hinzugefügt)
-C -Check Abfragen nach einer Regelung; Anforderung in einer bestimmten Regel
-V -VERBOSE Zeigt mehr Details an, wenn sie mit dem -L -Parameter verwendet werden
-N -Neukette Fügt eine neue benutzerdefinierte Kette hinzu
-X -Delete -Kette Entfernt eine bestimmte benutzerdefinierte Kette

Iptables Tabellen

Der Linux -Kernel verfügt über Standardtabellen, in denen eine Reihe von verwandten Regeln untergebracht sind. Diese Standardtabellen verfügen über eine Reihe von Standardketten. Benutzer können jedoch die Regeln anpassen, indem Sie benutzerdefinierte Regeln hinzufügen.

NOTIZ: Die Standardtabellen hängen stark von Ihrer Kernel -Konfiguration und den installierten Modulen ab.

Hier sind die Standard -Iptables -Tabellen:

1: Die Filtertische

Die Filtertabelle ist eine Standardtabelle, die Ketten enthält, die für das Netzwerkpaketfilter verwendet werden. Einige der Standardketten in dieser Tabelle umfassen:

Kette Beschreibung
Eingang Iptables verwenden diese Kette für eingehende Pakete für das System, ich.e., Pakete, die zu lokalen Netzwerkhöhlen gehen.
Ausgang Iptables verwenden die Ausgangskette für lokal erzeugte Pakete, ich.e., Pakete, die aus dem System gehen.
Nach vorne Diese Kette ist das, was die Iptables für Pakete verwenden, die über das System geleitet oder weitergeleitet werden.

2: Die Nat -Tabellen

Die NAT- oder Netzwerkadressentabelle ist ein Routing-Gerät, mit dem die Quell- und Ziel-IP-Adressen in einem Netzwerkpaket geändert werden können. Die Hauptverwendung der NAT -Tabelle besteht darin, zwei Netzwerke in einem privaten Adressbereich mit dem öffentlichen Netzwerk zu verbinden.

NAT wurde entwickelt, um die Maskierung von echten IP -Adressen zu unterstützen, sodass private IP -Adressbereiche das Erreichen des externen Netzwerks ermöglichen können. Dies hilft, Details über interne Netzwerke vor öffentlichen Netzwerken zu schützen.

Die NAT -Tabelle wird verwendet, wenn ein Paket eine neue Verbindung initiiert.

Iptables haben eine Standardtabelle für die NAT -Adressierung. Diese Tabelle hat drei Hauptketten:

Kette Beschreibung
Vorränge Ermöglicht die Änderung der Paketinformationen, bevor Sie in der Eingangskette für eingehende Pakete ankommen
AUSGANG Reserviert für Pakete, die lokal erstellt wurden, ich.e., Bevor Netzwerkrouting eintritt
Postrouting Ermöglicht die Änderung ausgehender Pakete- Pakete- die Ausgangskette verlassen

Das folgende Diagramm zeigt einen Überblick über diesen Prozess auf hoher Ebene.

Verwenden Sie den folgenden Befehl, um Ihre NAT -Routing -Tabellen anzuzeigen.

iptables -t nat -n -v -l

3: Die Mangle -Tische

Die Mangle -Tabelle wird hauptsächlich für die spezielle Änderung von Paketen verwendet. In einfachen Worten wird es verwendet, um die IP -Header eines Netzwerkpakets zu ändern. Die Änderung von Paketen kann das Ändern eines TTL -Werts des Pakets, das Ändern gültiger Netzwerkhopfen für ein Paket usw. umfassen, usw.

Die Tabelle enthält die folgenden Standardketten:

Kette Beschreibung
Vorränge Reserviert für eingehende Pakete
Postrouting Wird für ausgehende Pakete verwendet
EINGANG Wird für Pakete verwendet, die direkt auf den Server kommen
AUSGANG Verwendet für lokale Pakete
Nach vorne Reserviert für Pakete, die über das System geleitet werden

4: Die rohen Tische

Der Hauptzweck der Rohtabelle besteht darin, Ausnahmen für Pakete zu konfigurieren, die nicht vom Tracking -System behandelt werden sollen. Die Rohetabelle stellt eine Notrack -Marke für Pakete fest und fordert die ConnTrack -Funktion dazu auf, das Paket zu ignorieren.

ConnTrack ist eine Linux -Kernel -Networking -Funktion, mit der der Linux -Kernel alle Netzwerkverbindungen verfolgt und dem Kernel die Identifizierung von Paketen identifizieren kann, die einen Netzwerkfluss haben.

Der Rohtisch hat zwei Hauptketten:

Kette Beschreibung
Vorränge Reserviert für Pakete, die von Netzwerkschnittstellen empfangen werden
AUSGANG Reserviert für Pakete, die durch lokale Prozesse initiiert werden

5: die Sicherheitstabelle

Die primäre Verwendung dieser Tabelle besteht darin. Die Sicherheitsmarke kann pro Verbindung oder Paket angewendet werden.

Es wird für obligatorische Regeln für die Zugriffskontrolle verwendet und ist die zweite Tabelle, die nach der Filtertabelle zugegriffen wird. Es bietet die folgenden Standardketten:

Kette Beschreibung
EINGANG Reserviert für eingehende Pakete am System
AUSGANG Wird für lokal erstellte Pakete verwendet
NACH VORNE Wird für Pakete verwendet, die über das System geleitet werden

Nachdem wir uns die Standard -Iptables angesehen haben, gehen wir noch einen Schritt weiter und diskutieren, wie man mit Iptables -Regeln arbeitet.

Wie man mit iptables Regeln arbeitet?

Iptables Regeln werden in aufsteigender Reihenfolge angewendet. Dies bedeutet, dass die erste Regel in einem bestimmten Satz zuerst angewendet wird, gefolgt von der zweiten, dann dritten und so weiter bis zum letzten.

Aufgrund dieser Funktion verhindern Iptables Sie, Regeln in einem Satz mit dem Parameter -A hinzuzufügen. Sie müssen die -i verwenden, gefolgt von der Nummer oder durch Entleerung, um ganz oben auf der Liste hinzuzufügen.

Iptables anzeigen

Verwenden Sie, um Ihre Iptables anzuzeigen, den Befehl iptables -l -v für IPv4 und IP6Tables -l -v für IPv6.

Regeln einfügen

Um Regeln in einen Satz einzufügen, müssen Sie sie in der genauen Reihenfolge positionieren und die von derselben Kette verwendeten Regeln respektieren. Sie können die Liste Ihrer Iptables -Regeln mit dem oben erläuterten Befehl anzeigen:

sudo iptables -l -v

Um beispielsweise eine Regel einzufügen, die eingehende Verbindungen zu Port 9001 über TCP ermöglicht, müssen wir die Regelnummer an die Eingabekette angeben, die sich an Verkehrsregeln für das Web hält.

sudo iptables -i Eingabe 1 -p tcp - -dort 9001 -m staat -state neu -j Akzeptieren

Sobald Sie die aktuellen Iptables anzeigen, sollten Sie die neue Regel im Set sehen.

sudo iptables -l -v

Regeln ersetzen

Die Ersetzungsfunktionalität funktioniert ähnlich wie ein Einfügen. Es wird jedoch iptables -r -Befehl verwendet. Zum Beispiel, um die obige Regel zu ändern und Port 9001 so festzulegen, dass wir es ablehnen:

sudo iptables -r Eingabe 1 -p tcp - -dort 9001 -m Status -State New -J Ablehnung

Löschen einer Regel

Um eine Regel zu löschen, übergeben wir die Regelnummer. Um die obige Regel zu löschen, können wir beispielsweise als:

sudo iptables -d Eingabe 1

In den meisten Linux -Distributionen sind Iptables für IPv4 und IPv6 leer. Wenn Sie also keine neue Regel hinzugefügt haben, erhalten Sie eine ähnliche Ausgabe wie unten gezeigt. Das ist riskant, da es bedeutet, dass das System allen eingehenden, kontaktfreudigen und verfluchten Verkehr zulässt.

Lassen Sie uns in die Konfiguration von Iptables eingehen:

So konfigurieren Sie Iptables?

Es gibt zahlreiche Möglichkeiten, Iptables -Regeln zu konfigurieren. In diesem Abschnitt wird Beispiele verwendet, um Ihnen zu zeigen, wie Sie Regeln mit IP -Adressen und Ports festlegen können.

Blockieren und Ermöglichen von Verkehr durch Ports

Sie können einen bestimmten Port verwenden, um den gesamten Datenverkehr auf einer Netzwerkschnittstelle zu blockieren oder zuzulassen. Betrachten Sie die folgenden Beispiele:

sudo iptables -a input -J Akzeptieren Sie -p tcp -Destination -Port 1001 -i Wlan0

Die obigen Befehle ermöglichen den Datenverkehr auf Port 1001 TCP auf der WLAN0 -Schnittstelle.

sudo iptables -a input -j Drop -p tcp -Destination -Port 1001 -i Wlan0

Dieser Befehl macht das Gegenteil des obigen Befehls, da er den gesamten Verkehr auf Port 1001 auf WLAN0 blockiert.

Hier ist eine genaue Inspektion des Befehls:

  • Das erste Argument (-a) fügt am Ende der Tabellenkette eine neue Regel hinzu.
  • Das Eingabeargument fügt der Tabelle die angegebene Regel hinzu.
  • Drop -Argument setzt die Aktion, die als Akzeptieren bzw. fallen wird. Dies bedeutet, dass ein Paket, sobald es abgestimmt ist, fallen gelassen wird.
  • -P Gibt das Protokoll wie TCP an und ermöglicht den Verkehr auf anderen Protokollen.
  • -Das Zielport wird die Regel festgelegt, um alle für Port 1001 bestimmten Datenverkehr zu akzeptieren oder fallen zu lassen.
  • -Ich fordere Iptables auf.

NOTIZ: Iptables verstehen die Aliase der Netzwerkschnittstelle nicht. In einem System mit mehr als einer virtuellen Schnittstelle müssen Sie die Zieladresse manuell und explizit definieren.

Zum Beispiel:

sudo iptables -a input -j Drop -p tcp -Destination -Port 1001 -i Wlan0 -d 192.168.0.24

Whitelisting & Blacklisting IP -Adressen

Sie können Firewall -Regeln mit iptables erstellen. Ein Beispiel besteht darin, den gesamten Datenverkehr zu stoppen und den Netzwerkverkehr nur aus explizit.

Beispiel:

iptables -a Eingabe -m Zustand -State etabliert, verwandte -J Akzeptieren
Iptables -a Eingabe -i lo -m Kommentar -Coment "Lokebackverbindungen erlauben" -J Akzeptieren
Iptables -a Eingabe -p ICMP -M -Kommentar -Coment "Ping wie erwartet arbeiten lassen" -J

AKZEPTIEREN

iptables -a Eingabe -s 192.168.0.1/24 -J Akzeptieren
iptables -a Eingabe -s 192.168.0.0 -j akzeptieren
Iptables -P -Eingangsabfall
iptables -p vorwärts fallen

Die erste Zeile legt eine Regel fest, damit alle Quell -IP -Adressen in 192 zuzulassen.168.0.1/24 Subnetz. Sie können auch CIDR- oder einzelne IP -Adressen verwenden. Im folgenden Befehl haben wir die Regel festgelegt, um den gesamten Datenverkehr mit vorhandenen Verbindungen zuzulassen. In den endgültigen Befehlen setzen wir eine Richtlinie für die Eingabe und leiten Sie vor, um alle zu fallen.

Mit iptables auf IPv6 verwenden

Der Befehl iptables funktioniert nur auf IPv4. Um Iptables auf IPv6 zu verwenden, müssen Sie den Befehl ip6tables verwenden. IP6Tables verwendet RAW-, Filter-, Sicherheits- und Mangel -Tabellen. Die allgemeine Syntax für IP6Tables ähnelt Iptables und unterstützt auch die passenden Iptables -Optionen wie Anhang, Löschen usw.

Erwägen Sie, die Handbuchseiten von IP6Tables zu verwenden, um weitere Informationen zu erhalten.

Beispiel für iptables Regeln für die Netzwerksicherheit

Das Erstellen geeigneter Firewall -Regeln hängt hauptsächlich von dem in einem System ausgeführten Dienst und den verwendeten Ports ab. Hier sind jedoch einige grundlegende Netzwerkkonfigurationsregeln, mit denen Sie Ihr System sichern können:

1: Zulassen

iptables -a input -i lo -j Akzeptieren (Sie können auch ip6tables verwenden)
iptables -a Eingabe ! -I lo -s 127.0.0.0 -J Ablehnung (IP6Tables auch anwendbar)

2: Alle Ping -Anfragen verweigern

Iptables -a Eingabe -p ICMP -M -Zustand -State New -ICMP -Typ 8 -J Ablehnung

3: SSH -Verbindungen zulassen

iptables -a Eingabe -p tcp - -dort 22 -m State -State New -j Akzeptieren

Dies sind Beispielbefehle, mit denen Sie Ihr System sichern können. Die Konfiguration hängt jedoch stark davon ab, was oder auf wen Sie auf verschiedene Dienste zugreifen möchten.

VORSICHT: Wenn Sie es vorziehen, IPv6 vollständig zu deaktivieren, stellen Sie sicher, dass Sie die Linie in Überzeugung überzeugen, da dies den Aktualisierungsprozess verlangsamt:

Vorrang :: FFFF: 0: 0/96 100 gefunden in/etc/gai.Conf .

Dies liegt daran.

So bereitstellen Sie Iptables -Regeln bereit?

Um Ihre Iptables auf Ubuntu oder anderen Debian-basierten Systemen bereitzustellen, werden Sie zunächst zwei Dateien, IP4 und IP6, für ihre jeweiligen IP-Adressen erstellen.

Fügen Sie in beiden Dateien die Regeln hinzu, die Sie in ihren entsprechenden Dateien-IPV4-Regeln zu IP4-Datei- und IPv6-Regeln in IP6-Datei durchsetzen möchten.

Als nächstes müssen wir die Regeln mit dem Befehl importieren:

sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)

Anschließend können Sie überprüfen, ob die Regeln mit dem Befehl angewendet wurden:

sudo iptables -l -v

Eine schnelle iptables-persistente Anleitung

Ubuntu und gemeinsame Debian-basierte Verteilungen verfügen über ein iptables-persistentes Paket, mit dem Sie Ihre Firewall-Regeln beim Neustart problemlos anwenden können. Das Paket enthält Dateien, mit denen Sie Regeln für IPv4 oder IPv6 festlegen können, und kann beim Start automatisch angewendet werden.

Sie können auch Firewall -Regeln mit UFW oder GUFW verwenden. Betrachten Sie das folgende Tutorial, um zu erfahren, wie man UFW benutzt.

So installieren Sie Iptables-Persistent?

Stellen Sie sicher, dass Sie auf Ihrem System iptables-persistent installiert sind. Verwenden Sie DPKG, um zu überprüfen, ob das Paket installiert ist.

Wenn nicht, verwenden Sie den folgenden Befehl:

sudo apt-get install iptables-persistent

Sie werden zweimal aufgefordert, sowohl Ihre aktuellen IPv4- als auch IPv6 -Regeln zu speichern. Klicken Sie auf Ja, um beide Regeln zu speichern.

Klicken Sie auf Ja, um IPv6 zu speichern.

Sobald die Installation abgeschlossen ist.

Jetzt können Sie die Regeln verwenden.V4 und Regeln.V6 zum Hinzufügen von iptables Regeln und sie werden automatisch von iptables-persistent angewendet. Die Dateien sind einfache Textdateien, die Sie problemlos mit einem beliebigen Texteditor Ihrer Wahl bearbeiten können.

Abschluss

In diesem Tutorial haben wir die Grundlagen von iptables behandelt. Beginnend mit der Arbeit mit Iptables, grundlegenden Befehlen, Standard -Iptables -Tabellen und Parametern.

Nach dem, was Sie gelernt haben, sollten Sie in der Lage sein, Iptables zu verwenden, um Firewall -Regeln zu erstellen, mit denen Ihr System sichern.