GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Webmin

Linux-Firewall

Wenn Ihr System mit dem Internet verbunden ist, kann es sinnvoll sein, es mit einer Firewall zu schützen, um unbefugten Zugriff zu verhindern. Auf dieser Seite wird beschrieben, wie Sie eine Linux-Firewall einrichten und konfigurieren mit Webmin und iptables .

Einführung in das Firewalling mit IPtables

Eine Firewall ist ein System, das sich selbst und andere Hosts in einem Netzwerk vor Angreifern in nicht vertrauenswürdigen Netzwerken wie dem Internet schützt. Es kann Pakete und Verbindungen basierend auf einer Vielzahl von Kriterien wie Quelladresse, Zieladresse, Port und Protokoll blockieren. Typischerweise ist eine Firewall auch ein Router, der Pakete zwischen einem sicheren lokalen Netzwerk und dem nicht vertrauenswürdigen Internet weiterleitet – es ist jedoch auch möglich, dass ein System nur sich selbst schützt.

Ein Firewall-System kann auch so konfiguriert werden, dass es mehrere Hosts hinter einer einzigen IP-Adresse verbirgt, indem ein Prozess verwendet wird, der als NAT (Network Address Translation) bekannt ist. Normalerweise befinden sich die versteckten Hosts in einem internen LAN, das ein privates IP-Netzwerk (z. B. 192.168.0.0) verwendet, und die Firewall hat eine einzige Internet-IP-Adresse. NAT ermöglicht es diesen internen Hosts, mit anderen im Internet zu kommunizieren, auch wenn sie keine echten öffentlichen IP-Adressen haben.

Der Linux-Kernel hat im Laufe der Jahre mehrere verschiedene Firewall-Implementierungen wie IPfwadm und IPchains integriert. Die Kernel-Serie 2.4 enthält die IPtables-Firewall, die leistungsfähiger und flexibler ist als ihre Vorgänger. Alle Linux-Distributionen, die den 2.4-Kernel verwenden, haben IPtables-Unterstützung aktiviert und enthalten die Befehle, die zu ihrer Konfiguration erforderlich sind. Dieses Kapitel und das Linux-Firewall-Modul behandeln nur die Einrichtung einer Firewall mit IPtables, nicht mit einer der älteren Implementierungen wie IPchains oder IPfwadm.

Der gesamte IP-Netzwerkverkehr wird in Pakete aufgeteilt, bei denen es sich um Datenblöcke mit Quelle, Ziel und Protokollinformationen handelt. Selbst ein kontinuierlicher Datenfluss wie der Download einer großen Datei wird beim Senden in Pakete aufgeteilt und am Zielort wieder zusammengesetzt. Da die IPtables-Firewall auf IP-Ebene arbeitet, werten alle ihre Regeln und Ketten einzelne Pakete aus und bearbeiten sie, nicht TCP-Verbindungen oder HTTP-Anforderungen.

Eine IPtables-Firewall besteht aus drei verschiedenen Arten von Objekten – Tabellen, Ketten und Regeln. Jede der drei Tabellen enthält zwei oder drei Standardketten und möglicherweise viele benutzerdefinierte benutzerdefinierte Ketten. Jede Kette enthält null oder mehr Regeln, die auf Pakete angewendet werden, die von der Firewall empfangen oder von ihr gesendet werden, um ihr Schicksal zu bestimmen. Die drei Tabellen und ihre Standardketten sind :

Paketfilterung (Filter)
Die INPUT-, OUTPUT- und FORWARD-Paketketten in dieser Tabelle gelten für Pakete, die von der Firewall empfangen, gesendet oder weitergeleitet werden. Wenn das Firewall-System als Router agiert, gilt nur die FORWARD-Kette für geroutete Pakete. Der für das System selbst bestimmte Netzwerkverkehr wird von der INPUT-Kette verarbeitet und der von lokalen Prozessen gesendete Verkehr von der OUTPUT-Kette. Für ein System, das ein gewöhnlicher Router ist und kein Masquerading durchführt, oder ein System, das nur eine Firewall benötigt, um sich selbst zu schützen, ist dies die einzige Tabelle, zu der Regeln hinzugefügt werden müssen.
Netzwerkadressübersetzung (nat)
Diese Tabelle wird nur für Pakete verwendet, die eine neue Verbindung starten. Die Regeln in seiner PREROUTING-Kette werden auf Pakete angewendet, sobald sie vom System zum Routing empfangen werden, und die POSTROUTING-Kette für Pakete, die nach dem Routing verlassen werden. Die OUTPUT-Kettenregeln werden auf lokal erzeugte Pakete zur Modifikation vor dem Routing angewendet. Normalerweise werden dieser Tabelle Regeln hinzugefügt, um Masquerading, transparentes Proxying oder eine andere Art von Adressübersetzung einzurichten.
Paketänderung (mangle)
Diese Tabelle wird nur für spezialisierte Paketänderungen verwendet. Es enthält zwei Ketten – PREROUTING zum Modifizieren von Paketen vor dem Routing und OUTPUT zum Modifizieren von lokal erzeugten Paketen. Diese Tabelle wird in einer typischen Firewall-Konfiguration kaum verwendet.

Wenn ein Netzwerkpaket von einer Kette verarbeitet wird, wird jede Regel in der Kette der Reihe nach ausgeführt. Jede Regel hat eine Reihe von Bedingungen, die bestimmen, ob die Regel zutrifft oder nicht, und eine Aktion, die im Fall einer Übereinstimmung durchgeführt wird. Diese Aktion kann darin bestehen, das Paket sofort anzunehmen, es sofort fallen zu lassen, eine Änderung vorzunehmen oder die Ausführung fortzusetzen. Wenn das Ende einer Kette erreicht ist, wird stattdessen ihre Standardaktion ausgeführt, die normalerweise darin besteht, das Paket durchzulassen.

