Was ist eine Firewall und wie funktioniert sie?

Einführung

Eine Firewall ist ein System, das Netzwerksicherheit bietet, indem eingehender und ausgehender Netzwerkverkehr basierend auf einer Reihe benutzerdefinierter Regeln gefiltert wird. Im Allgemeinen besteht der Zweck einer Firewall darin, das Auftreten unerwünschter Netzwerkkommunikationen zu reduzieren oder zu eliminieren, während alle legitimen Kommunikationen frei fließen können. In den meisten Serverinfrastrukturen bieten Firewalls eine wesentliche Sicherheitsebene, die in Kombination mit anderen Maßnahmen verhindert, dass Angreifer auf böswillige Weise auf Ihre Server zugreifen.

In diesem Handbuch wird die Funktionsweise von Firewalls erläutert, wobei der Schwerpunkt aufstatefuloftware-Firewalls wie iptables und FirewallD liegt, die sich auf Cloud-Server beziehen. Wir beginnen mit einer kurzen Erläuterung der TCP-Pakete und der verschiedenen Arten von Firewalls. Anschließend werden verschiedene Themen behandelt, die für Stateful Firewalls relevant sind. Zuletzt stellen wir Links zu anderen Tutorials zur Verfügung, mit denen Sie eine Firewall auf Ihrem eigenen Server einrichten können.

TCP-Netzwerkpakete

Bevor wir uns mit den verschiedenen Arten von Firewalls befassen, werfen wir einen kurzen Blick auf den TCP-Netzwerkverkehr (Transport Control Protocol).

Der TCP-Netzwerkverkehr bewegt sich inpackets um ein Netzwerk. Dies sind Container, die aus einem Paket-Header bestehen - dieser enthält Steuerinformationen wie Quell- und Zieladressen sowie Paketsequenzinformationen - und den Daten (auch als Nutzlast bezeichnet). . Die Steuerinformationen in den einzelnen Paketen stellen sicher, dass die zugehörigen Daten ordnungsgemäß übermittelt werden. Die enthaltenen Elemente bieten jedoch auch eine Reihe von Möglichkeiten, um Pakete mit Firewall-Regeln abzugleichen.

Es ist wichtig zu beachten, dass der Empfänger für den erfolgreichen Empfang eingehender TCP-Pakete ausgehende Bestätigungspakete an den Absender zurücksenden muss. Die Kombination der Steuerinformationen in den eingehenden und ausgehenden Paketen kann verwendet werden, um den Verbindungsstatus zu bestimmen (z. neu, etabliert, verwandt) zwischen Absender und Empfänger.

Arten von Firewalls

Lassen Sie uns kurz die drei Grundtypen von Netzwerk-Firewalls erläutern: Paketfilterung (zustandslos), Status und Anwendungsebene.

Paketfilter- oder zustandslose Firewalls untersuchen einzelne Pakete isoliert. Als solche kennen sie den Verbindungsstatus nicht und können nur Pakete zulassen oder ablehnen, die auf einzelnen Paketköpfen basieren.

Stateful Firewalls können den Verbindungsstatus von Paketen ermitteln, wodurch sie wesentlich flexibler sind als zustandslose Firewalls. Sie sammeln zusammengehörige Pakete, bis der Verbindungsstatus ermittelt werden kann, bevor Firewall-Regeln auf den Datenverkehr angewendet werden.

Anwendungsfirewalls gehen noch einen Schritt weiter und analysieren die übertragenen Daten. Auf diese Weise kann der Netzwerkverkehr mit Firewall-Regeln verglichen werden, die für einzelne Dienste oder Anwendungen spezifisch sind. Diese werden auch als Proxy-basierte Firewalls bezeichnet.

Neben Firewall-Software, die auf allen modernen Betriebssystemen verfügbar ist, kann die Firewall-Funktionalität auch von Hardwaregeräten wie Routern oder Firewall-Appliances bereitgestellt werden. Unsere Diskussion wird sich wieder aufstatefuloftware-Firewalls konzentrieren, die auf den Servern ausgeführt werden, die sie schützen sollen.

Firewall-Regeln

Wie oben erwähnt, wird Netzwerkverkehr, der eine Firewall durchquert, mit Regeln abgeglichen, um zu bestimmen, ob er zugelassen werden soll oder nicht. Ein einfacher Weg, um zu erklären, wie Firewall-Regeln aussehen, besteht darin, ein paar Beispiele zu zeigen. Wir werden das jetzt tun.

