Firewalls, Netfilter / iptables

Die zwei Dinge notwendig, um Firewalls und Quality of Service (QoS) mit Linux zu erstellen sind zwei Paketen und deren Bezeichnungen netfilter und iproute. Während netfilter ist ein Paketfilter-Rahmen, die in der Linux-Kernel 2.4 und 2.6, iproute ist ein Paket mit ein paar Programme, die Linux-Anwender erweiterte Routing-und Traffic-Shaping erlauben.
Dieser Artikel soll die Werkzeuge, die wir in diesem Artikel wird der Verwendung einzuführen. Allerdings netfilter und iproute Themen sind sehr groß, so, was ich will versuchen, in diesem Artikel tun, ist für Leser, die nicht vertraut sind mit dem Thema einzuführen, zusammen mit dem Bau einen guten Überblick für Leser, die wissen, bereits Gegenstand. Es gibt zwei Websites mit einer Vielzahl von Dokumentationen in beiden Projekten für netfilter, http://www.netfilter.org und für iproute, http://www.lartc.org.

Netfilter / iptables

  

Netfilter ist ein sehr wichtiger Teil des Linux-Kernels in Bezug auf Sicherheit, Mangling und Manipulation schützen. Die Front-End für netfilter ist iptables, die uns sagt, "den Kernel, was der Benutzer will mit der IP-Pakete kommen in zu tun, der Durchreise sind, oder aus der Linux-Box.
Die am häufigsten verwendeten Funktionen von Netfilter sind Paketfilterung und Network Address Translation, aber es gibt eine Menge anderer Dinge, die wir mit netfilter tun kann, wie Mangling Layer-7-Filterung.
Eine grobe Erklärung wie Netfilter funktioniert, ist wie folgt aus:

  • Der Anwender weist den Kernel über das, was es braucht, um mit der IP-Paketen, die Strömung durch den Linux-Rechner mit dem iptables-Tool.
  • Der Linux Rechner analysiert dann die IP-Header für alle Pakete durchströmt wird.
  • Wenn, wenn man die IP-Header findet der Kernel-Matching-Regeln, dann wird das Paket nach der passenden Regel manipuliert.

Er sieht zwar sehr einfach am Anfang, aber in Wirklichkeit ist viel komplizierter Prozess. netfilter hat ein paar Tabellen, Die jeweils einen Standardsatz von Regeln, die als Ketten sind gesetzt. Die Standard-Tabelle in den Kernel geladen wird der Filter-Tabelle, die drei Ketten enthält:

  • INPUT: Enthält Regeln für Pakete, die an dem Linux-Rechner selbst bestimmt.
  • FORWARD: Enthält Regeln für Pakete, die Linux-Maschine Routen zu anderen IP-Adresse.
  • OUTPUT: Enthält Regeln für Pakete, die von der Linux-Maschine erzeugt.

Anschließend werden die Pakete Strömung durch den Pre-Routing Kette der NAT-Tabelle, wo wir DNAT, Port-Weiterleitung, etc. tun können
Es ist nur logisch zu können Destination Network Address Translation durchführen, bevor die Routing-Prozess auftritt. Wie Sie in Artikel 4, wird sehen, wo wir diskutieren DNAT näher, DNAT den Prozess der Übersetzung eines (meist öffentlichen) IP-Adresse in eine andere (meist privat). Dies ist durch die Änderung der Ziel-IP-Adresse in der Kopfzeile der IP-Paket fertig ist. netfilter tun müssen, bevor der Kernel ist ein Routing-Entscheidung so, dass der Kernel für die neue Ziel-IP-Adresse in das IP-Paket aussehen wird.
Nach dem Passieren der zwei Ketten, macht den Linux-Kernel eine Routing-Entscheidung. Dies ist nicht das netfilter-Job. Durch die Analyse der Ziel-IP-Adresse aus dem IP-Paket-Header, weiß der Linux-Box, wenn das Paket muss an anderer Stelle geführt werden, oder es wurde nicht bestimmt.
Wenn der Linux-Box ist das Ziel für das IP-Paket, wird das Paket durch die INPUT-Kette die mangle-Tabelle für Mangling. Anschließend wird das Paket an die Filter-Tabelle INPUT-Kette, wo sie willkommen übergeben werden können, abgelehnt oder zurückgenommen werden. Wenn das Paket angenommen wird (z. B. eine Anfrage an einen Webserver mit Linux auf unseren Kasten), der Linux-Box erzeugt eine Reaktion auf das Paket, das durch die mangle-Tabelle OUPUT Kette beginnt.
Als nächstes wird das Paket durch die NAT-Tabelle OUTPUT-Kette und der Filter-Tabelle OUTPUT-Kette weitergegeben werden. An diesem Punkt sind die mangle-Tabelle POSTROUTING-Kette und die NAT-Tabelle POSTROUTING-Kette analysiert und das Paket ist bereit, auf die entsprechende Schnittstelle verschickt.
Die Ketten, die hier sind die vordefinierten Ketten von jeder Tabelle (filter, nat und mangle). Benutzer können jedoch eingerichtet benutzerdefinierte Ketten mit benutzerdefinierten Namen und Pass-Pakete an diesen Ketten aus den entsprechenden vordefinierten Kette. Zum Beispiel, wenn wir einige Regeln für die SSH-Zugang zu den Linux-Rechner erstellt haben, können wir eine eigene Kette namens SSH zu erstellen, und fügen Sie eine Regel in der INPUT-Kette, dass der Kernel anweist, den SSH-Kette für eingehende Pakete auf Port 22 zu analysieren / TCP.
Die vordefinierten Ketten können nicht gelöscht oder umbenannt werden.