Der folgende Screenshot zeigt die Tabellen und Ketten, die ein Paket durchläuft, und die Reihenfolge, in der sie überprüft werden. Pakete, die vom Netzwerk hereinkommen, treten in das Diagramm oben ein und werden von beiden PREROUTING-Ketten verarbeitet. An diesem Punkt wird eine Entscheidung getroffen – Pakete, die für das lokale System bestimmt sind, gehen nach links, während diejenigen, die an ein anderes Ziel weitergeleitet werden, den rechten Zweig nehmen. Diejenigen, die nach links gehen, werden von der Kette eingehender Pakete verarbeitet, bevor sie an lokale Prozesse wie Server geliefert werden. Weitergeleitete Daten werden von den Weitergeleiteten Paketen und Nach-Routing-Ketten verarbeitet, bevor sie an ihr Ziel gesendet werden.

Die Firewall kann auch Pakete beeinflussen, die von Prozessen auf dem lokalen System gesendet werden. Diese werden mit den drei Output-Ketten und der After-Routing-Kette verglichen, bevor sie über die entsprechende Netzwerkschnittstelle zu ihren Zielen übertragen werden. Das bedeutet, dass eine IPtables-Firewall verwendet werden kann, um die Adressen zu begrenzen, mit denen sich lokale Prozesse verbinden können, und die Protokolle, die sie verwenden können.


Eine Übersicht über IPtables

Das Linux-Firewall-Modul

Dieses Modul kann verwendet werden, um eine Firewall auf einem Linux-System mit aktiviertem IPtables einzurichten oder einen beliebigen Teil einer vorhandenen Firewall zu bearbeiten. Es speichert die Firewall-Konfiguration in einer Sicherungsdatei, die von den Befehlen iptables-save und iptables-restore erstellt und gelesen wird, nicht in einem Shell-Skript, das Aufrufe des Befehls iptables enthält. Redhat, Debian und Gentoo Linux verwenden standardmäßig alle eine Sicherungsdatei wie diese, die Webmin kennt und mit der es arbeiten wird.

Wenn Sie eine Firewall manuell mit einem Shell-Skript erstellt haben und dieses Modul verwenden möchten, um sie von nun an zu bearbeiten, muss sie in eine IPtables-Speicherdatei konvertiert werden, damit Webmin sie bearbeiten kann.

Sie müssen lediglich verhindern, dass Ihr benutzerdefiniertes Skript beim Booten ausgeführt wird, und das Modul anweisen, stattdessen ein eigenes Firewall-Setup-Skript zu erstellen.

Dies gilt auch für Firewalls, die von Tools wie YaST oder fBuilder erstellt wurden, die Shell-Skripte von iptables-Befehlen schreiben. Sofern das Tool nicht auch eine IPtables-Speicherdatei bearbeiten kann (z. B. knetfilter), sollte es nicht zusammen mit dem Linux-Firewall-Modul von Webmin verwendet werden, da sie sich sonst wahrscheinlich gegenseitig überschreiben.

Wenn Sie das Modul aus der Kategorie Netzwerk aufrufen, zeigt die Hauptseite normalerweise eine Liste aller Ketten und Regeln in der ersten Tabelle an, die alle enthält (normalerweise Paketfilterung ), wie unten gezeigt. Wenn Webmin jedoch erkennt, dass die Befehle iptables oder iptables-save nicht installiert sind, wird stattdessen eine Fehlermeldung angezeigt – überprüfen Sie Ihre Distributions-CD oder Website auf ein Paket, das diese enthält.

Wenn Sie das Modul zum ersten Mal verwenden und noch keine Firewall auf Ihrem System eingerichtet wurde, wird auf der Hauptseite stattdessen ein Formular angezeigt, um die anfängliche Firewall-Erstellung zu vereinfachen. Drei Optionen werden angezeigt – wählen Sie eine aus und klicken Sie auf Firewall einrichten Schaltfläche, um es einzurichten. Gegebenenfalls zeigt Webmin auch ein Firewall beim Booten aktivieren? an Kontrollkästchen, das, wenn es ausgewählt ist, bewirkt, dass ein Boot-Skript erstellt wird, sodass die Firewall auch beim Booten aktiviert wird. Die Firewall-Setup-Optionen sind :

Gesamten Datenverkehr zulassen
Wenn diese Option ausgewählt ist, wird die Firewall „leer“ erstellt und der gesamte Datenverkehr wird durchgelassen.
Netzwerkadressenübersetzung auf externer Schnittstelle durchführen
Die Firewall wird für NAT eingerichtet, sodass Hosts in einem internen LAN über einen Host mit einer einzigen öffentlichen IP-Adresse auf das Internet zugreifen können. Sie müssen die mit dem Internet verbundene Netzwerkschnittstelle aus der Liste neben dieser Option auswählen, z. B. ppp0.
Blockiere alle eingehenden Verbindungen auf der externen Schnittstelle
Wenn ausgewählt, wird die Firewall so eingerichtet, dass sie den gesamten Datenverkehr blockiert, der über die ausgewählte Netzwerkschnittstelle in Ihr System gelangt, mit Ausnahme von hergestellten Verbindungen, DNS-Antworten und harmlosen ICMP-Paketen. Die von Ihnen ausgewählte Schnittstelle sollte die mit dem Internet verbundene sein, z. B. ppp0.

Wenn Sie das Modul zum ersten Mal verwenden und Webmin feststellt, dass bereits eine Firewall auf Ihrem System vorhanden ist, werden deren Regeln angezeigt und Sie werden aufgefordert, sie in eine Sicherungsdatei zu konvertieren, damit das Modul zum Bearbeiten verwendet werden kann . Wenn Sie dies tun möchten, klicken Sie auf Firewall-Regeln speichern Schaltfläche werden alle vorhandenen Tabellen, Ketten und Regeln sicher aufgezeichnet. Bei Bedarf wird auch ein *Firewall beim Booten aktivieren?* Kontrollkästchen angezeigt, das, wenn es ausgewählt ist, Webmin veranlasst, ein Boot-Skript zu erstellen, um die gespeicherten Firewall-Regeln beim Booten zu aktivieren.

