PfSense - Firewall Rules für AVAHI und Airplay
Hallo liebe Helfer,
Systeminfo
pfSense 2.4.5-RELEASE-p1 (amd64)
Package AVAHI 2.1_1
Cisco SG350
Unifi AP AC Pro
Einleitung
Ich habe mittlerweile AVAHI mit einer Neuinstallation des Packages zum Laufen bekommen. Mit einem Bonjour Scanner kann ich die Bonjour Dienste im Netzwerk sehen.
Ich konnte problemlos von meinem iPhone mittels "Bildschirmsynchronisierung (Airplay)" den Telefoninhalt auf meinem Samsung Fernseher darstellen
Netzwerkaufbau
VLAN_10_ADMIN
VLAN_30_IOT
Problem
Ich konnte eigentlich bis jetzt problemlos mein iPhone über Airplay auf dem Samsung wiedergeben. Seit kurzen geht es nicht mehr. Im iPhone findet er zwar den Samsung TV und ich kann ihn auch für Airplay auswählen, jedoch zeigt der Fernseher nichts an. Ich habe dann mit einem "Allow Any" und loggen der Firewall Regel mal geschaut was der Fernseher so macht. Er versucht einmal auf mein iPhone zuzugreifen von dem ja quasi die Anfrage kahm. Wenn ich das in den Firewall Rules explizit erlaube (obere ausgegraute Regel) geht Airplay wieder.
Jetzt ist natürlich das Ziel, dass der Fernseher nicht auf das iPhone im Admin Netz zugreifen kann. So hat es auch eigentlich bis vor Kurzem auch funktioniert. Die Anfrage kommt ja von meinem iPhone weshalb ich nicht verstehe, warum ich hier den Zugriff vom IOT VLAN explizit in das ADMIN VLAN erlauben muss. Normal müsste der Weg doch für die Rückantwort automatisch geöffnet werden.
Was kann sich da verstellt haben bzw. kann mir wer auf die Sprünge helfen?
Logging
AVAHI EInstellung
Systeminfo
pfSense 2.4.5-RELEASE-p1 (amd64)
Package AVAHI 2.1_1
Cisco SG350
Unifi AP AC Pro
Einleitung
Ich habe mittlerweile AVAHI mit einer Neuinstallation des Packages zum Laufen bekommen. Mit einem Bonjour Scanner kann ich die Bonjour Dienste im Netzwerk sehen.
Ich konnte problemlos von meinem iPhone mittels "Bildschirmsynchronisierung (Airplay)" den Telefoninhalt auf meinem Samsung Fernseher darstellen
Netzwerkaufbau
VLAN_10_ADMIN
- Netzwerk 192.168.10.1/24
- iPhone ist Teilnehmer
- Firewall Rule = ALLOW ANY
VLAN_30_IOT
- Netzwerk 192.168.30.1/24
- Samsung Fernseher ist Teilnehmer
- Firewall Rule =
Problem
Ich konnte eigentlich bis jetzt problemlos mein iPhone über Airplay auf dem Samsung wiedergeben. Seit kurzen geht es nicht mehr. Im iPhone findet er zwar den Samsung TV und ich kann ihn auch für Airplay auswählen, jedoch zeigt der Fernseher nichts an. Ich habe dann mit einem "Allow Any" und loggen der Firewall Regel mal geschaut was der Fernseher so macht. Er versucht einmal auf mein iPhone zuzugreifen von dem ja quasi die Anfrage kahm. Wenn ich das in den Firewall Rules explizit erlaube (obere ausgegraute Regel) geht Airplay wieder.
Jetzt ist natürlich das Ziel, dass der Fernseher nicht auf das iPhone im Admin Netz zugreifen kann. So hat es auch eigentlich bis vor Kurzem auch funktioniert. Die Anfrage kommt ja von meinem iPhone weshalb ich nicht verstehe, warum ich hier den Zugriff vom IOT VLAN explizit in das ADMIN VLAN erlauben muss. Normal müsste der Weg doch für die Rückantwort automatisch geöffnet werden.
Was kann sich da verstellt haben bzw. kann mir wer auf die Sprünge helfen?
Logging
AVAHI EInstellung
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 600902
Url: https://administrator.de/contentid/600902
Ausgedruckt am: 25.11.2024 um 03:11 Uhr
14 Kommentare
Neuester Kommentar
Normal müsste der Weg doch für die Rückantwort automatisch geöffnet werden.
Nur wenn es TCP ist, UDP hat einen festen Session Timeout.Bonjour nutzt aber Multicast mit einer nicht routebaren Link Local Multicast Gruppenadresse 224.0.0.251 und Port UDP 5353.
Nimm einen Wireshark oder den onboard Packet Tracer der pfSense und checke genau was der Fernseher vom iPhone will und öffne das dann mit einer spezifischen Regel.
Kannst du mir sagen was der Zugriff auf die 192.168.30.255 bedeutet?
Wie du selber weisst ist die .255 die Broadcast Adresse in dem Netzwerk. (.255 = alle Hostbits auf 1) Solche simplen Basics kennt man aber als Netzwerker... Broadcast Frames in diesem Netz an UDP Port 15600 blockt die Firewall also an ihrem Port. Eigentlich ganz logisch.
Wireshark ist hier wie immer dein Freund !
Auf einen bestimmten Port kann man das nicht beschränken oder?
Doch, natürlich ! Sowohl für die Destination als auch Sorce Adresse kannst du immer auch einen Port definieren !und sehe auch in wiederholten Captures das sich der Port regelmäßig ändert.
Ja, aber nur der Source Port, der ist ja immer Random. Nie aber der Destination Port. Auch das sind IP Basics die man kennen sollte...Oder habe ich da irgendwelche Böcke drinn?
Nope...sieht gut aus.
Sorry, aber die Aussage ist ausgemachter Blödsinn wenn du damit die Firewall-States meinst. Sonst würden ja bspw. DNS Abfragen über UDP auf dem Rückweg sofort an der Firewall hängen bleiben wenn diese den State dafür nicht vorhalten würde.
https://www.it-administrator.de/lexikon/stateful_packet_inspection.html
Was man aber beachte sollte sind die State-Timeouts für UDP-Packets, sind die zu kurz kann es zu solchen Problemen bei Traffic zwischen Devices kommen
https://docs.netgate.com/pfsense/en/latest/book/config/advanced-firewall ...
https://www.it-administrator.de/lexikon/stateful_packet_inspection.html
Auch das sind IP Basics die man kennen sollte...
Dito 🐟 . Einfach mal in die States-Table deines Routers schauen .Was man aber beachte sollte sind die State-Timeouts für UDP-Packets, sind die zu kurz kann es zu solchen Problemen bei Traffic zwischen Devices kommen
https://docs.netgate.com/pfsense/en/latest/book/config/advanced-firewall ...
Dann stellt sich ja jetzt die Frage warum wird die Rückverbindung (ich sag mal extra nicht Antwort) bei meiner Firewall dann geblockt und warum brauche ich derzeit extra eine statische Firewall Freigabe für den Fernseher hin zu meinem iPhone.
evt. kommt die Antwort zu spät, bis dahin hat sich der State dann schon in der Firewall verabschiedet und sie blockt dann dementsprechend.Stell die Firewall sie mal auf optimization mode "Conservative". Bzw. passe alternativ nur die Timeouts für UDP unter System > Advanced > Firewall (ganz unten an).
So wie ich es verstehe müsste das ja ohne statische Zugriffsregel des Fernsehers auf das iPhone funktionieren.
Ja, so wie Airplay-Mirroring aufgebaut ist muss das eigentlich so funktionieren. Habe ich hier auch so laufen, weitere Freigaben sind hier nicht nötig.Dazu habe ich Probleme mit VLANs die kein Allow Any haben,
Das ist Unsinn, denn AVAHI ist mDNS und das nutzt bekanntlich die Multicast IP Adresse 224.0.0.251.https://de.wikipedia.org/wiki/Zeroconf#Multicast_DNS
Es reicht also diese freizzugeben sofern man etwas stringentere Firwall Regeln nutzen möchte statt das Scheunentor "any" !
eine eigene Liste mit Geräten und kann diese auch anderen mitteilen.
Sie teilen nicht die ganze Liste mit sondern nur sich selber via Multicasting. Die Liste erstellen sie intern selbst aus den anderen Multicast Announcements.noch als Airplay angezeigt wird obwohl er längst ausgeschaltet ist.
Logisch, denn der Devise Cahce (das was du als Liste bezeichnest) in jedem Gerät hat natürlich einen Timeout der einmal gelernte Geräte im Cache hält. Üblicherweise beträgt der Timeout 3mal die Multicast Update Time bevor diese aus der Liste entfernt werden. welche Firewallrules ein Gerät hier wirklich benötigt um immer die Bonjour Announcings mitzubekommen.
Nur ein einziges Mal deinen Wireshark angeschmissen und du hättest du es in 3 Minuen gewusst !! Multicast Gruppenadresse 224.0.0.251 mit UDP Port 5353
(Beispiel Apple TV im Netz)
Glückssache ob es geht.
Sowas gibt es in der IT bekanntlich nicht sondern nur im Spielcasino. hat bei mir keine EInfluss auf die Airplay Funktionalität.
Klar, denn die haben auch mit Multicasting nix zu tun...da hast du absolut recht.Reicht aber alleine nicht.
Ist ja auch logisch, denn damit machen sich ja nur die mDNS Devices untereinander bekannt und zwar rein nur im lokalen IP Netz, niemals über Netzgrenzen hinweg. Jedenfalls nicht ohne zusätzliche Funktionen wie einen mDNS/AVAHI Proxy. Das liegt daran das diese Multicast Gruppenadresse eine Link Local Multicast IP ist, also nicht routebar und ist einzig nur in der eigenen Layer 2 Broadcast Domain relevant. Ohne einen AVAHI oder mDNS Proxy gelangen diese Infos, wie bereits gesagt, also niemals in andere IP Netzsegmente. Siehe dazu auch hier.Ein Wireshark Trace würde dir das sofort zeigen ob diese mDNS Multicasts der Geräte auch im lokalen IP Segment zu sehen sind. Nur dann können andere Geräte drauf zugreifen. Sofern das IP Regelwerk natürlich auch stimmt.
Der Multicast dient lokal lediglich dazu allen anderen mDNS/Bonjour Geräten die Dienste und Ziel IP Adressen der mDNS Endgeräte mitzuteilen damit diese dann eine normale IP Verbindung aufbauen können. Sprich man muss natürlich im Regelwerk auch noch deren Absender- und Zieladressen bzw. Dienste Ports beachten wenn man granularer danach filtert.
Wenn du diese aus dem "Family Netz" natürlich nicht freigibst können die niemals miteinander kommunizieren.
Aber ich habe mit Seitenweise lesen noch keine Lösung gefunden.
Sniffer doch einfach mal mit dem Wireshark in deinen IP Segmenten ob dort die mDNS Multicasts ALLER Geräte untereinander sichtbar sind. Das müssen sie damit eine Diensteverbindung aufgebaut werden kann.