Der Anfängerleitfaden für IPTables-Befehle (Linux-Firewall)
Wenn Sie Computer eine Zeit lang verwenden, müssen Sie mit dem Wort "Firewall" vertraut sein. Wir wissen, dass die Dinge von der Oberfläche her komplex erscheinen, aber in diesem Tutorial werden wir die Grundlagen von IPTable und die Verwendung grundlegender Befehle erklären, damit Sie auch dann von diesem Leitfaden profitieren können, wenn Sie ein Netzwerkstudent sind oder tief in Netzwerke eintauchen möchten.
Was ist IPTables?
Die Funktionsweise der Firewall ist recht einfach. Es schafft eine Barriere zwischen vertrauenswürdigen und nicht vertrauenswürdigen Netzwerken, damit Ihr System vor bösartigen Paketen geschützt ist.
Aber wie werden wir entscheiden, was sicher ist und was nicht? Standardmäßig erhalten Sie einige Berechtigungen, um Regeln für Ihre Firewall einzurichten, aber für eine detailliertere Überwachung von ein- und ausgehenden Paketen sind IPTables das, was Sie am meisten benötigen.
IPTables kann für Personal Computing oder auch für das gesamte Netzwerk verwendet werden. Mit IPTables werden wir eine Reihe von Regeln definieren, nach denen wir ein- oder ausgehende Netzwerkpakete überwachen, zulassen oder blockieren können.
Anstatt uns nur auf den gesamten theoretischen Teil zu konzentrieren, werden wir nur das diskutieren, worauf es in der praktischen Welt ankommt. Beginnen wir also damit, die Kernkonzepte von IPTables zu verstehen.
Das Konzept von IPTables verstehen
Bei der Diskussion über IPTables müssen wir 3 Begriffe verstehen: Tabellen, Ketten und Regeln. Da dies die wichtigen Teile sind, werden wir jeden von ihnen besprechen.
Beginnen wir also mit Tabellen.
Tabellen in IPTables
Es gibt 5 Arten von Tabellen in IPTables, auf die jeweils unterschiedliche Regeln angewendet werden. Beginnen wir also mit der gebräuchlichsten Tabelle "Filer".
- Filtertabelle – Dies ist die Standard- und Haupttabelle bei Verwendung von IPTables. Das bedeutet, dass immer dann, wenn Sie beim Anwenden von Regeln eine bestimmte Tabelle nicht erwähnen, diese auf die Filtertabelle angewendet werden. Wie der Name schon sagt, besteht die Rolle der Filtertabelle darin, zu entscheiden, ob die Pakete ihr Ziel erreichen dürfen oder ob ihre Anforderung abgelehnt werden soll.
- NAT (Network Address Translation) – Wie der Name schon sagt, ermöglicht diese Tabelle den Benutzern, die Übersetzung von Netzwerkadressen zu bestimmen. Die Aufgabe dieser Tabelle besteht darin, zu bestimmen, ob und wie die Quelle und das Ziel der Paketadresse geändert werden sollen.
- Mangle Table – Diese Tabelle ermöglicht es uns, die IP-Header von Paketen zu ändern. Sie können z. B. die Gültigkeitsdauer so anpassen, dass Netzwerk-Hops, die das Paket aufrechterhalten kann, entweder verlängert oder kurzgeschlossen werden. In ähnlicher Weise können auch andere IP-Header nach Ihren Wünschen geändert werden.
- RAW-Tabelle – Die Hauptverwendung dieser Tabelle besteht darin, Verbindungen zu verfolgen, da sie einen Mechanismus zum Markieren von Paketen bietet, um Pakete als Teil einer laufenden Sitzung anzuzeigen.
- Sicherheitstabelle – Mit der Sicherheitstabelle können Benutzer interne SELinux-Sicherheitskontextmarkierungen auf Netzwerkpakete anwenden.
In den meisten Anwendungsfällen haben die letzten 2 Typen (RAW und Security) der Tabelle nicht viel zu tun und nur die ersten 3 Optionen werden als Haupttabellen gezählt.
Lassen Sie uns nun über Ketten sprechen.
Ketten in IPTables
Sie verhalten sich an Punkten in der Route des Netzwerks, an denen wir Regeln anwenden können. In IPTables haben wir 5 Arten von Ketten und werden jede von ihnen besprechen. Beachten Sie, dass nicht jeder Kettentyp für jeden Tabellentyp verfügbar ist.
- Pre-Routing – Diese Kette wird auf jedes eingehende Paket angewendet, sobald es in den Netzwerk-Stack gelangt ist, und diese Kette wird verarbeitet, noch bevor eine Routing-Entscheidung bezüglich des endgültigen Ziels des Pakets getroffen wurde.
- Eingabekette – Dies ist der Punkt, an dem ein Paket in den Netzwerkstapel eintritt.
- Forward Chain – Dies ist der Punkt, an dem das Paket durch Ihr System weitergeleitet wurde.
- Ausgabekette – Die Ausgabekette wird auf das Paket angewendet, wenn es durch Ihr System stammt und versendet wird.
- Post-Routing – Dies ist das komplette Gegenteil der Pre-Routing-Kette und wird auf weitergeleitete oder ausgehende Pakete angewendet, sobald die Routing-Entscheidung getroffen wurde.
Jetzt gibt es nur noch Regeln zu besprechen, und es ist die einfachste von den 3, die wir hier besprochen haben. Lassen Sie uns also das vervollständigen, was vom theoretischen Teil übrig bleibt.
Regeln in IPTables
Regeln sind nichts anderes als die Menge oder einzelne Befehle, mit denen Benutzer den Netzwerkverkehr manipulieren. Sobald jede Kette in Aktion tritt, wird das Paket anhand definierter Regeln überprüft.
Wenn eine Regel die Bedingung nicht erfüllt, wird sie zur nächsten übersprungen, und wenn sie die Bedingung erfüllt, wird die nächste Regel durch den Wert des Ziels angegeben.
Jede Regel besteht aus zwei Komponenten: der übereinstimmenden Komponente und der Zielkomponente.
- Passende Komponente – Es handelt sich um unterschiedliche Bedingungen zum Definieren von Regeln, die nach Protokoll, IP-Adresse, Portadresse, Schnittstellen und Headern abgeglichen werden können.
- Zielkomponente – Dies ist eine Aktion, die ausgelöst wird, sobald die Bedingungen erfüllt sind.
Dies war der Erklärungsteil und jetzt werden wir grundlegende Befehle im Zusammenhang mit IPTables in Linux behandeln.
Installieren der IPTables-Firewall unter Linux
In modernen Linux-Distributionen wie Pop!_OS ist IPTables bereits vorinstalliert, aber wenn Ihrem System das IPTables-Paket fehlt, können Sie es einfach installieren, indem Sie die folgenden Anweisungen befolgen:
Verwenden Sie den folgenden dnf-Befehl, um IPTables auf RHEL-basierten Linux-Distributionen wie Rocky Linux, AlmaLinux und CentOS Stream zu installieren.
$ sudo dnf install iptables-services
Wichtig: Wenn Sie Firewalld verwenden, müssen Sie es deaktivieren, bevor Sie mit der Installation fortfahren. Um die Firewall vollständig zu stoppen, müssen Sie die folgenden Befehle verwenden:
$ sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld
Um IPTables auf Debian-basierten Linux-Distributionen zu installieren, verwenden Sie den folgenden apt-Befehl.
$ sudo apt install iptables
Sobald Sie IPTables installiert haben, können Sie die Firewall mit den folgenden Befehlen aktivieren:
$ sudo systemctl enable iptables
sudo systemctl start iptables
Um den Status des IPTable-Dienstes zu überwachen, können Sie den angegebenen Befehl verwenden:
$ sudo systemctl status iptables
Lernen Sie die Grundlagen des IPTables-Befehls unter Linux kennen
Sobald wir mit der Installation fertig sind, können wir mit der Syntax von IPTables fortfahren, die es Ihnen ermöglicht, die Standardeinstellungen zu optimieren und nach Ihren Bedürfnissen zu konfigurieren.
Die grundlegende Syntax von IPTables lautet wie folgt:
# iptables -t {type of table} -options {chain points} {condition or matching component} {action}
Lassen Sie uns die Erklärung des obigen Befehls verstehen:
Tisch
Der erste Teil ist -t, wo wir aus 5 verfügbaren Tabellenoptionen wählen können, und wenn Sie den -t-Teil aus dem Befehl entfernen, wird die Filtertabelle verwendet, da dies der Standardtabellentyp ist.
Optionen für die Kette
Der zweite Teil ist für die Kette. Hier können Sie aus verschiedenen Kettenpunktoptionen wählen, die im Folgenden aufgeführt sind:
-A– Fügt der Kette am Ende der Kette eine neue Regel hinzu.-C– Prüft auf die Regel, ob sie die Anforderungen der Kette erfüllt.-D– Ermöglicht es Benutzern, eine vorhandene Regel aus der Kette zu löschen.-F– Dadurch werden alle vom Benutzer definierten Regeln entfernt.-I– Ermöglicht es Benutzern, eine neue Regel an der angegebenen Position hinzuzufügen.-N– Erstellt eine völlig neue Kette.-v– Wenn es mit der Listenoption verwendet wird, bringt es detaillierte Informationen.-X– Löscht die Kette.
Passende Komponente
Passende Optionen sind die Bedingung für die Überprüfung der Anforderung der Kette. Sie können aus verschiedenen Optionen wählen, von denen einige im Folgenden aufgeführt sind:
Protocols -p
Source IP -s
Destination IP -d
IN interface -i
OUT interface -o
Für TCP sind sie wie folgt:
-sport
-dport
--tcp-flags
Aktionskomponente
Wenn wir nun den Aktionsteil betrachten, hängen die verfügbaren Optionen von der Art der Tabelle ab, z. B. NAT, und die Mangle-Tabelle bietet im Vergleich zu anderen mehr Optionen. Mit action können Sie auch eine bestimmte Tabelle oder Kette als Ziel festlegen.
Die am häufigsten verwendete Aktion ist Jump (-j), die uns mehrere Optionen bietet, wie zum Beispiel:
- ACCEPT – Es wird verwendet, um Pakete zu akzeptieren und das Durchlaufen zu beenden.
- DROP – Es wird verwendet, um Pakete zu verwerfen und das Durchlaufen zu beenden.
- REJECT – Dies ist DROP sehr ähnlich, sendet jedoch abgelehnte Pakete an die Quelle.
- RETURN – Dadurch wird das Durchlaufen des Pakets in der Unterkette gestoppt und das spezifische Paket ohne Auswirkungen an die übergeordnete Kette gesendet.
Sobald wir mit der Syntax fertig sind, zeigen wir Ihnen, wie Sie IPTables einschließlich der grundlegenden Konfiguration verwenden können.
Auflisten des aktuellen Satzes von IPTables-Regeln
Wenn Sie überprüfen möchten, was standardmäßig durch Ihre Firewall passiert, ist das Auflisten eines aktuellen Regelwerks der perfekte Weg. Um angewendete Regeln aufzulisten, verwenden Sie den angegebenen Befehl:
$ sudo iptables -L
Zulassen/Verweigern des Netzwerkverkehrs an bestimmten Ports
In diesem Abschnitt zeigen wir Ihnen, wie Sie den Netzwerkverkehr für bestimmte Ports zulassen oder verweigern können. Wir zeigen Ihnen einige bekannte Ports, da wir so hilfreich wie möglich sein möchten.
Wenn Sie HTTPS-Netzwerkverkehr zulassen möchten, müssen wir den Port Nr. 443 mit dem angegebenen Befehl zulassen:
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Auf ähnliche Weise können Sie den HTTP-Webverkehr auch mit einem bestimmten Befehl deaktivieren:
$ sudo iptables -A INPUT -p tcp --dport 80 -j REJECT
Erläuterung der verwendeten Befehlsoptionen:
-pwird verwendet, um das angegebene Protokoll zu überprüfen, und in unserem Fall ist es TCP.--dportwird für die Angabe des Zielports verwendet.-jwird verwendet, um Aktionen auszuführen (Akzeptieren oder Löschen).
Steuern des Datenverkehrs mit der IP-Adresse
Ja, Sie können den Netzwerkverkehr auch von einer IP-Adresse aus steuern. Nicht nur ein oder zwei, sondern kontrollieren Sie auch den Bereich der IP-Adressen und wir zeigen Ihnen, wie es geht.
Um eine bestimmte IP-Adresse zuzulassen, verwenden Sie die angegebene Befehlsstruktur:
$ sudo iptables -A INPUT -s 69.63.176.13 -j ACCEPT
Um Pakete von einer bestimmten IP zu verwerfen, müssen Sie die angegebene Befehlsstruktur verwenden:
$ sudo iptables -A INPUT -s 192.168.0.27 -j DROP
Wenn Sie möchten, können Sie auch den Bereich der IP-Adressen steuern, indem Sie die angegebene Befehlsstruktur verwenden:
$ sudo iptables -A INPUT -m range --src-range 192.168.0.1-192.168.0.255 -j REJECT
Benutzerdefinierte Regel löschen
Manchmal können wir Fehler machen, wenn wir Regeln erstellen, und der beste Weg, diese Fehler zu überwinden, besteht darin, sie zu löschen. Das Löschen definierter Regeln ist der einfachste Prozess in diesem Leitfaden, und um sie zu löschen, müssen wir sie zuerst auflisten.
Um definierte Regeln mit Zahlen aufzulisten, verwenden Sie den angegebenen Befehl:
$ sudo iptables -L --line-numbers
Um Regeln zu löschen, müssen wir der angegebenen Befehlsstruktur folgen:
$ sudo iptables -D <INPUT/FORWARD/OUTPUT> <Number>
Nehmen wir an, ich möchte die 10. Regel aus INPUT löschen, also verwende ich den angegebenen Befehl:
$ sudo iptables -D INPUT 10
Um zu überprüfen, ob wir die Regel erfolgreich entfernt haben, müssen wir die Regeln mit dem angegebenen Befehl auflisten:
$ sudo iptables -L –line-numbers
Wie Sie sehen können, haben wir die 10. Regel erfolgreich entfernt.
Speichern definierter IPTables-Regeln
Sie fragen sich vielleicht, warum wir Regeln speichern müssen, wenn sie nach dem Anwenden einwandfrei funktionieren? Das Problem ist, dass nach dem Neustart Ihres Systems alle definierten Regeln, die nicht gespeichert wurden, gelöscht werden, daher ist es für uns von entscheidender Bedeutung, sie zu verwenden.
So speichern Sie Regeln in RHEL-basierten Distributionen:
$ sudo /sbin/service iptables save
So speichern Sie Regeln in Debian-Derivaten:
$ sudo /sbin/iptables–save
Weitere Informationen zu IPtable-Firewallregeln finden Sie in unserem ausführlichen Leitfaden unter:
- 25 nützliche IPtable-Firewall-Regeln, die jeder Linux-Administrator kennen sollte
In diesem Leitfaden haben wir versucht, die Dinge einfach zu machen, damit jeder davon profitieren kann. Dies war eine grundlegende Erklärungsanleitung zu IPTables und wenn Sie Fragen haben, können Sie diese gerne in den Kommentaren stellen.