Angenommen, Sie haben einen Server mit dieser Liste von Firewall-Regeln, die für eingehenden Datenverkehr gelten:

  1. Akzeptieren Sie neuen und etablierten eingehenden Datenverkehr zur öffentlichen Netzwerkschnittstelle über Port 80 und 443 (HTTP- und HTTPS-Webdatenverkehr).

  2. Leiten Sie eingehenden Datenverkehr von den IP-Adressen der nicht technischen Mitarbeiter in Ihrem Büro an Port 22 (SSH) weiter.

  3. Akzeptieren Sie neuen und etablierten eingehenden Datenverkehr von Ihrem Büro-IP-Bereich zur privaten Netzwerkschnittstelle an Port 22 (SSH)

Beachten Sie, dass das erste Wort in jedem dieser Beispiele entweder "Akzeptieren", "Ablehnen" oder "Löschen" ist. Dies gibt die Aktion an, die die Firewall ausführen soll, wenn ein Teil des Netzwerkverkehrs mit einer Regel übereinstimmt. Accept bedeutet, den Verkehr durchzulassen,reject bedeutet, den Verkehr zu blockieren, aber mit einem "nicht erreichbaren" Fehler zu antworten, unddrop bedeutet, den Verkehr zu blockieren und keine Antwort zu senden. Der Rest jeder Regel besteht aus der Bedingung, mit der jedes Paket abgeglichen wird.

Wie sich herausstellt, wird der Netzwerkverkehr mit einer Liste von Firewall-Regeln in einer Reihenfolge oder Kette von Anfang bis Ende abgeglichen. Genauer gesagt, sobald eine Regel übereinstimmt, wird die zugehörige Aktion auf den fraglichen Netzwerkverkehr angewendet. In unserem Beispiel würde ein Buchhaltungsmitarbeiter, der versucht hat, eine SSH-Verbindung zum Server herzustellen, gemäß Regel 2 abgelehnt, bevor Regel 3 überhaupt geprüft wird. Ein Systemadministrator wird jedoch akzeptiert, da er nur mit Regel 3 übereinstimmt.

Standardrichtlinie

Es ist typisch für eine Kette von Firewall-Regeln, nicht jede mögliche Bedingung explizit abzudecken. Aus diesem Grund muss für Firewallketten immer eine Standardrichtlinie angegeben werden, die nur aus einer Aktion (Annehmen, Ablehnen oder Löschen) besteht.

Angenommen, die Standardrichtlinie für die obige Beispielkette wurde aufdrop festgelegt. Wenn ein Computer außerhalb Ihres Büros versucht, eine SSH-Verbindung zum Server herzustellen, wird der Datenverkehr unterbrochen, da er nicht den Bedingungen von Regeln entspricht.

Wenn die Standardrichtlinie aufaccept festgelegt wäre, könnte jeder außer Ihren eigenen nicht technischen Mitarbeitern eine Verbindung zu einem offenen Dienst auf Ihrem Server herstellen. Dies ist ein Beispiel für eine sehr schlecht konfigurierte Firewall, da nur ein Teil Ihrer Mitarbeiter davon ausgeschlossen ist.

Eingehender und ausgehender Verkehr

Da der Netzwerkverkehr aus der Sicht eines Servers entweder eingehend oder ausgehend sein kann, unterhält eine Firewall in beiden Fällen unterschiedliche Regeln. Datenverkehr, der an einem anderen Ort anfällt (eingehender Datenverkehr), wird anders behandelt als der vom Server gesendete ausgehende Datenverkehr. Es ist typisch, dass ein Server den meisten ausgehenden Datenverkehr zulässt, da der Server normalerweise für sich selbst vertrauenswürdig ist. Der ausgehende Regelsatz kann jedoch verwendet werden, um unerwünschte Kommunikation zu verhindern, falls ein Server von einem Angreifer oder einer böswilligen ausführbaren Datei kompromittiert wird.

