Routing von UPnP-Traffic mittels pfSense
Habe Folgendes gerade als Antwort auf einen älteren Beitrag geschrieben. Damit es auch zur Kenntnis genommen wird, hier noch einmal (leicht verändert):
In der nächsten Zeit will ich im Rahmen meines Heimnetzwerks ein separates Server-Subnetz einrichten (hauptsächlich zum Ausprobieren und weniger, weil das unbedingt nötig wäre...); und einer der Dienste darin sollen Medien via UPnP sein (minidlna).
Aktuell tendiere ich dazu, als Basis für die Firewall zwischen User- und Server-Netz ein allgemeines Debian oder CentOS zu verwenden (auf einem apu2d4) - gern würde ich aber auch pfSense einsetzen. Ein Hauptgrund dagegen ist, dass ich damit bisher keine Möglichkeit sehe, wie man den UPnP-Traffic einigermaßen sicher zwischen den Netzen zulassen können sollte.
Meine aktuelle Lösung sieht folgendermaßen aus:
Auf der Firewall läuft SMCRoute, um die Pakete, die (von beiden Seiten) an bzw. über 239.255.255.250 gehen, zu routen. Und damit die Antwortpakete auf das Discovery des Clients an den minidlna ebenfalls durchkommen, ohne, dass gleich alles geöffnet werden muss, wird ein entsprechender ipset-Eintrag gemacht, den iptables nachher verwenden kann. Die iptables sehen folgendermaßen aus:
Der ipset-Eintrag:
Und die config von SMCRoute:
Mir ist klar, dass UPnP nicht wirklich zu dem gehört, wofür pfSense und dergleichen eigentlich vorgesehen sind - trotzdem würde mich interessieren, ob eine vergleichbare Lösung damit irgendwie möglich wäre?
In der nächsten Zeit will ich im Rahmen meines Heimnetzwerks ein separates Server-Subnetz einrichten (hauptsächlich zum Ausprobieren und weniger, weil das unbedingt nötig wäre...); und einer der Dienste darin sollen Medien via UPnP sein (minidlna).
Aktuell tendiere ich dazu, als Basis für die Firewall zwischen User- und Server-Netz ein allgemeines Debian oder CentOS zu verwenden (auf einem apu2d4) - gern würde ich aber auch pfSense einsetzen. Ein Hauptgrund dagegen ist, dass ich damit bisher keine Möglichkeit sehe, wie man den UPnP-Traffic einigermaßen sicher zwischen den Netzen zulassen können sollte.
Meine aktuelle Lösung sieht folgendermaßen aus:
Auf der Firewall läuft SMCRoute, um die Pakete, die (von beiden Seiten) an bzw. über 239.255.255.250 gehen, zu routen. Und damit die Antwortpakete auf das Discovery des Clients an den minidlna ebenfalls durchkommen, ohne, dass gleich alles geöffnet werden muss, wird ein entsprechender ipset-Eintrag gemacht, den iptables nachher verwenden kann. Die iptables sehen folgendermaßen aus:
-A FORWARD -i ens192 -o ens224 -s 192.168.0.0/24 -d 239.255.255.250/32 -p udp --dport 1900 -m conntrack --ctstate NEW -j UPNP
-A FORWARD -i ens224 -o ens192 -s 10.0.0.11/32 -p udp -m set --match-set upnp dst,dst -j ACCEPT
-A FORWARD -i ens224 -o ens192 -s 10.0.0.11/32 -d 239.255.255.250/32 -p udp --dport 1900 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i ens192 -o ens224 -s 192.168.0.0/24 -d 10.0.0.11/32 -p tcp --dport 8200 -m conntrack --ctstate NEW -j ACCEPT
[...]
-A UPNP -j SET --add-set upnp src,src --exist
-A UPNP -j ACCEPT
Der ipset-Eintrag:
create upnp hash:ip,port family inet hashsize 1024 maxelem 65536 timeout 3
Und die config von SMCRoute:
mgroup from ens192 group 239.255.255.250
mroute from ens192 group 239.255.255.250 to ens224
mgroup from ens224 group 239.255.255.250
mroute from ens224 group 239.255.255.250 source 10.0.0.11 to ens192
Mir ist klar, dass UPnP nicht wirklich zu dem gehört, wofür pfSense und dergleichen eigentlich vorgesehen sind - trotzdem würde mich interessieren, ob eine vergleichbare Lösung damit irgendwie möglich wäre?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 516643
Url: https://administrator.de/contentid/516643
Ausgedruckt am: 25.11.2024 um 03:11 Uhr
3 Kommentare
Neuester Kommentar
Nein, dein Weg bei der Anforderung ist da der bessere. Der Grund ist die wenig bis nicht vorhandene Routing Unterstützung für Multicast. pfSense und OpenSense haben wie viele der klassischen Enterprise Firewalls kein vollständiges Multicast Routing an Bord (PIM Sparse oder Dense, SSM) und nur einen rudimentären IGMP Proxy.
Für deine sehr spezielle Anwendung fährst du mit dem smcroute Daemon besser.
Eine Alternative wäre ggf. noch ein Multicast fähiger Router mit einer Firewall an Bord wie z.B. ein Mikrotik. Alle MT Router supporten vollständig PIM Sparse mit dem zusätzlichen Multicast Package und haben alle eine vollständige SPI Firewall an Bord. Bei einem kleinen 5 Port Router bist du mit 20 Euro im Einstiegsbereich dabei.
https://www.varia-store.com/de/produkt/33635-mikrotik-routerboard-rb941- ...
https://www.varia-store.com/de/produkt/31133-mikrotik-routerboard-rb750r ...
Für deine sehr spezielle Anwendung fährst du mit dem smcroute Daemon besser.
Eine Alternative wäre ggf. noch ein Multicast fähiger Router mit einer Firewall an Bord wie z.B. ein Mikrotik. Alle MT Router supporten vollständig PIM Sparse mit dem zusätzlichen Multicast Package und haben alle eine vollständige SPI Firewall an Bord. Bei einem kleinen 5 Port Router bist du mit 20 Euro im Einstiegsbereich dabei.
https://www.varia-store.com/de/produkt/33635-mikrotik-routerboard-rb941- ...
https://www.varia-store.com/de/produkt/31133-mikrotik-routerboard-rb750r ...