Firewall/Regelwerk: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „Man-Pages“ durch „Man-Page“
 
(52 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein '''Firewall-Regelwerk''' legt fest, welcher Verkehr durch eine Firewall möglich ist
== Beschreibung ==
In einem Firewall-Regelwerk wird definiert, welcher Verkehr durch eine [http://de.wikipedia.org/wiki/Firewall Firewall] erlaubt und welcher [http://de.wikipedia.org/wiki/Verbot verboten] ist.
In einem Firewall-Regelwerk wird definiert, welcher Verkehr durch eine [http://de.wikipedia.org/wiki/Firewall Firewall] erlaubt und welcher [http://de.wikipedia.org/wiki/Verbot verboten] ist.
* Die Methode basiert auf [http://de.wikipedia.org/wiki/Mandatory_Access_Control 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).
Die Methode basiert auf [http://de.wikipedia.org/wiki/Mandatory_Access_Control 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.
* Dieser Schutzmechanismus ist selbst Ziel etlicher spezifischer Angriffsmöglichkeiten.


Ein '''Firewall-Regelwerk''' legt fest, welcher Verkehr durch eine Firewall möglich ist.
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
[[Kategorie:Firewall]]
=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
[[Kategorie:Entwurf]]
= TMP =
== Grundlagen  ==
== 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 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 angewandt.
* Die [http://de.wikipedia.org/wiki/Reihenfolge Reihenfolge] der Regeln ist daher relevant.
* 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.&nbsp;B. 192.168.0.0/24)
* 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.&nbsp;B.&nbsp;192.168.0.0/24)
# [http://de.wikipedia.org/wiki/Zielmarke Ziel]-IP-Adresse
# [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/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], …)
Zeile 85: Zeile 33:
Bei größeren Regelwerken lässt sich die Übersichtlichkeit mit Systemen steigern, in denen sich Adressen oder Dienste in Gruppen zusammenfassen lassen, z.&nbsp;B.
Bei größeren Regelwerken lässt sich die Übersichtlichkeit mit Systemen steigern, in denen sich Adressen oder Dienste in Gruppen zusammenfassen lassen, z.&nbsp;B.
* könnte eine Gruppe „Maildienste“ die Mitglieder SMTP, POP3 und IMAP haben.
* 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.&nbsp;B. 10.0.0.30–10.0.0.40 oder Port 135–139.
* Eine andere Möglichkeit der Definition von IP-Adressen und Portnummern sind Zahlenbereiche, z.&nbsp;B.&nbsp;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.
* 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  ===
=== 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 Regeln einer Firewall legen fest, was mit einem Netzwerkpaket passieren soll, welches in das Muster eines Filters passt.
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:
* Es wird zwischen den folgenden Aktionen unterschieden, die je nach Produkt unterschiedlich betitelt sein können:


==== DENY oder DROP (Verwerfen)  ====
=== DENY oder DROP (Verwerfen)  ===
Das Paket wird verworfen, also nicht durchgelassen, ohne weiter darauf zu reagieren.
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 Absender erhält keine Nachricht darüber, dass sein Verbindungsversuch blockiert wurde.
Zeile 103: Zeile 58:
==== REJECT (Ablehnen)  ====
==== REJECT (Ablehnen)  ====
Das Paket wird verworfen und dem Absender wird mitgeteilt, dass die Verbindung abgelehnt wurde.
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.
* Generell entspricht das eher dem Standard bei der Kommunikation zwischen Netzwerk/Hardwaren.
* 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.
* 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.
* Das Ablehnen hat den Vorteil, dass die beschriebenen Nebenwirkungen des einfachen Verwerfens ausbleiben.
Zeile 112: Zeile 67:
==== ALLOW oder PASS (Erlauben)  ====
==== ALLOW oder PASS (Erlauben)  ====
Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
* Diese Begriffe beziehen sich meist auf den ausgehenden Datenverkehr (also vom internen hin zum externen Netz, bzw.
* Diese Begriffe beziehen sich meist auf den ausgehenden Datenverkehr (also vom internen hin zum externen Netz, bzw.&nbsp;
* bei Personal Firewalls vom eigenen Computersystem ins Netz).
* bei Personal Firewalls vom eigenen Computersystem ins Netz).


==== FORWARD oder PERMIT (Erlauben)  ====
==== 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.
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.
* Diese Begriffe beziehen sich vorwiegend auf den eingehenden Datenverkehr (also vom externen hin zum internen Netz, bzw.&nbsp;
* bei Personal Firewalls auf Anfragen aus dem Netz).
* bei Personal Firewalls auf Anfragen aus dem Netz).


=== Sicherheitsgrundsätze  ===
===Die relevante Reihenfolge===
'''erlaubt''' und welcher '''verboten''' ist basiert auf Mandatory Access Control - (die erste zutreffende Regel wird angewandt):
 
# '''Absender-IP-Adresse'''(auch Netzwerk-Adressen wie z.&nbsp;B.&nbsp;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
 
== Verwerfen, Ablehnen und Erlauben ==
 
Ein Paketfilter arbeit auf den OSI-Schichten 3 & 4. Daher kann ankommender bzw.&nbsp;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
 
== 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).
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 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.
* 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.
; Sicherheitsgrundsätze
* jeder Netzwerk-Verkehr ist verboten
** die erwünschten Verbindungen erlaubt (Whitelist)
* jeder Netzwerk-Verkehr ist erlaubt
** die nicht erwünschten Verbindung sind verboten (Blacklist)
=== Blacklist  ===
; 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 ===
; 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


=== Protokolle ("logging")  ===
=== Protokolle ("logging")  ===
Zeile 139: Zeile 142:
* 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.
* 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.
* Eine Möglichkeit, dies zu vermeiden, ist eine eigene Regel für diese Wurmangriffe, welche nicht protokolliert werden.
====Protokolle ("logging")====
* Grundsätzlich protokolliert eine Firewall alle Verbindungen
* Nachvollziehbarkeit des Netzwerkverkehrs und der Fehlersuche


=== Stealth-Regel  ===
=== Stealth-Regel  ===
Eine "Stealth"-Regel (deutsch etwa: „heimliche Regel“ oder „listige Regel“) dient dem Eigenschutz der Firewall und verbietet alle Verbindungen zu ihr selbst.
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.
* 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
* 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.
* 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.
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.
====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-Regeln  ===
Zeile 158: Zeile 169:
* Wegen des Missbrauchpotenzials ist der Typ ICMP-Redirect in der Regel gesperrt.
* 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.
* 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.
* Außerdem gibt es auch in "ICMP Echo" immer wieder [http://de.wikipedia.org/wiki/Sicherheitslücke_%28Software%29 Sicherheitslücken] wie z.&nbsp;B.&nbsp;[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.
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.
====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  ===
=== Ausgehender Datenverkehr  ===
Zeile 170: Zeile 190:
* 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).
* 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.
* Dann können Schadprogramme zwar immer noch senden, fallen aber in der Log-Datei schnell auf.
[[Kategorie:Firewall]]


= TMP =
====Ausgehender Datenverkehr====
== Sicherheitsgrundsätze ==
* Gute Firewalls können auch ausgehenden Netzwerkverkehr filtern
* Zum Beispiel, weil ausgehende Mail nur über den internen  Mailserver möglich sein sollen


'''"Blacklist"-Strategie'''


Es ist alles erlaubt, was nicht explizit verboten ist.
[[Kategorie:Firewall]]
* 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'''
== Dokumentation ==
 
=== RFC ===
Es ist alles verboten, was nicht explizit erlaubt ist.
=== Man-Page ===
* sperrt zunächst sämtliche Kommunikation
=== Info-Pages ===
* Kommunikationsverbindungen müssen explizit freigeschaltet werden
== Siehe auch ==
* 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]]
# [[Firewall:Firewalld]]
# [[FirewallD]]
# [[Firewall:Uncomplicated_Firewall_(ufw)]]
# [[ufw]]
# [[OPNsense]]
# [[OPNsense]]


=== Externe Links ===
== Links ==
=== Projekt ===
=== Weblinks ===
# https://de.wikipedia.org/wiki/Firewall-Regelwerk
# https://de.wikipedia.org/wiki/Firewall-Regelwerk


Zeile 247: Zeile 219:




 
[[Kategorie:Firewall]]
 
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

Aktuelle Version vom 6. November 2024, 12:28 Uhr

Ein Firewall-Regelwerk legt fest, welcher Verkehr durch eine Firewall möglich ist

Beschreibung

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.

Grundlagen

Die Regeln werden für jedes Paket (bei Stateful Firewalls für jede neue Verbindung) der Reihe nach geprüft, und die erste zutreffende Regel wird angewandt.

  • Die Reihenfolge der Regeln ist daher relevant.
  • Eine Firewall-Regel setzt sich meist aus sechs Komponenten zusammen:# Absender-IP-Adresse (auch Netzwerk-Adressen wie z. B. 192.168.0.0/24)
  1. Ziel-IP-Adresse
  2. Netzwerkprotokoll (TCP, UDP, ICMP, …)
  3. Port-Nummer (bei TCP und UDP)
  4. Aktion (erlauben, verwerfen oder ablehnen)
  5. Protokollieren (engl. "log") ja/nein

Eine weitere mögliche Komponente ist bei TCP die Inspektion der 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 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 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 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 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 Netzmaske anzugeben.

Verwerfen, Ablehnen und Erlauben

  • Die Regeln einer Firewall legen fest, was mit einem Netzwerkpaket passieren soll,
  1. DENY oder DROP (Verwerfen) : Das Paket wird verworfen, also nicht durchgelassen.Ohne Rückmeldung.
  2. REJECT (Ablehnen): Das Paket wird verworfen und dem Absender wird mitgeteilt.
  3. ALLOW oder PASS (Erlauben): Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
  4. FORWARD oder PERMIT (Erlauben): Die Netzwerkanfrage ist erlaubt und wird weitergeleitet(Administrator)


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 Ident-Protokoll, das oft zusammen mit IRC und selten noch mit 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 Netzwerk/Hardwaren.
  • Die Mitteilung erfolgt entweder über ICMP-Unreachable oder bei 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 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).

Die relevante Reihenfolge

erlaubt und welcher verboten ist basiert auf Mandatory Access Control - (die erste zutreffende Regel wird angewandt):

  1. Absender-IP-Adresse(auch Netzwerk-Adressen wie z. B. 192.168.0.0/24)
  2. Zielmarke|Ziel-IP-Adresse
  3. Netzwerkprotokoll (Transmission Control Protocol|TCP, User Datagram Protocol|UDP, Internet Control Message Protocol|ICMP, …)
  4. Port (Protokoll)|Port-Nummer (bei TCP und UDP)
  5. Aktion (erlauben, verwerfen oder ablehnen)
  6. Logdatei|Protokollieren (engl. "log") ja/nein

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:
  1. DENY oder DROP (Verwerfen) : Das Paket wird verworfen. Der Absender erhält keinerlei Rückmeldung.
  2. REJECT (Ablehnen): Das Paket wird verworfen. Der Absender wird darüber in Kenntnis gesetzt (ICMP Unreachable oder TCP-Reset)
  3. ALLOW oder PASS (Erlauben): Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
  4. 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

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 DNS-Name angegeben, um zu verhindern, dass ein Angreifer durch Änderungen im DNS auf das Regelwerk Einfluss nehmen kann.
Sicherheitsgrundsätze
  • jeder Netzwerk-Verkehr ist verboten
    • die erwünschten Verbindungen erlaubt (Whitelist)
  • jeder Netzwerk-Verkehr ist erlaubt
    • die nicht erwünschten Verbindung sind verboten (Blacklist)

Blacklist

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

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

Protokolle ("logging")

Protokolldateien (umgangsspr: 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 Syslog zum Einsatz.

Müssen die Log-Dateien 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 Denial of Service-Angriffen passieren oder wenn Würmer im Netzwerk aktiv sind.
  • Eine Möglichkeit, dies zu vermeiden, ist eine eigene Regel für diese Wurmangriffe, welche nicht protokolliert werden.

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.

  • Da die Reihenfolge der Regeln relevant ist, müssen davor noch die 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 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.

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 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 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)

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 Crackern aber auch das Auskundschaften des Netzes.
  • Außerdem gibt es auch in "ICMP Echo" immer wieder Sicherheitslücken wie z. B. 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 Maximum Transmission Unit beschrieben.

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:

  1. ICMP Unreachable
  2. ICMP Unreachable, Fragmentation Needed (wird verwendet von Path MTU Discovery)
  3. ICMP Time Exceeded in Transit (TTL expired in transit bei traceroute unter UNIX und tracert unter Windows)
  4. ICMP Echo Request (ausgehend, wird benutzt von Ping)

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.

Ausgehender Datenverkehr

  • Gute Firewalls können auch ausgehenden Netzwerkverkehr filtern
  • Zum Beispiel, weil ausgehende Mail nur über den internen Mailserver möglich sein sollen

Dokumentation

RFC

Man-Page

Info-Pages

Siehe auch

  1. Firewall
  2. FirewallD
  3. ufw
  4. OPNsense

Links

Projekt

Weblinks

  1. https://de.wikipedia.org/wiki/Firewall-Regelwerk