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.
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:
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.