組み込みLinuxデバイスでAlljoynフレームワークを使いたいです。セキュリティ上の理由から、そのデバイスのファイアウォールを設定する必要があります。これはiptablesで行われます。Linuxファイアウォールの背後にあるAlljoynサービス(iptables)
これまでに行ったこと: ファイアウォールなしでそのデバイスでAboutServiceの例を実行しようとした後、TCPDumpをチェックしました。クライアントとして、AllJoyn(Windows 10)用のIoT Explorerを使用しましたが、AboutClientもうまく動作するはずです。 UDP用(MDNS?!?)(alljoyn)とのwiresharkでのTCPDumpの確認、告知用のポートは、私が(alljoyn-MCM)ポートを開く必要があり、明確です。
$ 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
これらのルールでは、デバイスはIoTエクスプローラで正常に検出されます。
しかし、デバイスにアクセスするとき(例えばabout-dataを得るために)、TCP通信が開始されます。これは特定のポートにはありません。ポートはランダムであるようです。 NMapは、 AboutServiceを(再)起動するときに、ポートに続いて。
- 46368/tcpの未知のオープン、または
- 52739/tcpのオープン不明
どのように私はポートを決定することができますか? AlljoynフレームワークにTCP通信を特定のポートまたは少なくとも小さいポート範囲に釘付けさせるにはどうすればよいですか? 41000-41100?または、ファイアウォールを構成する他の方法があるので、Alljoyn通信がブロックされていませんか?