GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gewusst wie:Linux Allgemein – IPTables im Allgemeinen

Einführung

IPTables ist eine Firewall, die entweder bereits installiert ist oder auf jeder unserer Linux-Distributionen für unseren Cloud-Service installiert werden kann. IPTables wird verwendet, um Paketfilter-Regelketten zu konfigurieren und die integrierten oder benutzerdefinierten Regelketten für Ihren Server durchzusetzen. IPTables hat Hauptkomponenten, die Tabellen beinhalten , Ziele und Optionen .

Tabellen

Tabellen in IPTables werden verwendet, um Pakete in ihre übereinstimmende Kategorie zu trennen. Die Tabellensortierung hängt von Modulen ab, die Ihr System geladen hat und denen das Paket entspricht. Im Moment gibt es fünf verschiedene Tabellen zur Verwendung. Sie sind Filter , nat. , mangel , roh und Sicherheit . Zum größten Teil wird die grundlegende Verwendung von IPTables nur den Filter beinhalten Tisch. Wenn Sie internes Routing oder kompliziertere Netzwerke durchführen, werden Sie sich auch auf die Verwendung der anderen Tabellen konzentrieren. Diese Seite wird nur über Filter gehen Typregeln.

filtern – Dies ist die Basistabelle, wie bereits erwähnt, und in der Regel die Standardtabelle. Diese Tabelle besteht aus den Regelketten ACCEPT, FORWARD, OUTPUT.

natürlich – Diese Tabelle wird für Pakete verwendet, die neue Verbindungen herstellen. Wie das Routing einer öffentlichen IP zu einer privaten IP. Es besteht aus den Regelketten PREROUTING, POSTROUTING und OUTPUT.

mangel – Diese Tabelle wird verwendet, um die Behandlung von Paketen zu ändern. Es besteht aus den Regelketten INPUT, FORWARD, OUTPUT, PREROUTING und POSTROUTING.

roh – Diese Tabelle wird verwendet, um Ausnahmen von der Verbindungsverfolgung mit dem Ziel NOTRACK zu konfigurieren. Es besteht aus PREROUTING und OUTPUT.

Sicherheit – Diese Tabelle ist für MAC-Regeln (Mandatory Access Control). Es besteht aus INPUT, FORWARD und OUTPUT

Ziele

Ziele werden als Wert für die von Ihnen erstellte Regelkette definiert. Sie können die Werte ACCEPT enthalten , LÖSCHEN , WARTESCHLANGE , oder RETURN . Diese Werte teilen der Regel mit, wie mit einem Paket verfahren werden soll, das der Regel entspricht.

AKZEPTIEREN – Das ist ziemlich einfach und bedeutet, dass das Paket zu Ihrem Server durchgelassen wird.

LÖSCHEN – Auch ziemlich einfach, da es bedeutet, das Paket zu Ihrem Server zu verweigern.

WARTESCHLANGE – Dieses Ziel bedeutet, das Paket in den Userspace zu leiten, damit ein Benutzer definieren kann, was damit geschehen soll.

ZURÜCK – Dieses Ziel stoppt die Verarbeitung der aktuellen Kette und weist es an, die Verarbeitung bei der nächsten Regel der vorherigen Kette fortzusetzen.

Optionen

Es gibt eine Menge Optionen für die Verwendung von IPTables. Wir werden einige der häufigsten auflisten, die Sie sehen werden.

-A, –append – Hängt Ihre Regel an eine Kette an.

-L, –list [Kette] – Dies listet alle Regeln in der von Ihnen angegebenen Kette auf. Wenn Sie keine Kette angeben, werden alle Regeln aufgelistet.

-F, –flush [Kette] – Dies entfernt alle Ketten und Regeln in der gegebenen Kette. Wenn Sie keine Kette angeben, werden alle derzeit laufenden Regeln und Ketten entfernt.

-h – Dies liefert eine Ausgabe aller Optionen, die Sie tun können.