Wenn Sie sich dafür entscheiden, eine vorhandene manuell erstellte Firewall-Konfiguration zu konvertieren, müssen Sie alle vorhandenen Skripts deaktivieren, die sie beim Booten einrichten. Andernfalls wird sowohl das alte als auch das von Webmin erstellte Skript ausgeführt, was möglicherweise dazu führt, dass die in diesem Modul eingerichteten Regeln durch die ältere manuelle Konfiguration aufgehoben werden.

Netzwerkverkehr zulassen und verweigern

Um die Arten von Verbindungen und Paketen einzuschränken, die Ihre Firewall akzeptiert oder weiterleitet, müssen Sie zusätzliche Firewall-Regeln erstellen. Der beste Ort für diese Regeln ist die Paketfilterung Tabelle entweder in den Eingehende Pakete oder Weitergeleitete Pakete Kette. Wenn Ihre Firewall als Router fungiert und Sie Systeme in dem sicheren Netzwerk schützen möchten, mit dem sie verbunden ist, aber nicht die Firewall selbst, werden die Weitergeleiteten Pakete Kette verwendet werden. Wenn Sie jedoch sowohl die Firewall als auch andere Systeme schützen möchten, an die sie weiterleitet, sollten Regeln zu den eingehenden Paketen hinzugefügt werden Kette.

Es ist auch möglich, die von Ihrem System gesendeten Daten einzuschränken, die von lokalen Prozessen stammen oder von anderen Hosts weitergeleitet werden können. Dazu können Sie den Ausgehenden Paketen Regeln hinzufügen Kette. Dies kann nützlich sein, um einzuschränken, mit welchen Adressen und Ports sich lokale Benutzer verbinden können, wenn Sie dies wünschen.

Gehen Sie wie folgt vor, um eine neue Regel zum Blockieren des Datenverkehrs zu erstellen:

  1. Wählen Sie auf der Hauptseite des Moduls Paketfilterung aus der Liste neben IPtable anzeigen Schaltfläche und klicken Sie dann darauf, um zur Filtertabelle zu wechseln.
  2. Um eine Regel hinzuzufügen, die für den gesamten eingehenden Datenverkehr gilt, klicken Sie auf Regel hinzufügen Schaltfläche in den Eingehende Pakete Sektion. Wenn Sie nur den weitergeleiteten Datenverkehr einschränken möchten, klicken Sie stattdessen auf die Schaltfläche unter Weitergeleitete Pakete. In jedem Fall werden Sie zum Regelerstellungsformular weitergeleitet, das im folgenden Screenshot gezeigt wird.
  3. Ändern Sie die zu ergreifende Aktion zum Ablegen , sodass Pakete, die dieser Regel entsprechen, stillschweigend von der Firewall verworfen werden.
  4. In den Bedingungsdetails Wählen Sie im Abschnitt die Bedingungen aus, die bestimmen, welche Pakete abgeglichen und somit verworfen werden. Nur Pakete, die alle Bedingungen erfüllen, die nicht auf Ignorieren gesetzt sind wird fallen gelassen. Einige Beispiele für die auszuwählenden Bedingungen zum Blockieren bestimmter Arten von Datenverkehr sind :
    Blockieren aller Verbindungen zu einem bestimmten TCP-Port
    Stellen Sie das Netzwerkprotokoll ein Feld auf Gleich und wählen Sie TCP . Um einen Port zu sperren, muss immer ein Protokoll ausgewählt werden. Legen Sie den TCP- oder UDP-Zielport fest zu Gleich und geben Sie eine Portnummer in die Port(s) ein Feld daneben. Sie können mehrere Ports blockieren, indem Sie eine durch Kommas getrennte Liste von Nummern in das Feld Port(s) eingeben, oder einen ganzen Bereich blockieren, indem Sie Portbereich auswählen und geben Sie die Start- und Endports in die Felder daneben ein.
    Blockieren des gesamten Datenverkehrs von einer bestimmten Adresse
    Setzen Sie die *Quelladresse oder das Netzwerk* auf Gleich und geben Sie die zu blockierende IP-Adresse in das Feld daneben ein. Sie können auch ein ganzes Netzwerk blockieren, indem Sie ein Netzwerk/Präfix-Paar wie 130.194.164.0/24 eingeben ins Feld. Legen Sie den Verbindungsstatus fest zu Ist nicht gleich und wählen Sie Bestehende Verbindung aus dem Menü daneben. Dieser Schritt erlaubt Ihrem System, sich mit den blockierten Adressen zu verbinden, aber nicht umgekehrt.
    Verkehr zu einer bestimmten Adresse blockieren
    Legen Sie die Zieladresse oder das Netzwerk fest zu Gleich und geben Sie die zu blockierende IP-Adresse oder das Netzwerk in das Feld daneben ein. Da dies effektiv verhindert, dass sich das blockierte System auch mit Ihrem verbindet, ist es möglicherweise eine gute Idee, den Verbindungsstatus festzulegen zu Ist nicht gleich und wählen Sie Bestehende Verbindung aus dem Menü daneben. In allen Fällen ist es normalerweise eine gute Idee, die Eingangsschnittstelle einzustellen an die Netzwerkschnittstelle, die mit dem Internet verbunden ist (z. B. ppp0), sodass die Einschränkung nicht für Verbindungen aus Ihrem lokalen LAN gilt.
  5. Wenn Sie mit der Auswahl der Bedingungen fertig sind, klicken Sie auf Erstellen Taste. Solange Ihre Eingabe fehlerfrei ist, werden Sie auf die Hauptseite des Moduls zurückgeleitet, auf der die neue Regel aufgelistet wird.
  6. Um die neue Regel zu aktivieren, klicken Sie auf Konfiguration übernehmen Schaltfläche unten auf der Seite.


