我想在嵌入式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通信不被阻塞?