Die iptables-Firewall wird verwendet, um Paketfilterung und NAT-Regeln zu verwalten. IPTables wird mit allen Linux-Distributionen geliefert. Wenn Sie wissen, wie Sie iptables einrichten und konfigurieren, können Sie Ihre Linux-Firewall effektiv verwalten.
Das iptables-Tool wird verwendet, um die Linux-Firewall-Regeln zu verwalten. Auf den ersten Blick mögen iptables komplex (oder sogar verwirrend) aussehen. Aber sobald Sie die Grundlagen verstanden haben, wie iptables funktioniert und wie es strukturiert ist, wird das Lesen und Schreiben von iptables-Firewall-Regeln einfach sein.
Dieser Artikel ist Teil einer fortlaufenden iptables-Tutorial-Serie. Dies ist der erste Artikel in dieser Serie.
Dieser Artikel erklärt, wie iptables strukturiert ist, und erläutert die Grundlagen von iptables-Tabellen, -Ketten und -Regeln.
Auf einer höheren Ebene kann iptables mehrere Tabellen enthalten. Tabellen können mehrere Ketten enthalten. Ketten können integriert oder benutzerdefiniert sein. Ketten können mehrere Regeln enthalten. Für die Pakete werden Regeln definiert.
Die Struktur ist also:iptables -> Tabellen -> Ketten -> Regeln. Dies wird im folgenden Diagramm definiert.
Abb. :IPTables-Tabelle, -Kette und -Regelstruktur
Um es noch einmal zu wiederholen:Tabellen sind ein Bündel von Ketten und Ketten sind ein Bündel von Firewall-Regeln.
Ich. IPTABLES-TABELLEN und -KETTEN
IPTables hat die folgenden 4 eingebauten Tabellen.
1. Filtertabelle
Filter ist Standardtabelle für iptables. Wenn Sie also keine eigene Tabelle definieren, verwenden Sie die Filtertabelle. Die Filtertabelle von Iptables hat die folgenden eingebauten Ketten.
- INPUT-Kette – Eingehend an der Firewall. Für Pakete, die zum lokalen Server kommen.
- OUTPUT-Kette – Ausgehend von der Firewall. Für lokal generierte Pakete, die den lokalen Server verlassen.
- FORWARD-Kette – Paket für eine andere Netzwerkkarte auf dem lokalen Server. Für Pakete, die über den lokalen Server geleitet werden.
2. NAT-Tabelle
Die NAT-Tabelle von Iptable hat die folgenden eingebauten Ketten.
- PREROUTING-Kette – Ändert Pakete vor dem Routing. d.h. die Paketübersetzung erfolgt unmittelbar nachdem das Paket im System ankommt (und vor dem Routing). Dies hilft, die Ziel-IP-Adresse der Pakete in etwas zu übersetzen, das mit dem Routing auf dem lokalen Server übereinstimmt. Dies wird für DNAT (Destination NAT) verwendet.
- POSTROUTING-Kette – Ändert Pakete nach dem Routing. d.h. die Paketübersetzung findet statt, wenn die Pakete das System verlassen. Dies hilft, die Quell-IP-Adresse der Pakete in etwas zu übersetzen, das möglicherweise mit dem Routing auf dem Zielserver übereinstimmt. Dies wird für SNAT (Quell-NAT) verwendet.
- OUTPUT-Kette – NAT für lokal generierte Pakete auf der Firewall.
3. Mangeltisch
Die Mangle-Tabelle von Iptables ist für spezialisierte Paketänderungen vorgesehen. Dies ändert QOS-Bits im TCP-Header. Die Mangle-Tabelle hat die folgenden eingebauten Ketten.
- PREROUTING-Kette
- OUTPUT-Kette
- FORWARD-Kette
- INPUT-Kette
- POSTROUTING-Kette
4. Rohtabelle
Die Raw-Tabelle von Iptable ist für Konfigurationsausnahmen vorgesehen. Rohtabelle hat die folgenden eingebauten Ketten.
- PREROUTING-Kette
- OUTPUT-Kette
Das folgende Diagramm zeigt die drei wichtigen Tabellen in iptables.
Abb. :Integrierte IPTables-Tabellen
II. IPTABLES-REGELN
Im Folgenden sind die wichtigsten Punkte für die iptables-Regeln aufgeführt.
- Regeln enthalten ein Kriterium und ein Ziel.
- Wenn die Kriterien erfüllt sind, geht es nach den im Ziel angegebenen Regeln (oder) führt die im Ziel genannten speziellen Werte aus.
- Wenn die Kriterien nicht erfüllt sind, geht es weiter zur nächsten Regel.
Zielwerte
Im Folgenden sind die möglichen Sonderwerte aufgeführt, die Sie im Ziel angeben können.
- AKZEPTIEREN – Die Firewall akzeptiert das Paket.
- DROP – Firewall verwirft das Paket.
- QUEUE – Die Firewall leitet das Paket an den Userspace weiter.
- RETURN – Die Firewall stoppt die Ausführung des nächsten Satzes von Regeln in der aktuellen Kette für dieses Paket. Die Kontrolle wird an die aufrufende Kette zurückgegeben.
Wenn Sie iptables –list (or) service iptables status ausführen, sehen Sie alle verfügbaren Firewall-Regeln auf Ihrem System. Das folgende iptable-Beispiel zeigt, dass auf diesem System keine Firewall-Regeln definiert sind. Wie Sie sehen, zeigt es die Standard-Eingabetabelle mit der Standard-Eingabekette, Weiterleitungskette und Ausgabekette an.
# iptables -t filter --list Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Gehen Sie wie folgt vor, um die Mangle-Tabelle anzuzeigen.
# iptables -t mangle --list
Gehen Sie wie folgt vor, um die nat-Tabelle anzuzeigen.
# iptables -t nat --list
Gehen Sie wie folgt vor, um die Rohtabelle anzuzeigen.
# iptables -t raw --list
Hinweis:Wenn Sie die Option -t nicht angeben, wird die Standardfiltertabelle angezeigt. Die beiden folgenden Befehle sind also gleich.
# iptables -t filter --list (or) # iptables --list
Das folgende iptable-Beispiel zeigt, dass einige Regeln in der Eingabe-, Weiterleitungs- und Ausgabekette der Filtertabelle definiert sind.
# iptables --list Chain INPUT (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Die Regeln in der Ausgabe des Befehls iptables –list enthalten die folgenden Felder:
- num – Regelnummer innerhalb der jeweiligen Kette
- target – Spezielle Zielvariable, die wir oben besprochen haben
- prot – Protokolle. tcp, udp, icmp usw.,
- opt – Spezielle Optionen für diese spezielle Regel.
- source – Quell-IP-Adresse des Pakets
- destination – Ziel-IP-Adresse für das Paket