Das Regelerstellungsformular

Die Regeln in jeder Kette werden in der Reihenfolge von oben nach unten ausgewertet, und die ergriffene Aktion wird durch diejenige bestimmt, die zuerst zutrifft. Wenn keine übereinstimmen, wird die Standardaktion der Kette ausgeführt, die normalerweise darin besteht, das Paket zu akzeptieren. Sie können diese Bewertungsreihenfolge verwenden, um eine Regel zu erstellen, die eine einzelne IP-Adresse zulässt, gefolgt von einer Regel, um ein gesamtes Netzwerk abzulehnen. Der letzte Effekt wird sein, dass jeder Host innerhalb des Netzwerks bis auf einen verweigert wird.

Da die Reihenfolge der Regeln wichtig ist, möchten Sie möglicherweise manchmal eine Regel in der Mitte einer vorhandenen Kette hinzufügen. Verwenden Sie dazu eine der Pfeilschaltflächen unter Hinzufügen einer Kette Spalte auf der Hauptseite des Moduls, um eine neue Regel entweder vor oder nach einer bestehenden zu erstellen.

Die häufigsten Aktionen und ihre Bedeutung sind unten aufgeführt. Nicht alle sind in allen Ketten und Tischen verfügbar.

Nichts tun
Wenn eine Regel mit dieser Aktion zutrifft, wird nichts unternommen und die Verarbeitung wird mit der nächsten Regel fortgesetzt.
Akzeptieren
Passende Pakete werden sofort akzeptiert und es findet keine weitere Verarbeitung in der Kette statt. Regeln in anderen Tabellen können sich jedoch immer noch auf das Paket auswirken.
Ablegen
Passende Pakete werden stillschweigend verworfen, als ob sie überhaupt nie empfangen worden wären. Es findet keine weitere Verarbeitung in dieser oder einer anderen Kette statt.
Benutzerbereich
Pakete werden an einen normalen Userspace-Prozess weitergeleitet. Diese Aktion wird selten verwendet.
Kette verlassen
Springe sofort zum Ende der Kette und führe stattdessen die Standardaktion aus. Wenn dies in einer benutzerdefinierten Kette verwendet wird, kehrt die Verarbeitung zu der Regel zurück, die es aufgerufen hat.
Maskerade
Bei übereinstimmenden Paketen wird die Quelladresse so geändert, dass es so aussieht, als käme sie vom Firewall-System, und es werden keine weiteren Regeln in der Kette verarbeitet. Wenn diese Aktion ausgewählt ist, können Sie die Quellports zum Maskieren verwenden Feld, um zu steuern, welche Ports die Firewall für maskierte Verbindungen verwendet. Siehe Netzwerkadressübersetzung einrichten Abschnitt für weitere Details. Die Maskerade Die Option ist nur in der Netzwerkadressübersetzung verfügbar Tabelle, in der Kette *Pakete nach dem Routing*.
Quell-NAT
Ähnlich der Maskerade Option, aber besser geeignet für Systeme mit fester Internet-IP-Adresse. Wenn ausgewählt, können Sie die IPs und Ports für SNAT verwenden Feld, um zu steuern, welche in der Netzwerkadressübersetzung verfügbar sind Tabelle, in den Paketen nach dem Routing Kette.
Ziel-NAT
Zieladresse und Port von übereinstimmenden Paketen werden basierend auf den IPs und Ports für das DNAT-Feld modifiziert. Dies ist die Grundlage für transparentes Proxying. Weitere Informationen finden Sie unter Einrichten eines transparenten Proxys Abschnitt unten. Diese Aktion ist nur in der Netzwerkadressübersetzung verfügbar Tabelle, in den Paketen vor dem Routing und Ausgabe Ketten.
Weiterleitung
Diese Aktion leitet alle übereinstimmenden Pakete an einen oder mehrere Ports auf der Firewall-Box um, die im Feld *Zielports für die Umleitung* angegeben sind. Es kann auch für transparentes Proxying verwendet werden, obwohl Ziel-NAT flexibler ist. Die Umleitungsaktion ist nur in der Netzwerkadressübersetzung verfügbar Tabelle, in den Paketen vor dem Routing und Ausgabe Ketten.

Sie können auch die Run-Kette auswählen Option für die zu ergreifende Aktion , wodurch das Paket an die benutzerdefinierte Kette oder das benutzerdefinierte Ziel weitergeleitet wird, das in das Feld daneben eingegeben wurde. Weitere Informationen zu benutzerdefinierten Ketten finden Sie unten im Abschnitt *Erstellen Ihrer eigenen Kette*. Einige der verfügbaren Ziele sind LOG (zum Protokollieren von Paketen in Syslog), MIRROR (zum Reflektieren von Paketen an ihren Absender) und MARK (zum Markieren eines Pakets für spätere Bedingungen).

Für jede Bedingung die Optionen Ignoriert , Gleich und *Ist nicht gleich* ausgewählt werden. Die erste bedeutet, dass die Bedingung überhaupt nicht verwendet wird, wenn geprüft wird, ob ein Paket der Regel entspricht. Das zweite bedeutet, dass ein Paket die Bedingung erfüllen muss, damit es der gesamten Regel entspricht, und das dritte bedeutet, dass das Paket die Bedingung NICHT erfüllen darf, damit die Regel ausgeführt wird. Wenn zum Beispiel die Bedingung „Eingangsschnittstelle“ auf „Ist nicht gleich“ gesetzt und eth0 ausgewählt wurde, würde die Regel nur Pakete abgleichen, die an irgendeiner Schnittstelle außer der primären Ethernet-Karte eingehen.

