Armadilloフォーラム

Armadillo IoTの運用にあたって

mkohei1122

2015年4月26日 23時43分

森と申します。

初めて組込Linuxを使用する素人です。
Armadillo IoTで、3Gを使ってあるシステムの運用
(遠隔モニタリング)を開始したいと考えております。

外部ネットワークに向けにArmadilloを運用するにあたって、
最低限行っておくべきこと、注意点があれば、ご指導いただければ幸いです。
不要なデーモンの削除や停止等、パスワード管理、ログ管理等が浮かびますが、
経験がないので、どう手をつけていいか、アドバイスをいただけたら幸いです。

ADで取り込んだデータをwgetやcurlでサーバに転送し、サーバからは、
接点を動かすことを考えております。

また、絶縁デジタル入出力/アナログ入力アドオンモジュール DA00の製品マニュアルが
現時点でございませんので、他のモジュールと同じように簡単な使用方法をお知らせ
いただけたら幸いです。

以上です。

コメント

at_takenoshita

2015年4月28日 17時34分

竹之下です。

> Armadillo IoTで、3Gを使ってあるシステムの運用
> (遠隔モニタリング)を開始したいと考えております。
3Gのご利用が前提なのですね。

> 外部ネットワークに向けにArmadilloを運用するにあたって、
> 最低限行っておくべきこと、注意点があれば、ご指導いただければ幸いです。
> 不要なデーモンの削除や停止等、パスワード管理、ログ管理等が浮かびますが、
> 経験がないので、どう手をつけていいか、アドバイスをいただけたら幸いです。
まず、3Gの回線契約をどのようなものにするか?という点が検討項目に挙がります。
セキュリティに関連する項目としては、下記の選択肢があります。
- Global IPアドレスを振られるタイプか、そうではないタイプか
- 通常のインターネット回線を使用するか、VPN回線使用のタイプか

この中で、一番安心なのはVPN回線契約の場合ですね。
そもそも特定のデータセンタのサーバにしか繋がりませんので、外部からアタックを
受ける可能性はほとんどなくなります。(社内LANにあるコンピュータと同様です。)

一方で、Global IPを振られているタイプが、便利な反面、どこからでもアクセスされる
可能性があるという意味で、一番危険かと思います。
(Global IPを振られないからといって、大丈夫というわけでもないですが。)

回線の次は、アクセス相手やポートについてですが、これはホワイトリスト形式で
対処するのが良いかと思っています。すなわち、
- 事前に決めておいたIPアドレスの特定のポート番号にしかアクセスしない
- 事前に決めておいたIPアドレスからの特定のポート番号へのアクセス以外遮断(ドロップ)する
ということです。

その上で、
> 不要なデーモンの削除や停止等、パスワード管理、ログ管理等が浮かびますが、
等をするのが王道でしょうか。

可能であれば、出来る限り使用しているソフトウェアのセキュリティアップデートを
適用するのが望ましいことは当然ですが、昨今のセキュリティ事情を鑑みるに、
ゼロデイ攻撃のようなものを完璧に防ぐのはかなり難しいように思えます。
そのため、ソフトウェアのセキュリティホールを突かれても、被害が最小限に
なるようにしておく対策の方が重要なのかもしれません。
(例えば、管理用にWebサーバー機能を持たせているのであれば、Webサーバーのアクセス
権限では、収集したデータを読み出せないようにしておくとか。)

IoT時代のセキュリティに関しては、まだまだ色々な課題があると認識しています。
この場(Armadilloフォーラム)でも、良いディスカッションができたらと思います。
みなさんのご意見もお聞かせください。

> ADで取り込んだデータをwgetやcurlでサーバに転送し、サーバからは、
> 接点を動かすことを考えております。
>
> また、絶縁デジタル入出力/アナログ入力アドオンモジュール DA00の製品マニュアルが
> 現時点でございませんので、他のモジュールと同じように簡単な使用方法をお知らせ
> いただけたら幸いです。
ソフトウェアおよびマニュアル整備が追い付いておらず、申し訳ありません。

DA00を使用可能にするパッチを添付します。
本日リリースされた linux-2.6.26-at25 に適用して、イメージを作成しなおしてください。

* パッチの適用方法
[ATDE ~]$ ls
linux-2.6.26-at25.tar.gz linux-2.6.26-at25_support-didoad-addon.patch
[ATDE ~]$ tar xzvf linux-2.6.26-at25.tar.gz
[ATDE ~]$ cd linux-2.6.26-at25
[ATDE ~/linux-2.6.26-at25]$ patch -p1 < ../linux-2.6.26-at25_support-didoad-addon.patch

