Pfsense Regel pass ACK lässt SYN durch
Hi zusammen,
vielen Dank zunächst, für soviel geteiltes Wissen, dass mir schon häufig geholfen hat!
Zu folgender Problemstellung habe ich keine Beiträge finden können, auch nicht in anderen Foren - evtl. ist die Antwort auch so offensichtlich und simpel, dass ich selbst hier das Problem bin.
Ich habe in pfsense unter anderem zwei VLANs eingerichtet mit. u.a. folgenden Geräten:
Für die Interfaces habe ich folgende Regeln definiert:
In der Regel "allow ACK nas users to devices" habe ich definiert, dass sie nur für Pakete mit ACK-Flag greifen soll:
Ist diese Regel inaktiv, kann ich die Adresse 10.0.10.6 vom iPad per Browser nicht aufrufen.
Ist diese Regel aktiv, funktioniert der Aufruf, obwohl doch nach meinem Verständnis das erste Paket mit SYN-Flag gar nicht durchkommen dürfte. Hier mal ein Ausschnitt des TCP-Paketfluss auf dem IF_V20-WLAN-interface.
Wo mache ich denn hier den Denkfehler? Über einen Schubser in die richtige Richtung würde ich mich freuen.
Viele Grüße
Michael
p.s. Dass die ACK-Regel für den Verbindungsaufbau keinen Sinn macht, ist mir bewusst. Ich möchte nur gern verstehen, wieso meine Erwartungshaltung hier vom tatsächlichen Verhalten der firewall abweicht. Anscheinend habe ich hier etwas nicht richtig verstanden.
vielen Dank zunächst, für soviel geteiltes Wissen, dass mir schon häufig geholfen hat!
Zu folgender Problemstellung habe ich keine Beiträge finden können, auch nicht in anderen Foren - evtl. ist die Antwort auch so offensichtlich und simpel, dass ich selbst hier das Problem bin.
Ich habe in pfsense unter anderem zwei VLANs eingerichtet mit. u.a. folgenden Geräten:
- V10_LAN
- * NAS mit IP 10.0.10.6
- V20_WLAN
- * iPad mit IP 10.0.20.5
Für die Interfaces habe ich folgende Regeln definiert:
In der Regel "allow ACK nas users to devices" habe ich definiert, dass sie nur für Pakete mit ACK-Flag greifen soll:
Ist diese Regel inaktiv, kann ich die Adresse 10.0.10.6 vom iPad per Browser nicht aufrufen.
Ist diese Regel aktiv, funktioniert der Aufruf, obwohl doch nach meinem Verständnis das erste Paket mit SYN-Flag gar nicht durchkommen dürfte. Hier mal ein Ausschnitt des TCP-Paketfluss auf dem IF_V20-WLAN-interface.
Wo mache ich denn hier den Denkfehler? Über einen Schubser in die richtige Richtung würde ich mich freuen.
Viele Grüße
Michael
p.s. Dass die ACK-Regel für den Verbindungsaufbau keinen Sinn macht, ist mir bewusst. Ich möchte nur gern verstehen, wieso meine Erwartungshaltung hier vom tatsächlichen Verhalten der firewall abweicht. Anscheinend habe ich hier etwas nicht richtig verstanden.
Please also mark the comments that contributed to the solution of the article
Content-Key: 893015661
Url: https://administrator.de/contentid/893015661
Printed on: April 23, 2024 at 13:04 o'clock
6 Comments
Latest comment
Ein genereller Fehler sticht gleich ins Auge bei deinem Regelwerk. In deinen VLANs setzt du als Source Adresse immer ANY. Das ist nicht besonders intelligent was die Sicherheit anbetrifft.
Du solltest im VLAN 10 dann als Source Adress auch logischerweise vlan10_net nehmen respektive bei VLAN 20 dann vlan20_net denn du willst ja aus den Segmenten sicher keine Geräte mit illegalen Absender IPs in die Firewall zulassen sondern rein nur Clients aus diesen VLANs, oder ?
Das solltest du also sinnvollerweise noch anpassen. Das Regel GUI gibt diese Adressen im Pulldown Menü auch schon zur Auswahl automatisch vor.
Die große Frage ist jetzt was sich hinter deinen Aliases verbirgt. Leider machst du dazu keinerlei Angaben und damit ist es fast unmöglich das Regelwerk zu verstehen.
Wenn deine NAS User also Absender IPs aus dem VLAN 20 haben und auf das NAS zugreifen wollen was im VLAN 10 hängt dann geht das so OHNE diese Regel.
Generell dürfen also diese "NAS User" in Bezug auf die Reihenfolge auf das NAS zugreifen denn die VLAN 10 Blocking Regel kommt ja später.
Du machst aber hier schon den typischen Anfänger Denkfehler indem du vergessen hast das IMMER 2 Grundregeln gelten:
Es gilt: First Match wins ! Beim ersten positiven Hit im Regelwewrk wird der Rest NICHT mehr abgearbeitet !Dein 2ter Denkfehler bei der Regel ist das du annimmst das ACK Bist ist schon beim Session Aufbau gesetzt was aber nicht der Fall ist denn es ist nur das SYN Bit gesetzt. Erst der Antwortframe vom NAS in VLAN 10 hat das ACK Bit gesetzt und deshalb darf dieser Frame auch trotz VLAN 20 Blocking Regel im VLAN 10 dort passieren.
https://de.wikipedia.org/wiki/Transmission_Control_Protocol#Verbindungsa ...
Damit erkennst du vermutlich auch gleich selber diese falsche NAS Regel an VLAN 20
Es reichst also wenn du die Clients stinknormal ind VLAN 10 passieren lässt OHNE extended Settings, dannach dann VLAN 10 blockst. Fertisch !
Korrigiere das und dann kommt das auch sofort zum Fliegen !
Du solltest im VLAN 10 dann als Source Adress auch logischerweise vlan10_net nehmen respektive bei VLAN 20 dann vlan20_net denn du willst ja aus den Segmenten sicher keine Geräte mit illegalen Absender IPs in die Firewall zulassen sondern rein nur Clients aus diesen VLANs, oder ?
Das solltest du also sinnvollerweise noch anpassen. Das Regel GUI gibt diese Adressen im Pulldown Menü auch schon zur Auswahl automatisch vor.
In der Regel "allow ACK nas users to devices" habe ich definiert, dass sie nur für Pakete mit ACK-Flag greifen soll:
Das ist sinnfrei, denn die Firewall arbeitet stateful im Default. Frames mit gesetztem ACK Bit dürfen so oder so passieren. Hast du ja auch selber erkannt. Die große Frage ist jetzt was sich hinter deinen Aliases verbirgt. Leider machst du dazu keinerlei Angaben und damit ist es fast unmöglich das Regelwerk zu verstehen.
Wenn deine NAS User also Absender IPs aus dem VLAN 20 haben und auf das NAS zugreifen wollen was im VLAN 10 hängt dann geht das so OHNE diese Regel.
Generell dürfen also diese "NAS User" in Bezug auf die Reihenfolge auf das NAS zugreifen denn die VLAN 10 Blocking Regel kommt ja später.
Du machst aber hier schon den typischen Anfänger Denkfehler indem du vergessen hast das IMMER 2 Grundregeln gelten:
- Regeln wirken immer nur INbound !
https://de.wikipedia.org/wiki/Transmission_Control_Protocol#Verbindungsa ...
Damit erkennst du vermutlich auch gleich selber diese falsche NAS Regel an VLAN 20
Es reichst also wenn du die Clients stinknormal ind VLAN 10 passieren lässt OHNE extended Settings, dannach dann VLAN 10 blockst. Fertisch !
Korrigiere das und dann kommt das auch sofort zum Fliegen !
Source any hatte ich nur bei den "Block"-Regeln. Dadurch entsteht doch kein Sicherheitsrisiko, oder?
Da hast du natürlich Recht. Das hatte ich im Eifer des Gefechts verwechselt, sorry. Damit ist deine DENY Regel dann noch sicherer.Den NAS User 10.0.10.5 in eine Regel zu packen die am VLAN 20 aktiv ist unsinnig und wenig hilfreich.
dieser User arbeitet ja im gleichen Netzwerk des NAS selber wird also niemals über die Firewall laufen sondern immer via Layer 2 direkt mit dem NAS kommunizieren. Diese IP im Alias ist also völlig überflüssig.
Die Firewall regelt ja einzig nur VLAN übergreifenden Traffic (also gerouteten) niemals aber lokalen Traffic.
INbound bedeutet doch, dass ich Regeln für Pakete, die in V20_WLAN entstehen für das interface IF_V20_WLAN definieren muss, richtig?
Das ist richtig !Wenn das stimmt, muss ich doch für das iPad 10.0.20.5, das nun auf 10.0.10.6 zugreifen möchte, eine entsprechende Regel erstellen.
Das ist auch richtig !Dafür reicht eine ganz einfache IP basierte ALLOW Regel. OHNE die SYN oder ACK Bits !
Die Flags greifen im Regelwerk auch nur wenn du "TCP" als Protokoll auswählst, denn nur TCP hat diese Flags. Du hast aber nur "IP" gewählt und da wird das dann ignoriert denn der sieht nur in den Layer 3 nicht in den TCP Layer 4.
wieso diese Regel greift, obwohl ich das ACK-Flag gesetzt habe.
Das ist ganz einfach und logisch... Diese Regel greift schlicht und einfach nicht aus 2 Gründen:
- Das ACK SYN usw. Bit wird ignoriert da IP
- Es ist IP statt TCP im Protokoll ausgewählt. Erst das checkt die Flags
Ist besagte NAS-Regel aktiviert, funktioniert der Zugriff.
Liegt wie bereits daran das nur L3 greigt nicht aber die Flags weil du als Protokoll voren nur IP statt TCP definiert hast.In diesem Fall arbeitet das NAS allerdings in VLAN 10, sodass der traffic ja VLAN-übergreifend ist.
Nein, nicht für den Client 10.0.10.5 den du ja auch in der Alias Liste hast.Zumindestens der kommuniziert immer direkt mit dem NAS ohne FW da ja im gleichen IP Segment.
Den kannst du also aus der Cliant Alias Liste entfernen da überflüssig, denn mit der Host IP kann der logischerweise ja niemals aus dem VLAN 20 kommen.
Bin offensichtlich zu dumm für die Zitatfunktion
Einfach mal die FAQs lesen ! Ist kinderleicht... Du plazierst einfach nur ein ">" + Leerzeichen vorne vor die zu zitierende Zeile !