Iptables - Operations

iptables hat eine Syntax, ähnlich der alten ipchains (netfilter für 2.2 Kernel). Allerdings sind die Konzepte der Netfilter für 2,4 + Kernel sind völlig verschieden von den Begriffen Störschutzfilter "für 2.2-Kernels.
Die Operationen iptables kann mit Ketten zu tun, sind:

  • Liste der Regeln in einer Kette (iptables-L-Kette).
  • Ändern Sie die Politik einer Kette (iptables-P CHAIN ACCEPT).
  • Erstellen Sie eine neue Kette (iptables-N chain).
  • Flush eine Kette; alle Regeln löschen (iptables-F Kette).
  • Löschen einer Kette (iptables-D CHAIN), nur dann, wenn die Kette leer.
  • Zähler auf null in der Kette (iptables-Z CHAIN). Jede Regel, die in jede Kette hält ein Zähler der Anzahl der Pakete und Bytes sind, abgestimmt. Dieser Befehl setzt den Zähler.

Für die-L,-F, D-, und Z-Operationen, wenn die Kette nicht angegeben ist, ist der Betrieb für die gesamte Tabelle, die nicht angegeben ist, wenn standardmäßig die Filter-Tabelle angewendet.
So legen Sie die Tabelle, auf der wir Maßnahmen, die wir den Schalter-t wie so iptables-t-Filter nutzen muss ...

Operationen, die auf iptables Regeln auszuführen sind:

  • Fügen Sie zusätzlich Regeln zu einer Kette (iptables-A)
  • Legen Sie Regeln in einer Kette (iptables-I)
  • Ersetzen Sie in der Regel aus einer Kette (iptables-R)
  • Löschen einer Regel aus einer Kette (iptables-D)

Die am häufigsten verwendete Schalter-A und-D (append und löschen Vorschriften). Normalerweise, wenn Firewalls Gestaltung sind die Regeln zu Ketten angehängt.
Während der Laufzeit Benutzer verwenden ich mehr als-A, weil sie häufig zu vorübergehenden Regeln in der Kette einfügen müssen.
iptables-A stellt die Regel am Ende der Kette, während ich die iptables-Regel Plätze auf der Oberseite des anderen Regeln in der Kette. Sie können jedoch in der Regel irgendwo in der Kette einfügen, indem Sie die Position, wo Sie wollen, dass die Regel in der Kette mit dem Schalter-i: iptables-I CHAIN 4 wird in der Regel auf der vierten Position der angegebenen Kette eingefügt werden.

Die Syntax für das Hinzufügen einer Regel zu einer Kette:

iptables-A ... -J ...

Filtern von Daten ist ein Teil einer iptables-Regel, die vom Kernel verwendet wird, um IP-Pakete, für die der Kernel hat die Klage von TARGET angegeben zu identifizieren.

Filtern von Daten