* イメージのビルド方法
製品マニュアルの下記をご参照ください。
http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…

* DI/DOの使い方
DI/DO機能は、gpio sysfs classとして実装されています。
/sys/class/gpio/以下にあるGPIOディレクトリ以下のファイルから使用する
ことができます。

GPIOディレクトリと、DA00のCON2に対応するピンを次に示します。

|GPIOディレクトリ|CON2対応ピン|
|-------------+-----------|
|DO1_CON1 |1, 2 |
|DO2_CON1 |3, 4 |
|DI1_CON1 |5 |
|DI2_CON1 |7 |

DO1へHighを出力するには次のようにコマンドを実行します。
[armadillo ~]# echo 1 > /sys/class/gpio/DO1_CON1/value

DI2からの入力を確認するには次のようにコマンドを実行します。
[armadillo ~]# cat /sys/class/gpio/DI2_CON1/value
1

* ADコンバータの使い方
ADコンバータ機能は、sysfsから参照することが可能です。対応するsysfsディ
レクトリは次の通りです。

/sys/devices/platform/mxc_spi.1/spi2.0/

|sysfsファイル |説明 |
|-------------+-------------------------------|
|ch0_single |CH0(CON3_1)のAD値を表示します |
|ch1_single |CH1(CON3_3)のAD値を表示します |
|differential0|CH0+ と CH1-の差分のAD値を表示します|
|differential1|CH1+ と CH0-の差分のAD値を表示します|

ch0からの入力電圧を確認するには次のようにコマンドを実行します。
[armadillo ~]# cat /sys/devices/platform/mxc_spi.1/spi2.0/ch0_single
2462

表示される値は、リファレンス電圧5Vにおける分解能12bit分インデックスで
す。
上記の例では、入力電圧は次の式より求められます。

[入力電圧] = 5(V) * 2462 / 4096 = 3.005(V)

ファイル ファイルの説明
linux-2.6.26-at25_support-didoad-addon.patch

mkohei1122

2015年5月21日 12時01分

森です。
返答がだいぶ遅くなりましたが、ご返答ありがとうございました。

結局、セキュリティ対策は、対策費用、運用コスト等とのトレードオフ
だと思われますので、ケースバイケースで考えないといけないので、難し
いところです。

少なくても、便利な面もございますが、グローバルIPを付与されるMVNO
(OCN?等)は使用しないことにしたいと考えております。
DTI ServersMan SIM LTE(月500円くらい。プレイベートIP)にて、検証
を始めております。

一方、DA00ですが、マザーのCON2のDA00をつなぐとフォルダ名
(DI/O XXX_CON1->XXX_CON2  
 AD mxc_spi.1/spi2.0/ -> )が変りますが、動作確認することが
できました。ありがとうございました。

今後は、DA00パッチを当てなくても、標準のイメージに追加される予定
でしょうか。

以上です。

