我想在嵌入式linux设备上使用Alljoyn框架。由于安全原因,有必要为该设备配置防火墙。这是通过iptables完成的。Linux防火墙后面的Alljoyn服务(iptables)
我到目前为止所做的: 我试图在没有防火墙的设备上运行AboutService示例,然后检查TCPDump。作为客户端,我使用AllJoyn(Windows 10)的物联网浏览器,但AboutClient也应该运行良好。使用wireshark检查TCPDump,公告的端口是清楚的,我必须打开UDP的端口(alljoyn-mcm)(alljoyn)和(MDNS?!?)。我通过以下规则解决了这个问题:
$ iptables -A OUTPUT -p udp --sport 9955 -j ACCEPT
$ iptables -A OUTPUT -p udp --sport 9956 -j ACCEPT
$ iptables -A OUTPUT -p udp --dport 5353 -j ACCEPT
$ iptables -A INPUT -p udp --sport 9955 -j ACCEPT
通过这些规则,设备在物联网浏览器中成功发现。
但是,当启动设备(例如获取完整的数据)TCP通信时。这不是在某个港口。港口似乎是随机的。 NMap显示例如跟随端口,何时(重新)启动关于服务。
46368/TCP开放不明,或
52739/TCP开放未知
我怎么能确定端口?我该如何强制Alljoyn框架将TCP通信连接到某个端口或至少是小端口范围,例如41000-41100?还是有没有其他方式来配置防火墙,以便Alljoyn通信不被阻塞?