Dieser Artikel enthält einige grundlegende Informationen zur Verwendung Ihrer iptables
Software-Firewall. Diese Firewall ist die Standard-Firewall-Lösung für auf Red Hat® Enterprise Linux® (RHEL®) 6 und CentOS® 6 basierende Distributionen.
Hinweis :Die Schritte in diesem Artikel sind nicht für die Verwendung auf RackConnect®-Servern vorgesehen. Wenn Sie Änderungen an Ihrer Firewall auf einem RackConnect-Server vornehmen müssen, müssen Sie Ihren Dedicated Firewall Manager verwenden.
Voraussetzungen
Sie müssen die folgenden Voraussetzungen erfüllen:
- Grundlegendes Verständnis von SecureShell® (SSH)
- Sudo- oder Administratorzugriff auf Ihren Server
- Ein Nicht-RackConnect-Cloud-Server mit RHEL 6 oder CentOS 6.
Was ist „iptables“ und wie funktioniert es?
iptables
ist die standardmäßige Software-Firewall-Lösung für Linux. Durch die Verwendung des Netfilter-Kernelmoduls iptables
kann den eingehenden und ausgehenden Netzwerkverkehr verarbeiten. iptables
verwendet die Regelketten, die als Teil einer Tabelle auf dem Server konfiguriert sind. Eine Tabelle gruppiert ähnliche Ketten, die eine bestimmte Aufgabe erfüllen.
Tabellen, Ketten und Regeln
Jede Tabelle hat eine Reihe von Standardketten. Dieser Artikel bezieht sich auf den Filter Tabelle, die den INPUT enthält , WEITER und AUSGABE Ketten. Die Regeln in diesen Ketten werden von oben nach unten gelesen und verarbeitet.
-
EINGABE :Diese Kette verarbeitet eingehenden Datenverkehr, der für den Server bestimmt ist.
-
WEITER :Diese Kette verarbeitet Datenverkehr, der zum Server kommt, aber für ein anderes Gerät bestimmt ist.
-
AUSGABE :Diese Kette wird für ausgehende Pakete verwendet, die vom Server stammen.
Ziele, Aktionen und Filter
Die folgende Tabelle zeigt einige grundlegende Ziele und Aktionen in iptables
wenn Datenverkehr an den Server gesendet wird:
Name | Beschreibung |
---|---|
AKZEPTIEREN | Traffic wird akzeptiert und es werden keine weiteren Regeln verarbeitet. |
DROP | Das Paket wird blockiert und es werden keine weiteren Regeln verarbeitet. Keine Antwort an Absender gesendet. |
PROTOKOLL | Die Paketinformationen werden auf dem Server protokolliert und iptables verarbeitet weiterhin Regeln. |
ABLEHNEN | Ähnlich wie das DROP-Paket, sendet aber eine Antwort an den Absender. |
Filtern | Was es tut |
---|---|
-p (protocol) | Das Protokoll des Pakets. Das angegebene Protokoll kann eines von tcp sein , udp , icmp , oder das spezielle Schlüsselwort all . |
-s, --source | Die Quell-IP-Adresse des Pakets. |
-d --destination | Das Ziel für das Paket. |
-sport | Der abzugleichende Quellport. |
-dport | Der abzugleichende Zielport. |
-i | Die Schnittstelle, an der das Paket empfangen wird. |
Die Anatomie einer Regel
Die folgende Regel ist ein Beispiel für iptables
Regel:
iptables -I INPUT -i eth0 -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
In diesem Beispiel Datenverkehr, der von der Quell-IP-Adresse 192.168.1.1
stammt , über den tcp
Protokoll wird auf eth0
akzeptiert Schnittstelle am Zielport 22
. Diese Regel wird am Anfang von INPUT
hinzugefügt Kette.
Wie funktionieren "iptables"-Regeln?
Eine Möglichkeit, den eingehenden und ausgehenden Netzwerkverkehr auf dem Server zu begrenzen, besteht darin, Firewallregeln zu implementieren. Auf einem RHEL- oder CentOS 6-Server ist die standardmäßige Software-Firewall-Lösung iptables
. iptables
ermöglicht Ihnen, eine Konfiguration einzurichten, die der einer dedizierten Firewall ähnelt, die auf Ihrem Server ausgeführt wird. Sie konfigurieren diese Regeln in einer CHAIN
je nach Regel. Dieser Artikel behandelt den INPUT
Kette, die die Standardkette ist, um Datenverkehr über iptables
zu akzeptieren .
Aktivieren und prüfen Sie den Status von „iptables“
Bevor Sie neue Regeln in iptables
hinzufügen , sollten Sie überprüfen, ob der Dienst ausgeführt wird, und die aktuellen Regeln auflisten.
Um den Status von iptables
zu überprüfen , führen Sie den folgenden Befehl aus:
service iptables status
Sie sollten eine Ausgabe erhalten, die anzeigt, dass der Dienst Active
ist auf dem Server. Falls nicht, können Sie den Dienst mit service iptables start
starten Befehl.
Nachdem der Dienst gestartet wurde, können Sie die Regeln mit dem folgenden Befehl auflisten:
iptables -L
Wenn Sie noch keine Regeln konfiguriert haben, sieht die Ausgabe ähnlich wie im folgenden Beispiel aus:
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
„iptables“-Beispiele
Die folgenden Beispiele zeigen einige Regeln in iptables
und ihre Funktionalität innerhalb von iptables
.
INSERT versus APPEND
Mit iptables
, das -I
Flag fügt die Regel am Anfang der ausgewählten Kette ein, und das -A
flag fügt die neue Regel an das Ende der ausgewählten Kette an. Dies ist wichtig, da die Regeln von oben nach unten gelesen werden. Wenn also oben eine Regel steht, die den gesamten eingehenden Datenverkehr blockiert, verwenden Sie -A
Um eine Regel anzuhängen, die Datenverkehr von einer IP akzeptiert, wird die angehängte Regel von der ersten Regel blockiert. Sie sollten die Konfiguration berücksichtigen, um festzustellen, ob -A
oder -I
ist die bessere Option für die Änderung, die auf dem Server vorgenommen wird. Überprüfen Sie immer die aktuellen Regeln, bevor Sie Änderungen vornehmen.
Eine gute Regel besteht darin, alle Regeln, die mit einem Drop enden, anzuhängen und alle Regeln einzufügen, die ein Paket akzeptieren.
Beispielbefehl | Was es tut |
---|---|
iptables -L | Dieser Befehl listet alle iptables auf Regeln. |
iptables -L --line-numbers | Dieser Befehl listet alle iptables auf Regeln und stellt für jede Regel eine Zeilennummer bereit. |
iptables -D INPUT 2 | Bei Verwendung in Verbindung mit iptables -L --line-numbers entfernt dieser Befehl die zweite Regel im INPUT Kette. Dies ist die beste Methode, um sicherzustellen, dass die richtige Regel entfernt wird. |
iptables -A INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j DROP | Diese Regel verwirft den Datenverkehr auf Port 22 von der Quell-IP durch die INPUT-Kette über TCP. Diese Regel wird an den Anfang der INPUT-Kette angehängt. |
iptables -A INPUT -s 12.345.67.89 -j DROP | Diese Regel verwirft alle eingehenden Verbindungen von der Quell-IP. Dieses Beispiel wird an den Anfang des INPUT angehängt Kette. |
iptables -D INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Dieser Befehl löscht die angegebene Regel aus dem INPUT Tisch. Sie können das -D verwenden Markierung mit einer beliebigen Kette oder Regel, aber wir empfehlen, wie oben gezeigt nach Zeilennummer zu entfernen. |
iptables -I INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Diese Regel akzeptiert Datenverkehr auf Port 22 von der Quell-IP über INPUT Kette über TCP. Diese Regel wird in INPUT eingefügt Kette. |
iptables -I INPUT -s 12.345.67.89 -j ACCEPT | Diese Regel akzeptiert alle eingehenden Verbindungen von der Quell-IP über jedes Protokoll auf jedem Port. Diese Regel wird in INPUT eingefügt Kette. |
service iptables save | Standardmäßig iptables bietet keine Beständigkeit. Mit diesem Befehl können Sie die Regeln speichern. |
service iptables reload | Dieser Befehl lädt den iptables-Dienst neu, um die Verarbeitung neuer Regeln zu ermöglichen. |
Weiterführende Literatur
Dieser Artikel berührt nur die Grundlagen von iptables
. Es gibt mehrere andere Aufgaben und Regeln, die Sie konfigurieren können, um den Zugriff auf Ihren Server zu beschränken. Weitere Informationen zu iptables
, können Sie den man
überprüfen Seite für iptables auf iptables - Linux man page.