Um die Sicherheitsvorteile einer Firewall zu maximieren, sollten Sie alle Möglichkeiten ermitteln, mit denen andere Systeme mit Ihrem Server interagieren sollen, Regeln erstellen, die diese ausdrücklich zulassen, und dann den gesamten anderen Datenverkehr löschen. Beachten Sie, dass die entsprechenden Regeln für ausgehende Verbindungen vorhanden sein müssen, damit ein Server ausgehende Bestätigungen an alle geeigneten eingehenden Verbindungen senden kann. Da ein Server normalerweise aus verschiedenen Gründen seinen eigenen ausgehenden Datenverkehr initiieren muss, z. B. zum Herunterladen von Updates oder zum Herstellen einer Verbindung zu einer Datenbank, ist es wichtig, diese Fälle auch in Ihren ausgehenden Regelsatz aufzunehmen.

Ausgehende Regeln schreiben

Angenommen, unsere Beispiel-Firewall ist standardmäßig aufdropausgehenden Datenverkehr eingestellt. Dies bedeutet, dass die Regeln für eingehendeacceptohne ergänzende ausgehende Regeln unbrauchbar wären.

Um die Beispielregeln für eingehende Firewall (1 und 3) aus dem AbschnittFirewall Ruleszu ergänzen und eine ordnungsgemäße Kommunikation über diese Adressen und Ports zu ermöglichen, könnten wir diese Regeln für ausgehende Firewall verwenden:

  1. Bestehenden ausgehenden Datenverkehr zur öffentlichen Netzwerkschnittstelle über Port 80 und 443 (HTTP und HTTPS) akzeptieren

  2. Bestehenden ausgehenden Datenverkehr zur privaten Netzwerkschnittstelle an Port 22 (SSH) akzeptieren

Beachten Sie, dass wir keine explizite Regel für eingehenden Datenverkehr schreiben müssen, der gelöscht wird (eingehende Regel 2), da der Server diese Verbindung nicht herstellen oder bestätigen muss.

Firewall-Software und -Tools

Nachdem wir uns nun mit der Funktionsweise von Firewalls befasst haben, werfen wir einen Blick auf gängige Softwarepakete, mit deren Hilfe wir eine effektive Firewall einrichten können. Es gibt zwar viele andere Firewall-bezogene Pakete, diese sind jedoch effektiv und diejenigen, auf die Sie am häufigsten stoßen werden.

Iptables

Iptables ist eine Standard-Firewall, die standardmäßig in den meisten Linux-Distributionen enthalten ist (eine moderne Variante namens nftables wird sie ablösen). Tatsächlich handelt es sich um ein Front-End für die Netfilter-Hooks auf Kernel-Ebene, die den Linux-Netzwerkstapel manipulieren können. Dabei wird jedes Paket, das die Netzwerkschnittstelle durchquert, mit einer Reihe von Regeln abgeglichen, um zu entscheiden, was zu tun ist.

Informationen zum Implementieren einer Firewall mit iptables finden Sie unter den folgenden Links:

UFW

UFW, was für Uncomplicated Firewall steht, ist eine Schnittstelle zu iptables, die darauf abzielt, die Konfiguration einer Firewall zu vereinfachen.

Weitere Informationen zur Verwendung von UFW finden Sie in diesem Tutorial:How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server.

FirewallD

FirewallD ist eine vollständige Firewall-Lösung, die standardmäßig auf CentOS 7-Servern verfügbar ist. Übrigens verwendet FirewallD iptables, um Netfilter zu konfigurieren.

Weitere Informationen zur Verwendung von FirewallD finden Sie in diesem Lernprogramm:How To Configure FirewallD to Protect Your CentOS 7 Server.

Wenn Sie CentOS 7 ausführen, aber lieber iptables verwenden, befolgen Sie dieses Tutorial:How To Migrate from FirewallD to Iptables on CentOS 7.

Fail2ban

Fail2ban ist eine Intrusion Prevention-Software, mit der Ihre Firewall automatisch so konfiguriert werden kann, dass Anmeldeversuche mit Brute Force und DDOS-Angriffe blockiert werden.

Weitere Informationen zu Fail2ban finden Sie unter folgenden Links:

Fazit

Nachdem Sie sich mit der Funktionsweise von Firewalls vertraut gemacht haben, sollten Sie sich anhand der obigen Tutorials mit der Implementierung einer Firewall befassen, die die Sicherheit Ihres Server-Setups verbessert.

Wenn Sie mehr über die Funktionsweise von Firewalls erfahren möchten, lesen Sie die folgenden Links: