Armadillo-IoT G3L搭載のLTEモジュール(Gemalto ELS31-J)の制約により、工場出荷状態ではArmadillo-IoT G3L 側から開始されたセッションによる内向きのパケットを除いて、LTE通信網側からのArmadillo-IoT G3Lに対するパケットが遮断されます。
このため、Armadillo-IoT G3LにSSHサーバーやWebサーバー等を起動させ、グローバルIPが割り当てられる回線を利用しても、LTE通信網側からアクセスを行うことはできません。
LTE 通信網側からArmadillo-IoT G3Lに対してアクセスを行いたい場合は、「ELS31-J内部で動作しているファイヤーウォールの解除」を行う必要があります。
本howtoでは、ELS31-J内部で動作しているファイヤーウォールの設定変更の方法を説明します。
Linux側のiptablesコマンド等によって提供されるパケットフィルタではなく、 以下の図に示すように、ELS31-J内部で動作しているファイヤーウォールに関して記載します。
設定変更には以下の2つの方法があります。以下2つの方法の同時利用はできません。 互いにメリットデメリットがありますので、お客様の判断でご利用ください。
方法1: ELS31-Jの内部不揮発性メモリにファイヤーウォール設定変更を保存する方法
概要
ELS31-Jのファイヤーウォールを解除し、モジュール内部の不揮発性メモリに保存する方法です。
不揮発性メモリに設定するためArmadillo-IoT G3Lの電源を切断しても設定が保持されます。
なお、現在ファイヤーウォールが有効になっているのか、無効になっているかコマンド等で確認する方法がなく、 実動作をしてみないとどちらの設定になっているかわかりません。
設定手順
設定手順については以下を参照ください。
Cinterion(R) ELS31-J ソフトウェア 「ELS31-J Firewall設定変更ツール」
※ダウンロードにはログインとArmadillo-IoT G3Lの購入製品登録が必要です。
方法2: LTE接続を行う度に、ATコマンドで都度ファイヤーウォール設定を解除する方法
概要
LTE接続を行う度に、コマンドで都度ファイヤーウォール設定を解除する方法です。
LTEでのデータ接続完了後、任意のタイミングでファイヤーウォールを有効・無効にできます。 また、現在ファイヤーウォールが有効になっているのか、無効になっているのかコマンドでの確認が可能です。
方法1とは違い、LTEモジュール内の不揮発性メモリに設定を保存しませんが、Armadillo-IoT G3L(のルートファイルシステム)側に設定ファイルを保存することで、電源切断後もLTE接続の度に自動的にファイヤーウォール設定を解除することが可能です。
こちらは、ELS31-Jのファームウェアバージョン「A-REVISION 4.3.3.0-36584」以降で利用することが可能です。
ファームウェアのアップデート方法、バージョンの確認方法に関しては、「Cinterion(R) ELS31-Jファームウェアアップデートツール」を参照してください。
※ダウンロードにはログインとArmadillo-IoT G3Lの購入製品登録が必要です。
設定手順
els31-utilsのインストール
インターネットにArmadillo-IoT G3Lを接続、次に示すコマンドを実行しels31-utilsをインストールします。
[armadillo ~]# apt-get update
[armadillo ~]# apt-get install els31-utils
LTEデータ接続後に任意のタイミングでファイヤーウォールを無効にする
LTEデータ接続完了後、次に示すコマンドを実行するとファイヤーウォールが無効になります。
[armadillo ~]# els31-firewall-disable
LTEデータ接続後に任意のタイミングでファイヤーウォールを有効にする
LTEデータ接続完了後、次に示すコマンドを実行するとファイヤーウォールが有効になります。
[armadillo ~]# els31-firewall-enable
現在の設定を確認する
次に示すコマンドを実行すると現在の設定を確認することができます。
[armadillo ~]# els31-firewall-get-status
ファイヤーウォールが無効の場合、次のように表示されます。
ELS31-J Firewall: Disable
ファイヤーウォールが有効の場合、次のように表示されます。
ELS31-J Firewall: Enable
LTEデータ接続完了後、自動的にファイヤーウォールを無効にする
設定ファイル「/etc/els31-utils/els31-utils.conf」を次のように変更することで、LTEデータ接続完了後、自動的にファイヤーウォール設定が無効になります。
デフォルト設定は有効の状態です。
#!/bin/bash
FIREWALL="disable"
注意事項: 方法1を一度でも実行した場合
一度でも「方法1: ELS31-Jの内部不揮発性メモリにファイヤーウォール設定変更を保存する方法」を実行した場合は、els31-firewall-*コマンドが正しく動作しません。
次の手順でELS31-Jの工場リセットを行ってからels31-firewall-*コマンドを実行してください。
ModemManagerの停止
次に示すコマンドを実行してください。
[armadillo ~]# service connection-recover stop
[armadillo ~]# service ModemManager stop
cuでモデムに接続
次に示すコマンドを実行してください。
コマンドを入力し、Connected.
と表示されたら、ATコマンドを実行することができます。
[armadillo ~]# cu -l /dev/ttymxc6 -s 115200
Connected.
ATコマンドの実行
次に示すATコマンドを実行します。
AT&F
OK
AT^SCFG="MEopMode/Factory","all"
OK
AT^SPOW=1,0
OK
AT+CFUN=1,1
OK
「AT+CFUN=1,1」を実行するとELS31-Jが自己リブートします。
次に示すログが表示されるとcuが自動終了します。
^SHUTDOWN
usb 2-1: USB disconnect, device number 2
cdc_ether 2-1:1.0 usb1: unregister 'cdc_ether'
usb-ci_hdrc.1-1, CDC Ethernet Device
cu: Got hangup signal
Disconnected.
次に示すログが表示が表示されればモジュールの自己リブートが終わり、工場リセットの完了です。
cdc_ether 2-1:1.0 usb1: register 'cdc_ether' at usb-ci_hdrc.1-1, CDC Ethernet Device, 02:80:70:21:49:50
cdc_acm 2-1:1.2: ttyACM0: USB ACM device