OpenBlocks BX1の起動時に特定のポートを空ける

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ぷらっとホーム社の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 で繋げられるようになります。

openblocks32_SSH

BX1 起動のたびにこの操作をするのは面倒ですね(特に開発中)。

管理画面から起動スクリプトを登録

BX1 の Web 管理画面 の「拡張(Extention)」画面では起動スクリプトやユーザー定義のスクリプトを登録出来ます。

この画面でプルダウンから「Startup script」を選択し、SSH ポートを空ける iptable コマンドを登録します。

/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

スクリーンショット 2015-12-21 19.49.51

次回起動時以降は自動的にこのコマンドが実行され、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.shstart オプションの中で /var/webui/user_scripts/ 以下にあるファイルが呼びだされているようです。

Web 管理画面に入れない、など特別な場合を除き、ファイルシステムを直接操作して ユーザースクリプトを登録するのは控えましょう。

注意

開発時にインターネットゲートウェイのポートをガバガバと空けるのは良いですが、そのまま出荷しないようにしましょう。