117471
Goto Top

PfSense - Firewallregeln für UPNP?

Hallo,

wenn ein Host hinter einer pfSense einen Port via UPNP aufmacht - muss ich dann zusätzlich eine Firewallregel definieren, um den eingehenden Traffic zu dem Host durchzulassen?

Oder existiert die Filterregel automatisch solange, wie der offene Port im UPNP-Daemon existiert?

Gruß,
Jörg

Content-Key: 399156

Url: https://administrator.de/contentid/399156

Printed on: April 18, 2024 at 15:04 o'clock

Member: aqui
aqui Jan 23, 2019 updated at 17:40:05 (UTC)
Goto Top
Nein, denn das UPnP Gerät macht sich über Multicast 239.255.255.250 mit dem UDP Port 1900 im Netzwerk bekannt. Und NUR in dem Netzwerk sprich L2 Domain wo es selber drin ist, denn Multicast kann ohne aktives PIM Routing keine Router Grenzen überwinden.
https://de.wikipedia.org/wiki/Universal_Plug_and_Play#Ablauf_(UPnP_Netwo ...
Die pfSense gibt es also per se nicht weiter.
Du kannst aber zur Sicherheit ein Filter any any mit Zielport UDP 1900 einrichten um UPnP dann ganz sicher den Hahn abzudrehen wenn erforderlich.
UPnP ist immer gefährlich und sollte man nie deaktivieren wenn man nicht unbedingt muss. Weisst du ja aber selber... face-wink
Member: Pjordorf
Solution Pjordorf Jan 23, 2019 at 17:41:06 (UTC)
Goto Top
Hallo,

Zitat von @117471:
wenn ein Host hinter einer pfSense einen Port via UPNP aufmacht - muss ich dann zusätzlich eine Firewallregel definieren, um den eingehenden Traffic zu dem Host durchzulassen?
Augen größer als dein Appetit oder waren deine Finger schneller als dein Hirnface-smile Für was steht uPnP und warum sollte es auf jeden Router der dich mit deiner Umwelt verbindet Ausgeschaltet sein. Und wenn uPnP sich nicht selbst seine nötigen Ports öffnen könnte, ist es doch Nutzlos, oder nicht. Manchaml ist es einfach nur fehlerhaft impltementiert, aber Grundsätzlich gehört es auf eine Router Ausgeschaltet.
https://en.wikipedia.org/wiki/NAT_Port_Mapping_Protocol
https://de.wikipedia.org/wiki/Universal_Plug_and_Play
https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol
https://en.wikipedia.org/wiki/Port_forwarding
https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients
http://www.ciscopress.com/articles/article.asp?p=461084
Wer also mit uPnP seine Netze betreibt braucht keine böse ungewollte Software oder Einbrecher mehr, und was soll deine pFsense dann noch machen...

Oder existiert die Filterregel automatisch solange, wie der offene Port im UPNP-Daemon existiert?
Solange wie ein uPnP Program es eben haben möchte/braucht.

Entweder du als Betreiber der pFsense weisst warum du was dort Konfigurierst oder du nutzt uPnP, dann brauchst du auch nichts zu Konfigurieren oder erst eine pFsense oder andere Firewall nutzen. face-sad

Gruß,
Peter
Mitglied: 117471
117471 Jan 23, 2019 updated at 18:09:27 (UTC)
Goto Top
Hallo,

zur Erklärung: Das UPNP ist nur für eine statische IP-Adresse in einem separaten LAN auf einer eigenen Schnittstelle freigeschaltet. Diese Restriktion erfolgt im UPNP Daemon (Defaultregel ist „deny“ und für die IP-Adresse habe ich eine „allow“ Regel).

An der Schnittstelle hängt nur die X-Box. Es ist also schon rein mechanisch ausgeschlossen, dass da noch mehr Geräte „rausfunken“.

Gruß,
Jörg
Member: aqui
aqui Jan 24, 2019 at 10:58:31 (UTC)
Goto Top
Leider sagst du nicht WELCHE "Schnittstelle" ??
Ist das eine an einem PC ?
Oder eine die direkt Router oder die pfSense Firewall "sieht" ?
Wenn letzteres der Fall ist solltest du immer auf Nummer sicher gehen und UDP 1900 generell blocken !
Ansonsten steht oben (oder im Wiki) ja alles dazu face-wink
Mitglied: 117471
117471 Jan 24, 2019 at 12:05:07 (UTC)
Goto Top
Hallo,

nein - natürlich ist das eine Schnittstelle an der Firewall.

Die pfSense hat zwei LAN-Schnittstellen: Auf der Einen liegt mein Produktivnetz, an der Anderen hängt die X-Box mit ihrem Netz.

Ohne UPNP und Teredo läuft die übrigens selbst dann nicht vernünftig, wenn ich alle von Microsoft dokumentierten Ports von Hand forwarde. Sobald die hinter dem ersten Hop eine weitere private IP sieht, geht die von doppeltem NAT aus und schiebt das Teredo auf einen anderen Port (aktuell bei mir: 3040 UDP).

Gruß,
Jörg
Member: aqui
aqui Jan 24, 2019 at 12:11:45 (UTC)
Goto Top
Ist ja gruselig !! Will man lieber gar nicht wissen was die alles nach Hause telefoniert face-sad
Du kannst ja an der pfSense Session Tabelle auch genau sehen was sie live eröffnet hat und es dann auf diese Ports einschränken.
Ansonsten ist der Wireshark wieder dein bester Freund face-wink
Du solltest aber in jedem Falle dann UDP 1900 blocken inbound an der FW auch wenns nur auf das FW Interface ist das die wenigstens immun ist für UPnP.
Member: Waldwuffel
Waldwuffel Nov 18, 2019 updated at 19:26:14 (UTC)
Goto Top
Eine ganz ähnliche Frage stelle ich mir auch gerade. 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). Ein Hauptgrund dafür ist, dass ich ansonsten 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, werden entsprechende ipset-Einträge gemacht, die 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?
Member: aqui
aqui Nov 19, 2019 at 08:47:57 (UTC)
Goto Top
Ist das jetzt ein Doppelpost zu: Routing von UPnP-Traffic mittels pfSense ???
Member: Waldwuffel
Waldwuffel Nov 21, 2019 at 20:35:13 (UTC)
Goto Top
Ja. Ich hatte mich zuerst an diese Frage "angehängt", dann aber bemerkt, dass sie so nicht weiter angezeigt wird. Im anderen Post schreibe ich auch, dass ich zuerst woanders gefragt hatte. Hätte ich wohl besser deutlich machen (oder löschen...) sollen.