-p, –protocol Protokoll – Dies ist das Paketprotokoll. Dies können TCP, UDP, UDPlite, ICMP, ESP, AH, SCTP, all, Zahlenäquivalente zu diesen sein oder mit einem ! um die Protokollprüfung umzukehren.

-s, –Quelladresse[/Maske][,…] – Eine Quelladresse. Kann die IP, der IP-Bereich über die Netzmaske, der Netzwerkname oder der Hostname sein.

-d, –Zieladresse[/Maske][,…] – Eine Zieladresse. Gleiches Format wie –s.

-m, –match match – Ein Erweiterungsmodul, das auf eine Eigenschaft testet.

–dport[s] [Port# ][,…] – Ein gesuchter Port. –dports wird verwendet, um mehr als einen anzugeben, die durch Kommas getrennt sind. Stellen Sie bei der Verwendung von –dports sicher, dass Sie -m als Multiport festlegen. Um einen Portbereich anzugeben, verwenden Sie ein :wie z. B. 1000:1100, was den Ports 1000–1100 entsprechen würde.

-j, –Sprungziel – Dies ist die Option, mit der Sie das Ziel für Ihre Regel angeben können.

-i, –in-Schnittstellenname – Gibt eine Schnittstelle an, auf der das Paket empfangen werden soll.

-o, –out-Schnittstellenname – Gibt eine Schnittstelle an, auf der das Paket verlassen wird.

-v, –verbose – Lässt den Listenbefehl Schnittstellennamen, Regeloptionen und alle Masken anzeigen. Zeigt auch Paket- und Bytezähler an.

Verwendung und Beispiele

Hier zeigen wir einige grundlegende Anwendungen und Beispiele. Eine typische IPTables-Regel folgt tendenziell diesen Formaten. Stellen Sie sicher, dass alle Ihre Regeln über COMMIT ausgeführt werden, da dies zum Beenden einer Tabelle verwendet wird. Regeln für eine andere Tabelle folgen ihrem eigenen Ende COMMIT.

Zum Zulassen von etabliertem Datenverkehr:

-A INPUT -m Übereinstimmung –state ESTABLISHED, RELATED -j ACCEPT

Im Einsatz wäre dies:

-A INPUT -m Status –Status ESTABLISHED, RELATED -j ACCEPT

Zum Zulassen bestimmter Ports.

-A INPUT -p Protokoll -m Übereinstimmung –dport Anschluss -j AKZEPTIEREN

In der Praxis wäre ein Beispiel:

-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT

Oder

-A INPUT -p tcp -m multiport –dports 80.443 -j ACCEPT

Dies würde Webverkehr auf Port 80 (im zweiten Beispiel auch Port 443) durchlassen. Das ist nicht alles, was Sie tun können. Sie können auch Folgendes wie in den folgenden Beispielen hinzufügen.

-A INPUT -s IPADDR -p tcp -m tcp –dport 22 -j ACCEPT

Dadurch wird nur die IP-Adresse (IPADDR ), die Sie auf Ihrem Port 22 (ssh) angeben. Sie können jede Form von IP-Adressen verwenden, die die Option -s zulässt.

-A INPUT -p tcp -m tcp –dport 22 -j DROP

Wenn Sie dem obigen Beispiel folgen, wird der gesamte TCP-Verkehr, der zu Ihrem SSH-Port fließt, gelöscht. Es ist eine gute Faustregel, alle DROP-Regeln immer ganz unten in Ihrer Liste der ACCEPT-Regeln in der Kette zu haben. Zum Beispiel:

-A EINGABE … -j AKZEPTIEREN

-A EINGABE … -j AKZEPTIEREN

-A EINGABE … -j AKZEPTIEREN

-A EINGABE … -j DROP

-A WEITER … -j AKZEPTIEREN

-A WEITER … -j AKZEPTIEREN

-A WEITER … -j AKZEPTIEREN

-A VORWÄRTS … -j DROP

-A AUSGABE … -j AKZEPTIEREN

-A AUSGABE … -j AKZEPTIEREN

-A AUSGABE … -j AKZEPTIEREN

-A AUSGABE … -j DROP

Sie können auch die Ziele (wie ACCEPT oder DROP) oben in Ihren IPTables für das Standardverhalten definieren. Wenn es sich um eine Neuinstallation von IPTables handelt, sehen Sie immer das Standardverhalten (oben definiert, wo es INPUT, FORWARD und OUTPUT auflistet) als ACCEPT. Eine gute Faustregel für die Sicherheit ist, es in DROP zu ändern und nur Regeln für die Ports oder den Datenverkehr zu erstellen, die Sie zulassen möchten. Ändern Sie es jedoch nur, wenn Sie sicher sind, dass Sie die erforderlichen Ausnahmen gemacht haben.

Außerdem können Sie oben in einer Tabelle Ihre eigenen Ziele definieren. Angenommen, Sie haben Folgendes oben in Ihren IPTables:

*filtern

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:AUSGANGSVERLUST [0:0]

VERPFLICHTEN

Jetzt, da wir alles blockiert haben, fangen wir damit an, unsere eigenen Ziele hinzuzufügen, wie zum Beispiel:

*filtern

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:AUSGANGSVERLUST [0:0]

:APP – [0:0]

:MeinNeuesZiel – [0:0]

VERPFLICHTEN

Jetzt können Sie eine benutzerdefinierte Regelkette wie die folgende erstellen.

*filtern

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:AUSGANGSVERLUST [0:0]

:APP – [0:0]

:MeinNeuesZiel – [0:0]

-A APP -p tcp -m multiport –dports 30:40,50:80 -j ACCEPT

-A INPUT -s IPADDR -j MeinNeuesZiel

-A MyNewTarget -j APP

VERPFLICHTEN

Was wir oben getan haben, ist, neue Ziele, APP und MyNewTarget, zu erstellen und ihnen Optionen und Ziele zuzuweisen. Was die letzte Regel (über COMMIT) tut, ist, wenn die Verbindung von Ihrer Quell-IP kommt und versucht, die Ports 30-40 oder 50-80 zu treffen, lassen Sie sie durch! Es ist alles in der obigen Kette definiert. Diese Anpassungsstufe ist nicht wirklich erforderlich, es sei denn, Sie verwenden mehrere Hosts oder Ports, die Sie häufig wiederholen, und möchten eher eine Abkürzung oder „Abkürzung“ zum Schreiben von Regeln. Zum Beispiel können Sie jetzt jede neue Regel, die Sie von dieser Quell-IP erhalten, einfach MyNewTarget verwenden.

Alles in allem bietet IPTables viele Anpassungsmöglichkeiten für Regeln und ermöglicht es Ihnen, zu steuern, wie Ihr Server eingehenden, ausgehenden und internen Datenverkehr behandelt. Einige Regeln können verwirrend und schwer zu befolgen sein, aber es besteht kein Zweifel, dass sie für die Serverstabilität hilfreich sind.


Linux
  1. So installieren Sie Python unter Linux

  2. So installieren Sie Java unter Linux

  3. So blockieren Sie die IP-Adresse auf einem Linux-Server

  4. Linux IPTables:So fügen Sie Firewall-Regeln hinzu (Beispiel:SSH zulassen)

  5. Linux-Betriebssystemdienst „iptables“

So installieren Sie PSAD unter Ubuntu Linux

So konfigurieren Sie die iptables-Firewall unter Linux

Gewusst wie:Linux Allgemein – Grundlegende IPTables über die Befehlszeile

Gewusst wie:Grundlegende IPTables-Fehlerbehebung

So sichern Sie eine Linux-Firewall mit IPTables-Regeln

So richten Sie eine Firewall auf Ihrem Linux-Server ein