OPNsense/Firewall/Regeln/Grundlagen
Grundlagen
Bevor Sie Regeln erstellen, sollten Sie einige Grundlagen kennen, die für alle Regeln gelten.
Zustände
Standardmäßig sind Regeln auf „zustandsbehaftet“ gesetzt (Sie können dies ändern, aber das hat Konsequenzen), was bedeutet, dass der Zustand einer Verbindung in einem lokalen Wörterbuch gespeichert wird, das bei Eintreffen des nächsten Pakets aufgelöst wird. Das hat zur Folge, dass die Firewall bei Vorhandensein eines Zustands nicht alle Regeln erneut verarbeiten muss, um die anzuwendende Aktion zu bestimmen, was enorme Leistungsvorteile mit sich bringt.

Ein weiterer Vorteil der zustandsbehafteten Paketfilterung besteht darin, dass Sie nur den Datenverkehr in einer Richtung zulassen müssen, um verwandte Pakete für denselben Fluss automatisch zurückzulassen. Das folgende Diagramm zeigt eine TCP-Verbindung von einem Client zu einem Server für HTTPS-Datenverkehr. Wenn keine zustandsbehafteten Regeln verwendet werden, sollte sowohl dem Client als auch dem Server die Übertragung von Datenverkehr an den Port 443 des Servers (in der Regel ein Port >=1024) gestattet sein.
Die Verwendung von Zuständen kann auch die Sicherheit verbessern, insbesondere bei TCP-Datenverkehr, da auch die Sequenznummern und Zeitstempel der Pakete überprüft werden, um den Datenverkehr durchzulassen, wodurch es viel schwieriger ist, Datenverkehr zu fälschen.
- Hinweis
- Wenn Sie Regeln ändern, ist es manchmal erforderlich, die Zustände zurückzusetzen, um sicherzustellen, dass die neuen Richtlinien für den bestehenden Datenverkehr verwendet werden. Sie können dies unter Firewall ‣ Diagnose ‣ Zustände tun.
- Hinweis
- Um Zustände zu speichern, muss das System Speicher reservieren. Standardmäßig sind 10 % des Systemspeichers für Zustände reserviert. Dies kann unter Firewall ‣ Einstellungen ‣ Maximale Firewall-Zustände konfiguriert werden. (Der Hilfetext zeigt die Standardanzahl der Zustände auf Ihrer Plattform an.
Zustände können auch sehr praktisch sein, um jederzeit die aktivsten Benutzer Ihrer Firewall zu finden. Zu diesem Zweck haben wir einen benutzerfreundlichen „Sitzungsbrowser“ hinzugefügt. Sie finden ihn unter Firewall ‣ Diagnostik ‣ Sitzungen.
- Tipp
- Zustände spielen auch eine wichtige Rolle beim Schutz von Diensten vor (verteilten) Denial-of-Service-Angriffen (DDOS). Relevante Themen finden Sie in unserer Dokumentation unter „synproxy“-Zustände, Verbindungsbeschränkungen und syncookies.
Aktion
Regeln können auf drei verschiedene Aktionstypen festgelegt werden:
- Pass –> Datenverkehr zulassen
- Block –> Datenverkehr ablehnen und den Client nicht darüber informieren, dass er abgelehnt wurde (was in der Regel für nicht vertrauenswürdige Netzwerke ratsam ist)
- Reject –> Datenverkehr ablehnen und den Client darüber informieren. (Nur TCP und UDP unterstützen die Ablehnung von Paketen, was im Falle von TCP bedeutet, dass ein RST zurückgegeben wird, für UDP wird ICMP UNREACHABLE zurückgegeben).
Für interne Netzwerke kann es sinnvoll sein, „Ablehnen“ zu verwenden, damit der Client nicht auf eine Zeitüberschreitung warten muss, wenn der Zugriff nicht erlaubt ist. Wenn Sie Pakete aus nicht vertrauenswürdigen Netzwerken empfangen, möchten Sie in der Regel nicht zurückkommunizieren, wenn der Datenverkehr nicht erlaubt ist.
Verarbeitungsreihenfolge

Firewall-Regeln werden nacheinander pro Abschnitt verarbeitet, wobei zuerst der Abschnitt „Floating-Regeln“ ausgewertet wird, gefolgt von allen Regeln, die zu Schnittstellengruppen gehören, und schließlich allen Schnittstellenregeln.
Interne (automatische) Regeln werden in der Regel zuerst registriert.
Regeln können entweder auf „quick“ gesetzt oder nicht auf „quick“ gesetzt werden, wobei „quick“ die Standardeinstellung ist. Wenn „quick“ gesetzt ist, wird die Regel nach dem Prinzip „first match“ behandelt, d. h., die erste Regel, die auf das Paket zutrifft, hat Vorrang vor den nachfolgenden Regeln.
Wenn „quick“ nicht gesetzt ist, gewinnt die letzte Übereinstimmung. Dies kann für Regeln nützlich sein, die das Standardverhalten definieren. Unsere Standard-Ablehnungsregel nutzt diese Eigenschaft beispielsweise (wenn keine Regel zutrifft, wird der Datenverkehr abgelehnt).
- Hinweis
- Intern werden Regeln anhand einer Priorität registriert, Floating verwendet 200000, Gruppen verwenden 300000 und Schnittstellenregeln landen bei 400000 in Kombination mit der Reihenfolge, in der sie erscheinen. Automatische Regeln werden in der Regel mit einer höheren Priorität (niedrigere Zahl) registriert.
- Warnung
- NAT-Regeln werden immer vor Filterregeln verarbeitet! Wenn Sie beispielsweise eine NAT: Portweiterleitungsregel ohne zugehörige Regel definieren, d. h. die Filterregelzuordnung auf Pass gesetzt ist, hat dies zur Folge, dass keine anderen Regeln angewendet werden!
- Tipp
- Die Schnittstelle sollte alle verwendeten Regeln anzeigen. Im Zweifelsfall können Sie jederzeit die Rohausgabe des Regelsatzes in /tmp/rules.debug überprüfen.
Regelfolge
Die Reihenfolge, in der die Regeln angezeigt und verarbeitet werden, kann pro Abschnitt angepasst werden:
- Wählen Sie eine oder mehrere Regeln über das Kontrollkästchen links neben der Regel aus.
- Verwenden Sie die Pfeiltaste im Aktionsmenü rechts neben einer Regel, um ausgewählte Regeln vor die Regel zu verschieben, bei der die Aktionstaste gedrückt wird.
- Oder Sie können die Pfeiltaste oben in der Kopfzeile verwenden, um die ausgewählten Regeln an das Ende zu verschieben.
Richtung

Der Datenverkehr kann in der Richtung in[coming] oder out[going] abgeglichen werden. Standardmäßig wird nach der eingehenden Richtung gefiltert. In diesem Fall würden Sie die Richtlinie auf der Schnittstelle festlegen, von der der Datenverkehr stammt.
Wenn Sie beispielsweise den https-Datenverkehr von jedem Host im Internet zulassen möchten, würden Sie normalerweise eine Richtlinie auf der WAN-Schnittstelle festlegen, die den Port 443 für den betreffenden Host zulässt.
- Hinweis
- Datenverkehr, der die Firewall verlässt, wird standardmäßig akzeptiert (unter Verwendung einer Nicht-Schnellregel). Wenn Gateway erzwingen unter Firewall ‣ Einstellungen ‣ Erweitert nicht aktiviert ist, wird auch das verbundene Gateway erzwungen.