Da bei fast allen Netzwerkprotokollen Datenverkehr in zwei Richtungen fließt, wird versucht, nur eingehenden Datenverkehr von einer Adresse mithilfe der Quelladresse oder des Netzwerks zu blockieren Bedingung blockiert auch Verbindungen zu der Adresse, da Antwortpakete, die Teil der Verbindung sind, verworfen werden. Dasselbe gilt für das Blockieren eingehender Daten auf einem bestimmten Port mithilfe des TCP- oder UDP-Zielports Bedingung - wenn im unwahrscheinlichen Fall der zufällig gewählte Quellport einer Verbindung von Ihrem System mit dem blockierten Port übereinstimmt, werden alle Antworten darauf verworfen. Aus diesen Gründen ist es normalerweise eine gute Idee, beim Erstellen von Verweigerungsregeln den Verbindungsstatus festzulegen Bedingung zu Ist nicht gleich und wählen Sie Bestehende Verbindung aus dem Menü daneben. Dadurch verfolgt IPtables die von Ihrem Server hergestellten ausgehenden Verbindungen und blockiert sie nicht.

Wie Sie sehen können, stehen viele verschiedene Bedingungen zur Verfügung, die kombiniert werden können, um ziemlich komplexe Regeln zu erstellen. Weitere Informationen zu den einzelnen verfügbaren Bedingungen finden Sie im Abschnitt *Firewall-Regelbedingungen* weiter unten. Da es so viele Bedingungen gibt, können Sie mit Webmin neue Regeln erstellen, die fast identisch mit den bestehenden sind. Klicken Sie dazu auf eine vorhandene Regel, um sie zu bearbeiten, und verwenden Sie die Regel klonen Schaltfläche unten auf der Seite, um zum Regelerstellungsformular mit allen Bedingungen und Aktionen zu gelangen, die basierend auf der ursprünglichen Regel festgelegt wurden.

Ändern der Standardaktion einer Kette

Pakete, die keiner Regel in einer Kette entsprechen, werden mit der Standardaktion verarbeitet, die normalerweise darin besteht, das Paket zu akzeptieren. Auf der Hauptseite des Moduls wird die Standardaktion für jede Kette neben Standardaktion festlegen auf angezeigt Taste. Gehen Sie zum Ändern wie folgt vor:

  1. Wählen Sie die neue Aktion aus dem Menü neben der Schaltfläche *Standardaktion festlegen auf*. Nur das Akzeptieren , Ablegen , Benutzerbereich und Kette beenden Aktionen sind verfügbar - ihre Bedeutung finden Sie oben im Abschnitt *Zulassen und Verweigern von Netzwerkverkehr*. Normalerweise nur Zulassen und Ablegen als Standardaktion sinnvoll sein.
  2. Klicken Sie auf Standardaktion festlegen auf Schaltfläche, um die neue Standardeinstellung zu speichern.
  3. Bei Wechsel zu Verwerfen , fügen Sie alle erforderlichen zusätzlichen Firewall-Regeln hinzu, damit Ihr System weiterhin auf andere Server zugreifen und wichtige Dienste bereitstellen kann.
  4. Wenn Sie fertig sind, klicken Sie auf Konfiguration übernehmen Schaltfläche, um die neue Standardeinstellung zu aktivieren.

Ändern Sie einfach die Standardaktion in Löschen für eingehende Pakete ist eine einfache Möglichkeit, Ihr System vollständig vom Netzwerk zu trennen und möglicherweise unbrauchbar zu machen. Bevor Sie dies tun, vergewissern Sie sich, dass Sie mindestens die folgenden Arten von Datenverkehr zulassen :

  • Alle hergestellten Verbindungen. Erstellen Sie ein Zulassen Regel mit dem Verbindungsstatus auf Gleich gesetzt und Bestehende Verbindung gewählt.
  • Verbindungen im Zusammenhang mit den eingerichteten, wie z. B. FTP-Datenverbindungen. Erstellen Sie ein Zulassen Regel mit dem *Verbindungsstatus* auf Gleich gesetzt und Verwandte Verbindung gewählt.
  • Der gesamte Datenverkehr auf der Loopback-Schnittstelle. Erstellen Sie ein Zulassen Regel mit Eingangsschnittstelle auf Gleich gesetzt und ich bin auserwählt.
  • Datenverkehr von Ihrem System zu sich selbst auf seinen primären Netzwerkschnittstellen. Erstellen Sie für jede Schnittstelle eine Zulassungsregel mit sowohl der *Quelladresse oder dem Netzwerk* als auch der Zieladresse oder dem Netzwerk auf die IP-Adresse der Schnittstelle gesetzt.
  • Sichere ICMP-Typen. Erstellen Sie vier Zulassen Regeln, bei denen der *ICMP-Pakettyp* auf Gleich gesetzt ist und Echo-Antwort, Ziel-unerreichbar, Quelle-Löschung und Zeitüberschreitung ausgewählt.

Änderung der Standardaktion für weitergeleitete Pakete auf Verwerfen wird nicht so viele Probleme verursachen - es entspricht lediglich dem vollständigen Deaktivieren der Weiterleitung. Änderung der Standardaktion für ausgehende Pakete auf Verwerfen ist eine schlechte Idee, da es den gesamten Netzwerkzugriff unterbricht und in den meisten Fällen wahrscheinlich sehr wenig Sinn macht.

Firewall-Regeln bearbeiten

Webmin kann verwendet werden, um alle vorhandenen Firewall-Regeln zu bearbeiten, die manuell, in einem anderen Programm oder mit diesem Modul erstellt wurden. Auch wenn das Modul nicht alle verfügbaren Bedingungs- und Aktionsoptionen von IPtables unterstützt, können Sie es dennoch verwenden, um Regeln mit unbekannten Optionen sicher zu bearbeiten. Nur diejenigen, die Webmin bekannt sind, können geändert werden, andere bleiben unberührt.

