
Suchen Sie nach einem vollständigen iptables-Tutorial? Bleiben Sie dran. In diesem Artikel zeigen wir Ihnen, wie Sie iptables auf dem Ubuntu-System installieren und verwenden. Wenn Sie sich mit diesem Linux-Firewall-Tool vertraut machen, können Sie Ihren Linux-VPS über die Befehlszeilenschnittstelle sichern.
Was ist Iptables und wie funktioniert es?
Einfach ausgedrückt ist iptables ein Firewall-Programm für Linux. Es überwacht den Datenverkehr von und zu Ihrem Server mithilfe von Tabellen . Diese Tabellen enthalten Regelsätze , genannt Ketten , das eingehende und ausgehende Datenpakete filtert.
[optin-monster-shortcode id=”fv4lqeko3gylvecpszws”]
Wenn ein Paket entspricht einer Regel , erhält es ein Ziel , die eine andere Kette oder einer dieser speziellen Werte sein kann:
- AKZEPTIEREN – lässt das Paket passieren.
- LÖSCHEN – lässt das Paket nicht passieren.
- ZURÜCK – hindert das Paket daran, eine Kette zu durchlaufen, und weist es an, zur vorherigen Kette zurückzukehren.
In diesem iptables-Tutorial werden wir mit einer der Standardtabellen namens filter arbeiten . Es besteht aus drei Ketten:
- EINGABE – steuert eingehende Pakete zum Server.
- WEITER – filtert eingehende Pakete, die woanders weitergeleitet werden.
- AUSGABE – Pakete filtern, die von Ihrem Server ausgehen.
Bevor wir mit dieser Anleitung beginnen, vergewissern Sie sich, dass Sie über SSH root verfügen oder sudo Zugriff auf Ihren Computer, der auf Ubuntu 16.04 oder höher läuft. Sie können die Verbindung über PuTTY (Windows) oder Terminal Shell (Linux, macOS) herstellen. Wenn Sie Hostinger VPS besitzen, können Sie die SSH-Anmeldedaten auf der Registerkarte „Server“ von hPanel abrufen.
Wichtig! iptables-Regeln gelten nur für ipv4 . Wenn Sie eine Firewall für die ipv6 einrichten möchten Protokoll müssen Sie ip6tables verwenden stattdessen.
So installieren und verwenden Sie die Iptables-Linux-Firewall
Wir werden dieses iptables-Tutorial in drei Schritte unterteilen. Zunächst erfahren Sie, wie Sie das Tool unter Ubuntu installieren. Zweitens zeigen wir Ihnen, wie Sie die Regeln definieren. Zuletzt werden wir Sie anleiten, dauerhafte Änderungen an iptables vorzunehmen.
Schritt 1 – Iptables installieren
Iptables ist in den meisten Linux-Distributionen vorinstalliert. Wenn Sie es jedoch nicht standardmäßig im Ubuntu/Debian-System haben, führen Sie die folgenden Schritte aus:
- Verbinden Sie sich über SSH mit Ihrem Server. Wenn Sie es nicht wissen, können Sie unser SSH-Tutorial lesen.
- Führen Sie nacheinander den folgenden Befehl aus:
sudo apt-get update sudo apt-get install iptables
- Überprüfen Sie den Status Ihrer aktuellen iptables-Konfiguration, indem Sie Folgendes ausführen:
sudo iptables -L -v
Hier das-L Option wird verwendet, um alle Regeln aufzulisten, und -v dient zum Anzeigen der Informationen in einem detaillierteren Format. Unten ist die Beispielausgabe:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Sie haben jetzt die Linux-Firewall installiert. An dieser Stelle können Sie feststellen, dass alle Ketten auf AKZEPTIEREN gesetzt sind und haben keine Regeln. Dies ist nicht sicher, da jedes Paket ohne Filterung durchkommen kann.
Mach dir keine Sorgen. Wir erklären Ihnen im nächsten Schritt unseres iptables-Tutorials, wie Sie Regeln definieren.
Schritt 2 – Kettenregeln definieren
Eine Regel zu definieren bedeutet, sie an die Kette anzuhängen. Dazu müssen Sie das -A einfügen Option (Anhängen ) direkt nach dem iptables-Befehl, etwa so:
sudo iptables -A
Es wird iptables darauf aufmerksam machen, dass Sie einer Kette neue Regeln hinzufügen. Dann können Sie den Befehl mit anderen Optionen kombinieren, wie zum Beispiel:
- -ich (Schnittstelle ) – die Netzwerkschnittstelle, deren Datenverkehr Sie filtern möchten, z. B. eth0, lo, ppp0 usw.
- -p (Protokoll ) – das Netzwerkprotokoll, in dem Ihr Filterprozess stattfindet. Es kann entweder tcp sein , udp , udplite , icmp , sctp , icmpv6 , und so weiter. Alternativ können Sie alle eingeben jedes Protokoll auszuwählen.
- -s (Quelle ) – die Adresse, von der der Datenverkehr kommt. Sie können einen Hostnamen oder eine IP-Adresse hinzufügen.
- –dport (Zielport ) – die Zielportnummer eines Protokolls, z. B. 22 (SSH ), 443 (https ) usw.
- -j (Ziel ) – der Zielname (ACCEPT , LÖSCHEN , ZURÜCK ). Sie müssen dies jedes Mal einfügen, wenn Sie eine neue Regel erstellen.
Wenn Sie alle verwenden möchten, müssen Sie den Befehl in dieser Reihenfolge schreiben:
sudo iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.> -j <target>
Sobald Sie die grundlegende Syntax verstanden haben, können Sie mit der Konfiguration der Firewall beginnen, um Ihrem Server mehr Sicherheit zu verleihen. Für dieses iptables-Tutorial verwenden wir die INPUT Kette als Beispiel.
Aktivieren des Datenverkehrs auf Localhost
Um Datenverkehr auf localhost zuzulassen, geben Sie diesen Befehl ein:
sudo iptables -A INPUT -i lo -j ACCEPT
Für dieses iptables-Tutorial verwenden wir lo oder Loopback Schnittstelle. Es wird für die gesamte Kommunikation auf dem Localhost verwendet. Der obige Befehl stellt sicher, dass die Verbindungen zwischen einer Datenbank und einer Webanwendung auf demselben Computer ordnungsgemäß funktionieren.
Aktivieren von Verbindungen auf HTTP-, SSH- und SSL-Port
Als nächstes wollen wir http (Port 80 ), https (Port 443 ) und ssh (Port 22 ) Verbindungen wie gewohnt funktionieren. Dazu müssen wir das Protokoll angeben (-p ) und den entsprechenden Port (–dport ). Sie können diese Befehle nacheinander ausführen:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Es ist Zeit zu überprüfen, ob die Regeln in iptables angehängt wurden:
sudo iptables -L -v