IP-Pakete können in einer Vielzahl von Möglichkeiten durch die Angabe Schnittstellen identifiziert werden, Protokolle, Ports, etc., die iptables-Regeln. Das Schöne daran ist, dass wir jede dieser Spezifikationen mischen können, nachdem eine hohe Flexibilität und ein breites Spektrum von Selektoren. Ich bin nicht die Absicht, alle Selektoren erschöpfend zu behandeln, aber bedenken Sie, dass, wenn Sie etwas über die logischen IP-Pakete zu denken, Sie haben alle Chancen, die Pakete mit iptables Vorschriften zu ermitteln.
Filtering Spezifikationen für Layer 2: Schnittstellen können auch als Selektoren mit-i und-o-Schalter angegeben werden.
-i steht für "- in-interface", und-o für "- out-interface". + Kann genutzt werden, um nur der Anfang Zeichenfolge der Schnittstelle zum Beispiel angeben,-i eth +-Schnittstellen werden alle die mit der Zeichenkette eth entsprechen; so dass wir alle Ethernet-Schnittstellen festgelegt haben als Input-Schnittstellen für eine Regel.
Kurze Version Schalter (z. B.-i) und lange Version Schalter (z. B. "- in-interface") haben absolut den gleichen Effekt. Einige Leute ziehen mit kurzen Schalter für Befehlszeilen und lange Schalter für Skripte, da sie eine bessere Lesbarkeit zu bieten, aber wir werden nur kurze Schalter in diesem Artikel auch in den Skripten zu verwenden, um den Befehlszeilen verwendet besser zu werden.
Das Ausrufezeichen "!" stellt eine Negation und kann benutzt werden, um anzugeben, auf die Schnittstelle (n nicht) dieser Filter angewendet werden (z. B.-i! eth1 wird nicht Match-Pakete kommen in über eth1).

Pakete analysiert in der OUTPUT und POSTROUTING-Ketten haben keine Eingabe-Schnittstellen, und so ist es nicht gestattet, mit der Option-i auf die Ketten zu wechseln.
Also, do INPUT-und FORWARD Ketten keine Ausgabe-Schnittstellen, und so können Sie nicht mit der Option-o Regeln in den Ketten.

Layer 3: Quell-IP-Adresse (n) kann angegeben werden, mit-s, - src, oder - Quelle und Ziel-IP-Adresse (n) mit-d, - dst oder - Ziel. Quellen oder Bestimmungen können IP-Adressen, Subnetze oder kanonischen Namen (zB "-s 217.207.125.58", "-s www.packtpub.com" oder "-s 217.207.125.58/32" haben die gleiche Wirkung). Angeben von kanonischen Namen für Hosts, die mehrere IP-Adressen hinzugefügt haben, wird in der gleichen Anzahl von Vorschriften wie die Anzahl von IP-Adressen durch die DNS-Server für diesen Host zum Zeitpunkt der Regeln hinzugefügt werden.

Verwenden Sie keine kanonischen Namen auf Regeln mit hohem Risiko. Zum Beispiel nicht erlauben SSH-Zugang von ahost.anotherisp.com, da diese leichter zu ermöglichen, einen Mann in-the-Middle-Angriff.

Schicht 4: Protokoll kann angegeben werden, indem die Option-p, die für "- Protokoll" steht. Protokolle können durch die entsprechenden Nummern angegeben werden, oder durch ihre Namen-TCP, UDP oder ICMP (Groß-und Kleinschreibung).
Für das ICMP-Protokoll können Sie ICMP-Message-Typen verwenden "- icmp-type angeben". Die Liste der ICMP-Nachrichten können mit dem Befehl "iptables gefunden werden-p icmp - help".
Für das UDP-Protokoll können Sie Quell-oder Ziel-Ports angeben, mit "- source-port" oder "- Sport" und "- destination-port" und "- dport".
TCP, wobei die vollständige Layer 4-Protokoll, hat mehr Optionen. Sie können angeben, neben Quell-oder Ziel-Ports für das UDP-Protokoll "- TCP-Flags", "- syn" und "- tcp-option". TCP-Flags kann "SYN ACK FIN RST URG PSH alle keine". "- syn" wird verwendet, um die Einleitung Verbindungen zu identifizieren und ist gleichbedeutend mit "- tcp-flags SYN, RST, ACK SYN". "- tcp-option" gefolgt von einer Zahl entspricht TCP-Pakete mit der Option auf diese Zahl gesetzt.

Filtering Spezifikationen können alle Funktionen einfach zu kombinieren, so können wir eine Kombination von Layer 2, 3 und 4 Ausführungen in derselben Regel haben.

Eine andere schöne Sache über Netfilter / iptables ist, dass passende Erweiterungen getrennt entwickelt werden können und später hinzugefügt. Auf der Website netfilter, gibt es eine große Sammlung von passenden Erweiterungen, so genannten "Patch-o-matic", bei http://www.netfilter.org/projects/patch-o-matic/index.html.

Eine neue und "gewagt"-Erweiterung zu iptables plant, seine Fähigkeiten aus den unteren Schichten in die obere Schicht des OSI-Modell, Layer 7-Anwendung zu erweitern.

Ein Artikel eingereicht von Philip A Clare


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Firewalls, Netfilter / iptables" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 438 users browsing the articles directory