Gehen Sie zum Bearbeiten einer Regel wie folgt vor:

  1. Wählen Sie auf der Hauptseite des Moduls die Tabelle, in der sich die Regel befindet, aus der Liste neben Showing IPtable aus Schaltfläche, bevor Sie darauf klicken.
  2. Klicken Sie auf die Aktion der Regel, die Sie in der Tabelle für ihre Kette ändern möchten. Dadurch gelangen Sie zu einem Bearbeitungsformular, das mit dem in Abbildung 19-3 gezeigten Erstellungsformular identisch ist.
  3. Ändern Sie die Aktion oder eine der Bedingungen und klicken Sie auf Speichern Schaltfläche, um zur Liste der Ketten und Regeln zurückzukehren. Oder um die Regel vollständig zu löschen, klicken Sie auf Löschen Taste.
  4. Um die Änderungen zu aktivieren, klicken Sie auf Konfiguration übernehmen .

Regeln können innerhalb ihrer Kette mit den Pfeilen unter Verschieben nach oben und unten verschoben werden Spalte auf der Hauptseite. Da Regeln von der Firewall der Reihe nach ausgewertet werden, kann eine Änderung ihrer Reihenfolge Auswirkungen darauf haben, welcher Datenverkehr zugelassen oder verweigert wird. Immer wenn Sie eine neue Regel erstellen, wird diese am Ende ihrer Kette hinzugefügt, sodass es möglicherweise erforderlich ist, sie an die richtige Position zu verschieben, um den gewünschten Effekt zu erzielen.

Erstellen Sie Ihre eigene Kette

Es ist möglich, zusätzlich zu den Standardregelketten Ihre eigenen benutzerdefinierten Regelketten zu erstellen. Der Unterschied besteht darin, dass sie nur ausgeführt werden, wenn eine Regel in einer der Standardketten ihre Aktion so eingestellt hat, dass sie explizit zu einer benutzerdefinierten Kette springt. Wenn die Ausführung einer benutzerdefinierten Kette beendet wird (oder eine Regel mit der Kette beenden Aktion entspricht), kehrt die Auswertung zur aufrufenden Kette zurück. Dies bedeutet, dass benutzerdefinierte Ketten verwendet werden können, um Regeln zu definieren, die von mehreren Standardketten geteilt werden, anstatt dieselben Regeln an mehreren Stellen zu wiederholen. In gewisser Weise ist eine benutzerdefinierte Kette wie eine Unterroutine in einer Programmiersprache.

Gehen Sie wie folgt vor, um Ihre eigene Kette zu erstellen:

  1. Wählen Sie auf der Hauptseite des Moduls die Tabelle, in der sich die Kette befinden soll, aus dem Menü neben Showing IPtable aus , und klicken Sie auf die Schaltfläche. Benutzerdefinierte Chains können nur von anderen Chains in derselben Tabelle aufgerufen werden.
  2. Geben Sie den Namen Ihrer neuen Kette in das Textfeld neben Neue Kette mit Namen hinzufügen ein Schaltfläche und klicken Sie dann auf die Schaltfläche, um sie zu erstellen. Kettennamen müssen eindeutig sein und bestehen im Allgemeinen nur aus Kleinbuchstaben und Zahlen.
  3. Sobald die neue Kette erstellt wurde, erscheint sie unten auf der Seite. Sie können seine Regel hinzufügen verwenden Schaltfläche, um Regeln daran anzuhängen, genau wie bei einer der normalen Ketten.

Benutzerdefinierte Ketten haben keine Standardrichtlinie, daher haben sie auf der Hauptseite keine Schaltfläche *Standardaktion festlegen auf*. Wenn die Ausführung der Kette das Ende erreicht, geht die Kontrolle immer an den Aufrufer zurück. Benutzerdefinierte Ketten können jedoch mit Kette löschen gelöscht werden Schaltfläche unter ihren Regeltabellen.

Eine benutzerdefinierte Kette kann Regeln enthalten, die zu anderen benutzerdefinierten Ketten springen. Eine Kette kann jedoch nicht zu sich selbst springen, noch können Sie Schleifen erstellen, indem Sie zu einer anderen Kette springen, die zur ersten zurückspringt. Selbst wenn dies möglich wäre, wäre es eine sehr schlechte Idee!

Netzwerkadressübersetzung einrichten

Wenn Sie mehrere Systeme in Ihrem Haus oder Büro haben, die über ein LAN verbunden sind und nur eine Internet-IP-Adresse haben, kann die Netzwerkadressübersetzung verwendet werden, um all diesen Systemen einen nahezu vollständigen Internetzugang zu geben. NAT verbirgt die Adressen aller Systeme im internen LAN hinter einer einzigen Internetadresse und konvertiert Adressen und Ports nach Bedarf hin und her. Dadurch können alle internen Systeme Verbindungen zu beliebigen Hosts im Internet herstellen, z. B. Webserver, DNS-Server, POP3-Server und so weiter. Die einzige Einschränkung besteht darin, dass interne Systeme keine Verbindungen von anderen Internethosts empfangen können, was dazu führen kann, dass einige Protokolle (wie Internettelefonie und Netzwerkspiele) fehlschlagen.

Aufgrund dieser Einschränkung sind interne Systeme vor den meisten Angriffen von anderen Hosts im Internet geschützt, so als ob Sie alle weitergeleiteten Pakete blockieren würden, die an der externen Schnittstelle eingehen. NAT erleichtert auch die Zuweisung von IP-Adressen, da Sie sich keine Sorgen machen müssen, dass Ihnen die echten Internetadressen ausgehen, um sie internen Hosts zuzuweisen, die dann nicht wirklich benötigt werden. Aus diesen Gründen kann es sinnvoll sein, NAT in Ihrer Organisation einzurichten, auch wenn dies aus Netzwerksicht nicht unbedingt erforderlich ist.