Es sollte mit den folgenden Ergebnissen zurückkehren, was bedeutet, dass alle TCP-Protokollverbindungen von den angegebenen Ports akzeptiert werden:
Pakete basierend auf der Quelle filtern
Mit Iptables können Sie Pakete basierend auf einer IP-Adresse oder einem Bereich von IP-Adressen filtern. Sie müssen es nach dem -s angeben Möglichkeit. Zum Beispiel, um Pakete von 192.168.1.3 zu akzeptieren , wäre der Befehl:
sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT
Sie können auch Pakete von einer bestimmten IP-Adresse ablehnen, indem Sie ACCEPT ersetzen Ziel mit DROP .
sudo iptables -A INPUT -s 192.168.1.3 -j DROP
Wenn Sie Pakete von einer Reihe von IP-Adressen verwerfen möchten, müssen Sie das -m verwenden Option und iprange Modul. Geben Sie dann den IP-Adressbereich mit –src-range an . Denken Sie daran, dass ein Bindestrich den Bereich der IP-Adressen ohne Leerzeichen trennen sollte, wie hier:
sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP
Verwerfen des gesamten anderen Traffics
Es ist wichtig, den DROP zu verwenden Ziel für den gesamten anderen Datenverkehr nach der Definition von –dport Regeln. Dadurch wird verhindert, dass eine nicht autorisierte Verbindung über andere offene Ports auf den Server zugreift. Geben Sie dazu einfach Folgendes ein:
sudo iptables -A INPUT -j DROP
Jetzt wird die Verbindung außerhalb des angegebenen Ports getrennt.
Regeln löschen
Wenn Sie alle Regeln entfernen und mit einer sauberen Weste beginnen möchten, können Sie das -F verwenden Option (spülen ):
sudo iptables -F
Dieser Befehl löscht alle aktuellen Regeln. Um jedoch eine bestimmte Regel zu löschen, müssen Sie die Option -D verwenden. Zuerst müssen Sie alle verfügbaren Regeln sehen, indem Sie den folgenden Befehl eingeben:
sudo iptables -L --line-numbers
Sie erhalten eine Liste mit Regeln mit Nummern:
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 192.168.0.4 anywhere 2 ACCEPT tcp -- anywhere anywhere tcp dpt:https 3 ACCEPT tcp -- anywhere anywhere tcp dpt:http 4 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Um eine Regel zu löschen, fügen Sie die entsprechende Kette und die Nummer aus der Liste ein. Nehmen wir an, für dieses iptables-Tutorial wollen wir Regel Nummer drei loswerden des INPUT Kette. Der Befehl sollte lauten:
sudo iptables -D INPUT 3
Schritt 3 – Fortbestehende Änderungen
Die von uns erstellten iptables-Regeln werden im Speicher gespeichert. Das bedeutet, dass wir sie beim Neustart neu definieren müssen. Um diese Änderungen nach dem Neustart des Servers dauerhaft zu machen, können Sie diesen Befehl verwenden:
sudo /sbin/iptables-save
Es speichert die aktuellen Regeln in der Systemkonfigurationsdatei, die verwendet wird, um die Tabellen bei jedem Neustart des Servers neu zu konfigurieren.
Beachten Sie, dass Sie diesen Befehl immer ausführen sollten, wenn Sie Änderungen an den Regeln vornehmen. Wenn Sie beispielsweise iptables deaktivieren möchten, müssen Sie diese beiden Zeilen ausführen:
sudo iptables -F sudo /sbin/iptables-save
Sie sehen die folgenden Ergebnisse:

Fazit
Iptables ist ein leistungsstarkes Firewall-Programm, mit dem Sie Ihren Linux-Server oder VPS sichern können. Das Tolle ist, dass Sie verschiedene Regeln basierend auf Ihren Vorlieben definieren können.
In diesem iptables-Tutorial haben Sie gelernt, wie Sie das Tool installieren und verwenden. Jetzt hoffen wir, dass Sie Ihre Regelsätze verwalten können, um ein- und ausgehende Pakete zu filtern.
Es ist Zeit, es selbst zu testen und viel Glück!