Verständnisfrage zu FW-Regel



  • Hallo,

    ich habe die Regel auf der pfsense noch nicht ganz verstanden und würde mich freuen, wenn mir jemand helfen könnte.
    Auf der Firewall sind drei Interfaces konfiguriert. Ein WAN (172.16.1.0) und zwei LAN-Interface (SAFE=10.170.1.0 und LAN=10.168.1.0)
    Zwischen den beiden LAN Interfaces sollte Traffic möglich sein.
    Dafür habe ich folgende Regel gesetzt:
    0_1541431900291_9ac5c7e9-808d-47cd-8a90-5ac7c5a74b35-grafik.png

    und
    0_1541431938351_5bc75dd6-20f5-4d9c-b4c4-7c2356d1c845-grafik.png

    Trotzdem sehe ich, dass folgender Traffic geblockt wurde. Eigentlich müßten die Pakete doch nicht geblockt werden, oder?
    0_1541434378217_ceb92cb5-ea6c-4615-9a3b-86b34137a7c1-grafik.png



  • Hallo!

    Die geblockten Pakete sind "out of state".

    Die Regeln werden nur für SYN-Pakete überprüft und angewandt. Trifft eine Regel zu, die das Paket erlaubt, wird der Verbindungszustand (State) gespeichert und mit jedem weiteren Paket der Verbindung aktualisiert. Pakete dieser Verbindung können dann in der erwarteten Reihenfolge passieren.

    Die geloggten Pakete kamen entweder nach dem Schließen der Verbindung am pfSense-Interface an, oder, wohl eher zutreffend, das erwartete Paket nahm eine andere Route (asymmetrisches Routing). Dieses fehlt der pfSense und andere werden blockiert.
    Hast du auf einem der beiden Interfaces vielleicht noch einen anderen Router laufen, über welchen einer der beteiligten Hosts seinen Traffic schickt?

    Grüße



  • @viragomann said in Verständnisfrage zu FW-Regel:

    out of state

    Hallo,

    vielen Dank für Deine Antwort.

    Ich habe danach gefiltert und festgestellt, dass es bei Paketen passiert, die von SAFE in LAN gehen und überwiegend ist die 10.170.1.20 (Raspberry Pi) betroffen.

    Die 10.168.1.90 ist über einen Switch direkt an der pfsense am Interface LAN angeschlossen.
    Die 10.170.1.20 sind über einen Accesspoint (FritzBox) mit der pfsense verbunden. Auf keinem der Devices ist eine Route eingetragen (weder FB, noch pfsense). Daher sollte es keine anderen Wege geben.

    Das heißt, ich brauche mir eigentlich darüber keine Gedanken zu machen, da es kein Problem der FW, sondern evtl. ein unsauberes Protokoll ist?

    Viele Grüße
    Mattias



  • Ein "unsauberes Protokoll" wird wohl nicht für die geblockten Pakete verantwortlich sein. Soweit wissen die Hersteller schon, das TCP richtig zu implementieren.

    Wenn die beiden beteiligten Geräten das jeweilige pfSense-Interface als Standardgateway verwenden und keine weiteren Routen haben, sollte es auch kein Routing-Problem sein.

    Wie erwähnt, es könnten auch Verbindungs-Timeouts dafür verantwortlich sein. Sollte es das sein, kann es zu Verzögerungen in der Kommunikation kommen, weil hier der TCP-Stack am Gerät davon ausgeht, dass die Verbindung noch aktiv ist und darüber zu senden versucht. Es braucht oft einige Versuche bis er die Verbindung aufgibt und einen neue öffnet.
    Möglicherweise ist dein State-Timeout auch eher kurz oder es handelt sich um "Langzeit-Verbindungen". Letzteres müsstest du beurteilen können, ich weiß nicht, was für eine Art Verbindung das ist.
    Kürzere State-Timeouts ergeben sich, wenn sehr viele Verbindungen geöffnet sind und die State Table nahe dem Limit ist (siehe State table size am Dashboard), oder auch durch die Einstellung "Aggressive" bei System > Advanced > Firewall & NAT > Firewall Optimization Options.
    Ggf. könnte man den State-Timeout auch erhöhen. Wenn es nur bei diesem einen Protokoll ist, dann auch nur in der dafür zuständigen Firewall-Regel in den Advanced Options.

    Grüße



  • @viragomann

    Ich habe heute morgen mal danach gesucht, aber noch keine eindeutigen Fehler gefunden.

    Das Standard-GW auf dem Raspberry sollte über DHCP richtig gesetzt sein:
    0_1541487877691_38fa8a28-8ba8-4da2-8483-a948c680b4b0-grafik.png

    Eine Langzeitverbindung sollte es zwischen den beiden Geräten nicht geben und die State-Tabelle macht auch keinen aufgeregten Eindruck.

    0_1541487795051_21119eb0-f9fe-4691-ab6e-622e27fb843c-grafik.png

    Die Firewall Optimization habe ich auch überprüft, die steht auf normal.

    Ich glaube, damit kann ich aber ganz gut leben. Gelernt habe ich auf jeden Fall, dass ich mir das TCP-Flag in Zukunft besser ansehen werde, damit ich beurteilen kann, ob der Client tatsächlich geblockt wird. Das scheint ja hier nicht grundsätzlich der Fall zu sein.

    Dir schon mal herzlichen Dank für die schnelle und ausführliche Hilfe!!!

    P.S. Kann ich die geblockten Pakete, die durch diese Art entstehen, eigentlich in der Dashboard-View ausblenden?



  • Das Interface am Raspberry ist eine Bridge? Kann es damit zu tun haben?

    Die Pakete wurden von der "Default deny rule" geblockt, die alles blockt, was nicht durch andere Regeln erfasst wird. Man kann generell das Logging dieser Regel in den Log Settings abschalten. "Log packets matched from the default block rules in the ruleset"