aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/firewall
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/firewall')
-rw-r--r--packaging/firewall/firewalld/meshbay-node.xml6
-rw-r--r--packaging/firewall/ufw/meshbay5
2 files changed, 11 insertions, 0 deletions
diff --git a/packaging/firewall/firewalld/meshbay-node.xml b/packaging/firewall/firewalld/meshbay-node.xml
new file mode 100644
index 0000000..2f863ec
--- /dev/null
+++ b/packaging/firewall/firewalld/meshbay-node.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<service>
+ <short>MeshBay Node</short>
+ <description>Inbound WebRTC/ICE for a MeshBay node. Peers connect over a DataChannel negotiated through the hub; there is no fixed listening port, because aiortc binds an ephemeral UDP port per connection. A peer that cannot reach the node directly can only be reached if the node initiates, which requires the peer to publish a routable address — browsers do not, they publish an mDNS .local name the node cannot resolve. So a node that refuses unsolicited inbound UDP is unreachable from any browser it cannot itself call back. Apply this to the zone holding the LAN interface only; it does not belong in an internet-facing zone. The node's administration surface is unaffected: it is a loopback API on 127.0.0.1 and is never exposed here.</description>
+ <port protocol="udp" port="1024-65535"/>
+</service>
diff --git a/packaging/firewall/ufw/meshbay b/packaging/firewall/ufw/meshbay
index 732e5d8..b87afdb 100644
--- a/packaging/firewall/ufw/meshbay
+++ b/packaging/firewall/ufw/meshbay
@@ -2,3 +2,8 @@
title=MeshBay Chromecast relay
description=HTTP relay for casting decrypted video to LAN devices
ports=19550:19553/tcp|5353/udp
+
+[MeshBay Node]
+title=MeshBay node WebRTC/ICE
+description=Inbound UDP for peer connections; scope it to your LAN with "from"
+ports=1024:65535/udp