NAT funktioniert durch Ändern der Quelladresse und des Ports von Paketen, die von internen Hosts gesendet und durch die Firewall geleitet werden. Die Quelladresse wird immer auf die externe IP-Adresse des Firewall-Systems und der Quellport auf einen zufällig ausgewählten unbenutzten Port geändert. Wenn ein Antwortpaket zurückkommt, wird sein Zielport verwendet, um die ursprüngliche interne Client-IP-Adresse und den Port zu bestimmen, an den das Paket weitergeleitet werden soll.

Um NAT einzurichten, benötigen Sie eigentlich nur ein System mit zwei Netzwerkschnittstellen – eine für das interne LAN und eine, die über Einwahl, ISDN oder Breitband mit dem Internet verbunden ist. Sobald Sie dies haben, sind die folgenden Schritte auszuführen:

  1. Im internen LAN sollte der Ethernet-Schnittstelle jedes Systems eine Adresse in einem privaten IP-Netzwerk wie 192.168.0.0 zugewiesen werden, einschließlich des Gateway-Systems.
  2. Stellen Sie den Standardrouter auf allen internen Systemen auf die LAN-IP-Adresse des Gateway-Systems ein.
  3. Stellen Sie sicher, dass für das Gateway im Netzwerkkonfigurationsmodul unter Routing und Gateways die IP-Weiterleitung aktiviert ist. Weitere Informationen dazu finden Sie unter Netzwerkkonfiguration.
  4. Wählen Sie auf der Hauptseite des Linux-Firewall-Moduls auf dem Gateway-System Network Address Translation aus der Liste neben IPtable wird angezeigt Taste. Klicken Sie dann auf die Schaltfläche, um Ketten in der NAT-Tabelle anzuzeigen.
  5. Klicken Sie auf Regel hinzufügen Schaltfläche in den Pakete nach dem Routing Abschnitt, der Sie zum Regelerstellungsformular führt.
  6. Legen Sie die zu ergreifende Aktion fest zur Maskerade .
  7. Um zu steuern, welche Ports die Firewall für maskierte Verbindungen verwendet, legen Sie die Quellports für Maskierung fest Option zu Portbereich und geben Sie Start- und Endportnummern in die Felder daneben ein. Wählen Sie normalerweise einfach Alle aus die Firewall jeden verfügbaren Port verwenden zu lassen, wird gut funktionieren.
  8. Ändern Sie die Ausgangsschnittstelle Bedingung auf Gleich und wählen Sie die externe Netzwerkschnittstelle aus der Liste daneben aus, z. B. ppp0.
  9. Klicken Sie unten auf der Seite auf die Schaltfläche Speichern, um zur Liste der Ketten und Regeln zurückzukehren.
  10. Klicken Sie auf Konfiguration übernehmen um die neue Regel (und NAT) aktiv zu machen.

Es ist möglich, NAT mit anderen Firewall-Regeln in der Paketfilterung zu kombinieren Tabelle, um Verbindungen zum Firewall-Host selbst zu blockieren. Sie können der Kette *Pakete nach dem Routing* auch Verweigerungsregeln voranstellen, um bestimmte interne Hosts daran zu hindern, auf das Internet zuzugreifen, oder die Ports einschränken, zu denen sie eine Verbindung herstellen können.

Die obigen Anweisungen funktionieren in jedem Netzwerk, das über ein Gateway-System mit einer einzigen Internet-IP-Adresse verfügt. Wenn die Adresse Ihres Gateways jedoch statisch ist, ist es besser, Quell-NAT auszuwählen in Schritt 6 anstelle von Maskerade . Bei Verwendung von Masquerading gehen alle von der Firewall weitergeleiteten Verbindungen verloren, wenn die externe Netzwerkschnittstelle ausfällt, selbst wenn sie mit derselben IP-Adresse wiederhergestellt wird. Wenn die externe Schnittstelle eine dynamisch zugewiesene Adresse hat, spielt dies keine Rolle, da die Verbindungen sowieso verloren gehen würden. Bei Verwendung einer statischen IP-Adresse ist es jedoch möglich, dass eine Verbindung auch bei einem kurzen Netzwerkausfall aufrecht erhalten wird.

Um es zu verwenden, legen Sie in Schritt 6 die zu ergreifende Aktion fest zu Quell-NAT . Legen Sie dann die IPs und Ports für SNAT fest zu IP-Bereich und geben Sie die statische externe IP-Adresse Ihres Systems in das Feld daneben ein. Alle anderen Schritte im NAT-Einrichtungsprozess sind gleich.

Einrichten eines transparenten Proxys

Viele Netzwerke verwenden Proxy-Server wie Squid, um häufig aufgerufene Websites zwischenzuspeichern und so die Bandbreite zu reduzieren, die von Web-Browsing-Clients verwendet wird. Normalerweise muss jedoch jeder Client so konfiguriert werden, dass er den Proxyserver verwendet, anstatt direkte Verbindungen zu Websites herzustellen. In einem großen Netzwerk mit vielen Client-Systemen oder bei einem ISP, wo sie vielen verschiedenen Personen gehören, kann diese individuelle Konfiguration schwierig sein. Es wird dadurch verschlimmert, dass jeder Browser seine eigenen Proxy-Server-Einstellungen hat. Wenn ein Benutzer also einen neuen Browser installiert, verwendet er wahrscheinlich standardmäßig überhaupt keinen Proxy.

Glücklicherweise gibt es eine Lösung – transparentes Proxying. Wenn alle Client-Systeme über ein Gateway auf das Internet zugreifen, auf dem eine IPtables-Firewall ausgeführt wird, kann es so konfiguriert werden, dass es Verbindungen zu Port 80 (von den meisten Websites verwendet) zu einem Proxy-Server auf einem anderen System umleitet. Das bedeutet, dass Clients nicht für den Zugriff auf einen Proxy konfiguriert werden müssen, da alle von ihnen gestellten HTTP-Anforderungen ohne ihr Wissen transparent an den Proxy-Server gesendet werden.

