OpenBlocks BX1の起動時に特定のポートを空ける
ぷらっとホーム社のOpenBlocks IoT BX1 はセキュリティ対策のために Web 管理用のポート(880)など特定のポート以外は外からはアクセス出来ないようになっています。
一方、 BX1 で開発する上では、BX1 の起動直後から SSH(22) や HTTP(80) のポートを空けたいこともあるかと思います。
今回は、BX1 起動時に SSH ポート(22)を空ける方法を紹介します。
OpenBlocks BX1 の SSH のポートをあける
BX1 の Web 管理画面から System → Filter とたどると SSH の設定画面にたどり着きます。 「Enable」にして保存すると、BX1の外から SSH で繋げられるようになります。
BX1 起動のたびにこの操作をするのは面倒ですね(特に開発中)。
管理画面から起動スクリプトを登録
BX1 の Web 管理画面 の「拡張(Extention)」画面では起動スクリプトやユーザー定義のスクリプトを登録出来ます。
この画面でプルダウンから「Startup script」を選択し、SSH ポートを空ける iptable コマンドを登録します。
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
次回起動時以降は自動的にこのコマンドが実行され、BX1 外から SSH できるようになります。
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
というように複数行を登録することも出来ます。
登録したスクリプトはどこにある?
ユーザーが登録した起動スクリプトやユーザー定義スクリプトは、 BX1 上ではパス「/var/webui/user_scripts」以下に転がっています。
# cat /var/webui/user_scripts/user_init.sh /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ls /var/webui/user_scripts user_define4.sh user_init.sh
シェルスクリプト /var/webui/bin/appliance.sh
の start
オプションの中で
/var/webui/user_scripts/
以下にあるファイルが呼びだされているようです。
Web 管理画面に入れない、など特別な場合を除き、ファイルシステムを直接操作して ユーザースクリプトを登録するのは控えましょう。
注意
開発時にインターネットゲートウェイのポートをガバガバと空けるのは良いですが、そのまま出荷しないようにしましょう。