|
|
Zeile 62: |
Zeile 62: |
|
| |
|
| = TMP = | | = TMP = |
| == Grundlagen ==
| |
| Die Regeln werden für jedes Paket (bei [http://de.wikipedia.org/wiki/Stateful_Packet_Inspection Stateful Firewalls] für jede neue Verbindung) der Reihe nach geprüft, und die erste zutreffende Regel wird angewendet.
| |
| * Die [http://de.wikipedia.org/wiki/Reihenfolge Reihenfolge] der Regeln ist daher relevant.
| |
| * Eine Firewall-Regel setzt sich meist aus sechs Komponenten zusammen:# Absender-[http://de.wikipedia.org/wiki/IP-Adresse IP-Adresse] (auch Netzwerk-Adressen wie z. B. 192.168.0.0/24)
| |
| # [http://de.wikipedia.org/wiki/Zielmarke Ziel]-IP-Adresse
| |
| # [http://de.wikipedia.org/wiki/Netzwerkprotokoll Netzwerkprotokoll] ([http://de.wikipedia.org/wiki/Transmission_Control_Protocol TCP], [http://de.wikipedia.org/wiki/User_Datagram_Protocol UDP], [http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP], …)
| |
| # [http://de.wikipedia.org/wiki/Port_%28Protokoll%29 Port]-Nummer (bei TCP und UDP)
| |
| # Aktion (erlauben, verwerfen oder ablehnen)
| |
| # [http://de.wikipedia.org/wiki/Logdatei Protokollieren] (engl. "log") ja/nein
| |
|
| |
| Eine weitere mögliche Komponente ist bei TCP die Inspektion der [http://de.wikipedia.org/wiki/Transmission_Control_Protocol#Verbindungsaufbau Control-Flags].
| |
| * Durch die Kontrolle des ACK-Flags ist es möglich, einen Verbindungsaufbau nur in eine Richtung zuzulassen, so kann beispielsweise in Kombination mit einer Portregel ein Angreifer [http://de.wikipedia.org/wiki/Secure_Shell SSH] nicht verwenden.
| |
|
| |
| Manche Firewall-Systeme bieten darüber hinaus noch die Möglichkeit, einzelne Regeln zu kommentieren oder zeitabhängig zu aktivieren.
| |
| * Eine Möglichkeit des Kommentierens von Regeln, IP-Adressen und [http://de.wikipedia.org/wiki/Dienst Diensten] ist sehr nützlich, um unbenutzte Regeln oder Teile davon identifizieren und löschen zu können.
| |
| * Denn das Aufräumen eines unübersichtlich gewordenen Regelwerks nach der Methode [http://de.wikipedia.org/wiki/Versuch_und_Irrtum Versuch und Irrtum] ist auf einer produktiven Firewall praktisch unmöglich.
| |
|
| |
| Die Port-Nummer hat nur beschränkt Einfluss darauf, welcher Dienst tatsächlich über diese Regel laufen darf.
| |
| * Es ist beispielsweise technisch möglich, eine SSH-Verbindung so zu konfigurieren, dass sie statt über ihren Standardport TCP 22 über TCP 80 für HTTP läuft.
| |
| * Dies kann nur eine [http://de.wikipedia.org/wiki/Firewall#Application_Layer_Firewall_.2F_Proxy_Firewall Application Layer Firewall] verhindern.
| |
|
| |
| Bei größeren Regelwerken lässt sich die Übersichtlichkeit mit Systemen steigern, in denen sich Adressen oder Dienste in Gruppen zusammenfassen lassen, z. B.
| |
| * könnte eine Gruppe „Maildienste“ die Mitglieder SMTP, POP3 und IMAP haben.
| |
| * Eine andere Möglichkeit der Definition von IP-Adressen und Portnummern sind Zahlenbereiche, z. B. 10.0.0.30–10.0.0.40 oder Port 135–139.
| |
| * Bei IP-Adressen ist dies in der Verarbeitung allerdings langsamer, als Netzbereiche mit [http://de.wikipedia.org/wiki/Netzmaske Netzmaske] anzugeben.
| |
|
| |
| === Verwerfen, Ablehnen und Erlauben ===
| |
| Die Regeln einer Firewall legen fest, was mit einem Netzwerkpaket passieren soll, welches in das Muster eines Filters passt.
| |
| * Es wird zwischen den folgenden Aktionen unterschieden, die je nach Produkt unterschiedlich betitelt sein können:
| |
|
| |
| ==== DENY oder DROP (Verwerfen) ====
| |
| Das Paket wird verworfen, also nicht durchgelassen, ohne weiter darauf zu reagieren.
| |
| * Der Absender erhält keine Nachricht darüber, dass sein Verbindungsversuch blockiert wurde.
| |
| * Der Nachteil des Verwerfens ist, dass der Sender erst nach einem Timeout von dem missglückten Verbindungsversuch erfährt.
| |
|
| |
| Probleme bereitet dies mit dem [http://de.wikipedia.org/wiki/Ident Ident]-Protokoll, das oft zusammen mit [http://de.wikipedia.org/wiki/Internet_Relay_Chat IRC] und selten noch mit [http://de.wikipedia.org/wiki/Simple_Mail_Access_Protocol SMTP] eingesetzt wird.
| |
| * Das Netzwerk wird durch zusätzliche Anfragen belastet, weil die Clients keine explizite Ablehnung erhalten und weiterhin versuchen, die Verbindung aufzubauen.
| |
| * Zudem fällt das Debuggen, also die Suche nach Fehlerursachen, in einem Netz schwer, wenn die Systeme auf eine Anfrage nicht reagieren, statt eine Statusmeldung zurückzuschicken.
| |
|
| |
| ==== REJECT (Ablehnen) ====
| |
| Das Paket wird verworfen und dem Absender wird mitgeteilt, dass die Verbindung abgelehnt wurde.
| |
| * Generell entspricht das eher dem Standard bei der Kommunikation zwischen Netzwerkkomponenten.
| |
| * Die Mitteilung erfolgt entweder über [http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP]-Unreachable oder bei [http://de.wikipedia.org/wiki/Transmission_Control_Protocol TCP] mit einem Reset-Paket.
| |
| * Das Ablehnen hat den Vorteil, dass die beschriebenen Nebenwirkungen des einfachen Verwerfens ausbleiben.
| |
|
| |
| Es hat aber auch den Nachteil, dass bei der Verwendung von gefälschten IP-Adressen die Firewall selbst für [http://de.wikipedia.org/wiki/Denial_of_Service Denial-of-Service]-Angriffe missbraucht werden kann, indem sie den vermeintlichen Absender mit Ablehnungspaketen belastet.
| |
| * Einige Firewalls besitzen Funktionen wie ICMP-Rate-Limiting, die dieser Problematik entgegenwirken.
| |
|
| |
| ==== ALLOW oder PASS (Erlauben) ====
| |
| Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
| |
| * Diese Begriffe beziehen sich meist auf den ausgehenden Datenverkehr (also vom internen hin zum externen Netz, bzw.
| |
| * bei Personal Firewalls vom eigenen Computersystem ins Netz).
| |
|
| |
| ==== FORWARD oder PERMIT (Erlauben) ====
| |
| Die Netzwerkanfrage ist erlaubt und wird weitergeleitet, was die Möglichkeit einer Umleitung auf eine vom Administrator festgelegte Netzwerkadresse einschließt.
| |
| * Diese Begriffe beziehen sich vorwiegend auf den eingehenden Datenverkehr (also vom externen hin zum internen Netz, bzw.
| |
| * bei Personal Firewalls auf Anfragen aus dem Netz).
| |
|
| |
| === Sicherheitsgrundsätze ===
| |
| Das ideale Regelwerk einer Firewall ist immer so aufgebaut, dass grundsätzlich jeder Netzwerk-Verkehr verboten ist und die erwünschten Verbindungen erlaubt werden ("Whitelist"-Strategie).
| |
| * Die andere Variante, nur unerwünschten Verkehr zu verbieten und alles andere zu erlauben, kann im schnellen Wandel der IT-Welt niemals als sicher betrachtet werden.
| |
| * Die Absender- und Ziel-Adressen werden in der Regel immer numerisch und nicht als [http://de.wikipedia.org/wiki/Domain_Name_System DNS]-Name angegeben, um zu verhindern, dass ein Angreifer durch Änderungen im DNS auf das Regelwerk Einfluss nehmen kann.
| |
|
| |
| === Protokolle ("logging") ===
| |
| Protokolldateien (umgangsspr: [http://de.wikipedia.org/wiki/Logdatei Logdateien]) dienen der Nachvollziehbarkeit des Netzwerkverkehrs und der Fehlersuche.
| |
| * Die Protokollierung kann auf der Firewall selbst erfolgen, wenn diese eine eingebaute Festplatte hat, oder auf einem entfernten "Log-Host".
| |
| * In diesem Falle kommen teils proprietärere Protokolle oder [http://de.wikipedia.org/wiki/Syslog Syslog] zum Einsatz.
| |
|
| |
| Müssen die Log-Dateien [http://de.wikipedia.org/wiki/Revisionssicherheit revisionssicher] aufbewahrt werden, empfiehlt sich ein System, das einen Log-Host benutzt und für den Fehlerfall lokal protokollieren kann.
| |
| * Für die Auswertung von Log-Dateien ist es sehr hilfreich, wenn jeder Regel eine einzigartige Nummer zugewiesen werden kann, damit die Einträge den entsprechenden Regeln zugeordnet werden können.
| |
|
| |
| Manche Firewalls loggen jedes einzelne Netzwerkpaket, andere erstellen einen Log-Eintrag pro Verbindung.
| |
| * Grundsätzlich protokolliert eine Firewall alle Verbindungen.
| |
| * Ausnahmen werden nur gemacht, wenn einzelne Regeln so viele Logeinträge produzieren, dass es zu technischen Problemen oder Geschwindigkeitseinbußen kommt.
| |
| * Dies kann z. B.
| |
| * bei [http://de.wikipedia.org/wiki/Denial_of_Service Denial of Service]-Angriffen passieren oder wenn [http://de.wikipedia.org/wiki/Computerwurm Würmer] im Netzwerk aktiv sind.
| |
| * Eine Möglichkeit, dies zu vermeiden, ist eine eigene Regel für diese Wurmangriffe, welche nicht protokolliert werden.
| |
|
| |
| === Stealth-Regel ===
| |
| Eine "Stealth"-Regel (deutsch etwa: „heimliche Regel“ oder „listige Regel“) dient dem Eigenschutz der Firewall und verbietet alle Verbindungen zu ihr selbst.
| |
| * Da die Reihenfolge der Regeln relevant ist, müssen davor noch die [http://de.wikipedia.org/wiki/Administrator_%28Rolle%29 Administrations]-Dienste für die Firewall erlaubt werden, damit diese Pakete nicht auch verworfen werden.
| |
| * Warum eine Stealth-Regel notwendig ist, wird aus folgendem Beispiel ersichtlich:* Die Firewall hat auf einem Interface die IP-Adresse 10.0.0.1
| |
| * Es gibt eine Regel, die allen Firmen-PCs [http://de.wikipedia.org/wiki/Secure_Shell SSH]-Verbindungen zu den Servern im Netz 10.0.0.0/24 erlaubt.
| |
|
| |
| Da 10.0.0.1 auch ein Teil des Netzes 10.0.0.0/24 ist, dürften alle PCs in diesem Netz auf den SSH-Port der Firewall zugreifen, was die Firewall für Innentäter angreifbarer machen würde.
| |
|
| |
| === ICMP-Regeln ===
| |
| [http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP] dient im Netzwerk zum Austausch von Fehler- und Informationsmeldungen, kann aber auch für Angriffe im Netzwerk missbraucht werden.
| |
| * Da die rigorose Methode, ICMP entweder ganz zu blockieren oder stets zu erlauben, zuviele Probleme verursachen würde, empfehlen Fachleute, die folgenden Typen freizuschalten:* ICMP Unreachable
| |
| * ICMP Unreachable, Fragmentation Needed (wird verwendet von [http://de.wikipedia.org/wiki/Path_MTU_Discovery Path MTU Discovery])
| |
| * ICMP Time Exceeded in Transit (TTL expired in transit bei [http://de.wikipedia.org/wiki/Traceroute traceroute] unter UNIX und [http://de.wikipedia.org/wiki/Tracert tracert] unter Windows)
| |
| * ICMP Echo Request (ausgehend, wird benutzt von [http://de.wikipedia.org/wiki/Ping_%28Datenübertragung%29 Ping])
| |
|
| |
| Alle anderen ICMP-Typen werden nur nach Bedarf freigeschaltet, bei einer Firewall ins Internet restriktiver als bei einer zwischen zwei internen Netzen.
| |
| * Wegen des Missbrauchpotenzials ist der Typ ICMP-Redirect in der Regel gesperrt.
| |
| * Die Nachricht "ICMP Echo Request" eingehend zu erlauben erleichtert Außenstehenden zwar die Fehlersuche, ermöglicht [http://de.wikipedia.org/wiki/Cracker_%28Computer%29 Crackern] aber auch das Auskundschaften des Netzes.
| |
| * Außerdem gibt es auch in "ICMP Echo" immer wieder [http://de.wikipedia.org/wiki/Sicherheitslücke_%28Software%29 Sicherheitslücken] wie z.B. [http://de.wikipedia.org/wiki/Ping_of_Death Ping of Death] und andere.
| |
|
| |
| Werden ICMP-Unreachable-Fragmentation-Needed-Pakete an einem Punkt der Route gefiltert, zum Beispiel durch ein einfaches „ICMP deny“, kann es zu Übertragungsproblemen kommen, wie im Artikel [http://de.wikipedia.org/wiki/Maximum_Transmission_Unit Maximum Transmission Unit] beschrieben.
| |
|
| |
| === Ausgehender Datenverkehr ===
| |
| Häufig wird die Kontrolle des ausgehenden Verkehrs vernachlässigt.
| |
| * So lassen viele Firewalls grundsätzlich ausgehenden Verkehr für alle Ports offen.
| |
| * Damit stehen Schadprogrammen auf simple Weise Kommunikationswege offen, die vom Betreiber der Maschine gar nicht erkannt werden - Spamversand ist ein typischer Fall.
| |
|
| |
| Auf einer gut konfigurierten Firewall sind solche Wege gesperrt.
| |
| * Beispielsweise sollte ausgehende Mail nur über den Mailserver möglich sein; alle anderen Wege sind gesperrt (Unter Linux/Netfilter kann man ausgehende Verbindungen an eine Benutzer- oder Gruppen-ID binden).
| |
| * Dann können Schadprogramme zwar immer noch senden, fallen aber in der Log-Datei schnell auf.
| |
| [[Kategorie:Firewall]]
| |
|
| |
| = TMP = | | = TMP = |
| == Sicherheitsgrundsätze == | | == Sicherheitsgrundsätze == |
In einem Firewall-Regelwerk wird definiert, welcher Verkehr durch eine Firewall erlaubt und welcher verboten ist.
- Die Methode basiert auf Mandatory Access Control: Je nach Absender, Zustelladresse, Protokoll und Sendevorgang erlaubte Datenpakete dürfen passieren (engl.
- pass), verbotene werden abgelehnt (deny, reject) oder verworfen (drop).
- Dieser Schutzmechanismus ist selbst Ziel etlicher spezifischer Angriffsmöglichkeiten.
Ein Firewall-Regelwerk legt fest, welcher Verkehr durch eine Firewall möglich ist.
Beschreibung
Installation
Anwendungen
Fehlerbehebung
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Konfiguration
Dateien
Sicherheit
Dokumentation
RFC
Man-Pages
Info-Pages
Siehe auch
- Firewall
- Firewalld
- ufw
- OPNsense
Links
Projekt-Homepage
Weblinks
- https://de.wikipedia.org/wiki/Firewall-Regelwerk
Einzelnachweise
Testfragen
TMP
TMP
Sicherheitsgrundsätze
"Blacklist"-Strategie
Es ist alles erlaubt, was nicht explizit verboten ist.
- Ansatz versucht, alle nicht erwünschten Kommunikationsverbindungen zu definieren und somit auszuschließen - alles andere bleibt erlaubt
- benutzerfreundlich, da neue Dienste automatisch erlaubt sind - dadurch jedoch ebenso gefährlich
"Whitelist"-Strategie
Es ist alles verboten, was nicht explizit erlaubt ist.
- sperrt zunächst sämtliche Kommunikation
- Kommunikationsverbindungen müssen explizit freigeschaltet werden
- Dienste, die neu hinzukommen, sind somit zunächst gesperrt
Verwerfen, Ablehnen und Erlauben
Ein Paketfilter arbeit auf den OSI-Schichten 3 & 4. Daher kann ankommender bzw. ausgehender Datenverkehr auf Eigenschaften geprüft werden, die dem jeweiligen Protokoll-Header entnommen werden:
- IP-Adresssen: Quelladresse und Zieladresse
- Protokoll: TCP, UDP & ICMP
- Flags: bei TCP - für den korrekten Verbindungsaufbau, die Datenübertragung und den Verbindungsabbau
- Ports: Quell-Port & Ziel-Port (z.Bsp. für HTTP, SSH, SMTP)
- ICMP-Code: bei ICMP
- Auf der Grundlage von Regeln, die vom Administrator festgelegt werden, entscheidet die Firewall, wie mit einem Datenpaket umzugehen ist:
- DENY oder DROP (Verwerfen) : Das Paket wird verworfen. Der Absender erhält keinerlei Rückmeldung.
- REJECT (Ablehnen): Das Paket wird verworfen. Der Absender wird darüber in Kenntnis gesetzt (ICMP Unreachable oder TCP-Reset)
- ALLOW oder PASS (Erlauben): Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
- FORWARD oder PERMIT (Erlauben): Die Netzwerkanfrage ist erlaubt und wird weitergeleitet.
Die Reihenfolge entscheidet:
- Regelwerk wird von oben nach unten abgearbeitet - sobald eine passende Regel gefunden wird, wird diese angewandt & die jeweils definierte Aktion ausgeführt
- sämtliche nachfolgenden Regeln werden nicht ausgewertet
Protokolle ("logging")
- Grundsätzlich protokolliert eine Firewall alle Verbindungen
- Nachvollziehbarkeit des Netzwerkverkehrs und der Fehlersuche
Stealth-Regel
Eine "Stealth"-Regel (deutsch etwa: „heimliche Regel“ oder „listige Regel“) dient dem Eigenschutz der Firewall und verbietet alle Verbindungen zu ihr selbst.
ICMP-Regeln
- ICMP (Internet Control Message Protocol) dient im Netzwerk zum Austausch von Fehler- und Informationsmeldungen - bietet aber auch Angriffsmöglichkeiten.
Ein vollständiges Blockieren von ICMP ist jedoch nicht sinnvoll. Empfohlen wird, die folgenden empfohlen Typen freizuschalten:
- ICMP Unreachable
- ICMP Unreachable, Fragmentation Needed (wird verwendet von Path MTU Discovery)
- ICMP Time Exceeded in Transit (TTL expired in transit bei traceroute unter UNIX und tracert unter Windows)
- ICMP Echo Request (ausgehend, wird benutzt von Ping)
Ausgehender Datenverkehr
- Gute Firewalls können auch ausgehenden Netzwerkverkehr filtern
- Zum Beispiel, weil ausgehende Mail nur über den internen Mailserver möglich sein sollen
Links
Interne Links
- Firewall
- Firewall:Firewalld
- Firewall:Uncomplicated_Firewall_(ufw)
- OPNsense
Externe Links
- https://de.wikipedia.org/wiki/Firewall-Regelwerk
Ein Firewall-Regelwerk legt fest, welcher Verkehr durch eine Firewall möglich ist.
Sicherheitsgrundsätze
- jeder Netzwerk-Verkehr ist verboten
- die erwünschten Verbindungen erlaubt ("Whitelist"-Strategie)
oder
- jeder Netzwerk-Verkehr ist erlaubt
- die nicht erwünschten Verbindung sind verboten ("Blacklist"-Strategie)
Verwerfen, Ablehnen und Erlauben
- Die Regeln einer Firewall legen fest, was mit einem Netzwerkpaket passieren soll,
- DENY oder DROP (Verwerfen) : Das Paket wird verworfen, also nicht durchgelassen.Ohne Rückmeldung.
- REJECT (Ablehnen): Das Paket wird verworfen und dem Absender wird mitgeteilt.
- ALLOW oder PASS (Erlauben): Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
- FORWARD oder PERMIT (Erlauben): Die Netzwerkanfrage ist erlaubt und wird weitergeleitet(Administrator)
Die relevante Reihenfolge
erlaubt und welcher verboten ist basiert auf Mandatory Access Control - (die erste zutreffende Regel wird angewendet):
- Absender-IP-Adresse(auch Netzwerk-Adressen wie z. B. 192.168.0.0/24)
- Zielmarke|Ziel-IP-Adresse
- Netzwerkprotokoll (Transmission Control Protocol|TCP, User Datagram Protocol|UDP, Internet Control Message Protocol|ICMP, …)
- Port (Protokoll)|Port-Nummer (bei TCP und UDP)
- Aktion (erlauben, verwerfen oder ablehnen)
- Logdatei|Protokollieren (engl. "log") ja/nein
Protokolle ("logging")
- Grundsätzlich protokolliert eine Firewall alle Verbindungen
- Nachvollziehbarkeit des Netzwerkverkehrs und der Fehlersuche
Stealth-Regel
Eine "Stealth"-Regel (deutsch etwa: „heimliche Regel“ oder „listige Regel“) dient dem Eigenschutz der Firewall und verbietet alle Verbindungen zu ihr selbst.
ICMP-Regeln
- ICMP (Internet Control Message Protocol)dient im Netzwerk zum Austausch von Fehler- und Informationsmeldungen.
- entweder ganz zu blockieren oder stets zu erlauben
- die folgenden empfohlen Typen freizuschalten:
- ICMP Unreachable
- ICMP Unreachable, Fragmentation Needed (wird verwendet von Path MTU Discovery)
- ICMP Time Exceeded in Transit (TTL expired in transit bei traceroute unter UNIX und tracert unter Windows)
- ICMP Echo Request (ausgehend, wird benutzt von Ping)
Ausgehender Datenverkehr
- Gute Firewalls können auch ausgehenden Netzwerkverkehr filtern
- Zum Beispiel, weil ausgehende Mail nur über den internen Mailserver möglich sein sollen