Gehen Sie wie folgt vor, um transparentes Proxying einzurichten:

  1. On the main page of the Linux Firewall module on the gateway system, select Network address translation from the list next to the Showing IPtable button before clicking it.
  2. In the Packets before routing section, click on Add rule to go to the rule creation form. The rule being added will redirect all traffic on port 80 forwarded by the firewall system to a proxy server.
  3. Set the Action to take to Destination NAT .
  4. In the IPs and ports for DNAT field, select IP range and enter the address of the proxy server system into the field next to it. If the proxy is running on the same system, enter its Ethernet IP address (not 127.0.0.1). In the field next to Port range , enter the port the proxy server is running on, such as 8080.
  5. Set the Incoming interface to Equals and select the internal LAN interface, such as eth0.
  6. Set the Network protocol to Equals and select TCP .
  7. If the proxy is on another system that is also on the internal LAN, make sure that its connections on port 80 will not be proxied by the firewall as well! To do this, set the *Source address or network* condition to Does not equal and enter the IP address of the proxy server into the field next to it. If the proxy is on a different LAN or is the firewall system, this is not necessary.
  8. Set the Destination TCP or UDP port to Equals and enter 80 into the Port(s) Feld.
  9. Click the Create button to save the rule and return to the module's main page.
  10. Click on Add rule under Packets after routing to bring up the rule creation form again. This rule will forward packets back in the other direction from the proxy to the client. If your firewall system is also running the proxy server, this rule is not necessary and you can skip to step 16.
  11. For the Action to take , select Source NAT .
  12. In the IPs and ports for SNAT field, select IP range and enter the LAN IP address of the firewall server into the field next to it.
  13. Set the Destination address or network to Equals and enter the IP address of the proxy server into the field next to it.
  14. Set the Network protocol to Equals and select TCP .
  15. Klicken Sie auf Erstellen button to add the new rule.
  16. Back on the main page, click the Apply Configuration Taste. All packets on port 80 forwarded by your firewall will now be sent to the proxy server instead.
  17. Assuming you are running the Squid proxy server (version 2.4 or above) on the proxy system, you can use Webmin to configure it. Otherwise, there is no point reading beyond this step.
  18. On the proxy system, enter the Squid Proxy Server module and click on Miscellaneous Options.
  19. Set the HTTP Accel Host field to Virtual , and the *HTTP Accel Port* to 80 .
  20. Set both the HTTP Accel With Proxy and *HTTP Accel Uses Host Header* fields to Yes.
  21. Finally, click Save to return to the main page of the Squid module, and click the Apply Changes link near the top of the page to activate the new configuration.

From now on, any HTTP requests on port 80 forwarded by your firewall will be sent to the proxy server for processing. Transparent proxying can be safely used at the same time as conventional NAT by creating a masquerade rule in the packets after routing chain, as explained in the instructions in the *Setting up network address translation* section above.

Setting up port forwarding

On a network that uses NAT to hide internal systems from the Internet, outside hosts cannot connect directly those on the internal network. This is great for security, but can be annoying if there is some internal service that you do want to make available to the outside world. For example, your mail server system may not be the firewall host, which would normal make it inaccessible from the Internet. Fortunately, there is a solution to this problem - port forwarding.

This lets you re-direct all connections to some port on the firewall system to a different host and port on your internal network. For a mail server, all data received on port 25 might be send to the same port on the host that is actually being used to host user email. Of course, this would make it impossible for your firewall system to receive email itself.

To set up port forwarding, follow these steps :

  1. On the main page of the Linux Firewall module on the gateway system, select Network address translation from the list next to the Showing IPtable button before clicking it.
  2. In the Packets before routing section, click on Add rule to go to the rule creation form. The rule being added will redirect all external traffic received by the firewall to some internal address.
  3. Set the Action to take to Destination NAT .
  4. In the IPs and ports for DNAT field, select IP range and enter the address of the internal host into the adjacent text box, such as 192.168.1.10 . In the Port range box, enter the port number on the internal host to which data should be sent, such as 25 for SMTP, 110 for POP3 or 80 for HTTP.
  5. Set the Network protocol to Equals and select TCP .
  6. In the Destination TCP or UDP port field, select Equals from the menu and enter the external port number for which forwarding should be done into the adjacent text field. Typically this will be the same as the port entered in step 4.
  7. Klicken Sie auf Speichern button to create the rule and return to the main page, and then click the Apply Configuration Taste.

The only problem with this method is that connections from inside your network to the firewall system will not be forwarded to the other host.

Firewall rule conditions

When creating a firewall rule, you can select many different conditions to control which packets the rule matches. A rule's action will only be executed if all the conditions are matched. Each condition can be in one of three states, chosen by the menu next to it on the rule creation form :

  • Ignore The condition will be totally ignored when deciding whether the rule matches or not.
  • Equals The rule will only match if the packet matches the address, port, interface or whatever was selected for this condition.
  • Does not equal The rule will only match if the packet does NOT match whatever was selected for this condition.

The available conditions and what each matches are listed in the table below. Note that some are not available in all tables and chains.

Remember that each condition is applied on a per-packet basis, and that a single TCP connection may involve multiple packets flowing in both directions.

Inhalt

Siehe auch

  • Küstenfirewall
  • Shorewall6-Firewall
  • FirewallD

Webmin
  1. Erste Schritte mit Linux-Firewalls

  2. Linux-Namespaces

  3. So deaktivieren Sie die Firewall unter CentOS 8 Linux

  4. So protokollieren Sie von der Linux-IPTables-Firewall gelöschte Pakete in einer Protokolldatei

  5. Warum Linux Bridge nicht funktioniert

FirewallD

IPFilter-Firewall

Küsten-Firewall

Linux-tcpdump-Befehl

So richten Sie die UFW-Firewall unter Linux ein

Top 5 der besten Linux-Firewalls