> 竹之下です。
>
> > Armadillo IoTで、3Gを使ってあるシステムの運用
> > (遠隔モニタリング)を開始したいと考えております。
> 3Gのご利用が前提なのですね。
>
> > 外部ネットワークに向けにArmadilloを運用するにあたって、
> > 最低限行っておくべきこと、注意点があれば、ご指導いただければ幸いです。
> > 不要なデーモンの削除や停止等、パスワード管理、ログ管理等が浮かびますが、
> > 経験がないので、どう手をつけていいか、アドバイスをいただけたら幸いです。
> まず、3Gの回線契約をどのようなものにするか?という点が検討項目に挙がります。
> セキュリティに関連する項目としては、下記の選択肢があります。
> - Global IPアドレスを振られるタイプか、そうではないタイプか
> - 通常のインターネット回線を使用するか、VPN回線使用のタイプか
>
> この中で、一番安心なのはVPN回線契約の場合ですね。
> そもそも特定のデータセンタのサーバにしか繋がりませんので、外部からアタックを
> 受ける可能性はほとんどなくなります。(社内LANにあるコンピュータと同様です。)
>
> 一方で、Global IPを振られているタイプが、便利な反面、どこからでもアクセスされる
> 可能性があるという意味で、一番危険かと思います。
> (Global IPを振られないからといって、大丈夫というわけでもないですが。)
>
> 回線の次は、アクセス相手やポートについてですが、これはホワイトリスト形式で
> 対処するのが良いかと思っています。すなわち、
> - 事前に決めておいたIPアドレスの特定のポート番号にしかアクセスしない
> - 事前に決めておいたIPアドレスからの特定のポート番号へのアクセス以外遮断(ドロップ)する
> ということです。
>
> その上で、
> > 不要なデーモンの削除や停止等、パスワード管理、ログ管理等が浮かびますが、
> 等をするのが王道でしょうか。
>
> 可能であれば、出来る限り使用しているソフトウェアのセキュリティアップデートを
> 適用するのが望ましいことは当然ですが、昨今のセキュリティ事情を鑑みるに、
> ゼロデイ攻撃のようなものを完璧に防ぐのはかなり難しいように思えます。
> そのため、ソフトウェアのセキュリティホールを突かれても、被害が最小限に
> なるようにしておく対策の方が重要なのかもしれません。
> (例えば、管理用にWebサーバー機能を持たせているのであれば、Webサーバーのアクセス
> 権限では、収集したデータを読み出せないようにしておくとか。)
>
> IoT時代のセキュリティに関しては、まだまだ色々な課題があると認識しています。
> この場(Armadilloフォーラム)でも、良いディスカッションができたらと思います。
> みなさんのご意見もお聞かせください。
>
> > ADで取り込んだデータをwgetやcurlでサーバに転送し、サーバからは、
> > 接点を動かすことを考えております。
> >
> > また、絶縁デジタル入出力/アナログ入力アドオンモジュール DA00の製品マニュアルが
> > 現時点でございませんので、他のモジュールと同じように簡単な使用方法をお知らせ
> > いただけたら幸いです。
> ソフトウェアおよびマニュアル整備が追い付いておらず、申し訳ありません。
>
> DA00を使用可能にするパッチを添付します。
> 本日リリースされた linux-2.6.26-at25 に適用して、イメージを作成しなおしてください。
>
> * パッチの適用方法
> [ATDE ~]$ ls
> linux-2.6.26-at25.tar.gz linux-2.6.26-at25_support-didoad-addon.patch
> [ATDE ~]$ tar xzvf linux-2.6.26-at25.tar.gz
> [ATDE ~]$ cd linux-2.6.26-at25
> [ATDE ~/linux-2.6.26-at25]$ patch -p1 < ../linux-2.6.26-at25_support-didoad-addon.patch
>
> * イメージのビルド方法
> 製品マニュアルの下記をご参照ください。
> http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…
>
> * DI/DOの使い方
> DI/DO機能は、gpio sysfs classとして実装されています。
> /sys/class/gpio/以下にあるGPIOディレクトリ以下のファイルから使用する
> ことができます。
>
> GPIOディレクトリと、DA00のCON2に対応するピンを次に示します。
>
> |GPIOディレクトリ|CON2対応ピン|
> |-------------+-----------|
> |DO1_CON1 |1, 2 |
> |DO2_CON1 |3, 4 |
> |DI1_CON1 |5 |
> |DI2_CON1 |7 |
>
> DO1へHighを出力するには次のようにコマンドを実行します。
> [armadillo ~]# echo 1 > /sys/class/gpio/DO1_CON1/value
>
> DI2からの入力を確認するには次のようにコマンドを実行します。
> [armadillo ~]# cat /sys/class/gpio/DI2_CON1/value
> 1
>
> * ADコンバータの使い方
> ADコンバータ機能は、sysfsから参照することが可能です。対応するsysfsディ
> レクトリは次の通りです。
>
> /sys/devices/platform/mxc_spi.1/spi2.0/
>
> |sysfsファイル |説明 |
> |-------------+-------------------------------|
> |ch0_single |CH0(CON3_1)のAD値を表示します |
> |ch1_single |CH1(CON3_3)のAD値を表示します |
> |differential0|CH0+ と CH1-の差分のAD値を表示します|
> |differential1|CH1+ と CH0-の差分のAD値を表示します|
>
> ch0からの入力電圧を確認するには次のようにコマンドを実行します。
> [armadillo ~]# cat /sys/devices/platform/mxc_spi.1/spi2.0/ch0_single
> 2462
>
> 表示される値は、リファレンス電圧5Vにおける分解能12bit分インデックスで
> す。
> 上記の例では、入力電圧は次の式より求められます。
>
> [入力電圧] = 5(V) * 2462 / 4096 = 3.005(V)
>

at_takenoshita

2015年5月21日 12時58分

> 今後は、DA00パッチを当てなくても、標準のイメージに追加される予定
> でしょうか。
はい。標準で追加されるようになる予定です。
次回アップデート(6月末)か、その次のアップデートには追加したいと考えています。