小型Linuxサーバ / GuruPlug Server

この記事は2012年8月8日から2013年7月1日の間に「GuruPlugServer Facebook」で紹介したものです。

#1 GuruPlugの設定

#1-1 パスワードの設定をしよう

今回はGuruPlugのパスワードの設定をしてみましょう!
「nosoup4u」だと公開されているパスワードになるので、誰でも侵入できてしまいます。
とても簡単なのでやっておきましょう。

今の「root」ユーザのログイン時のパスワードは
「nosoup4u」でしたよね。

うん!もちろんログインできますね。

「root」ユーザのパスワードを「tanaka」に変更してみましょう。
パスワードを変更するコマンドはそのまま「passwd」です!
入力してみましょう。

新しいパスワードを入力します。(パスワード入力時は何も表示されません)

再度同じパスワードを入力します。

パスワード変更に成功しました!

実際にパスワードが変更されているか確かめてみましょう。
再度「root」でログインしてパスワードを「tanaka」と入力します。

うん、ログインできる!ちゃんとパスワードが変更できていますね!!

これだけではつまらないので…「root」以外のユーザのパスワードも変更してみましょう。
現在あるユーザのパスワードを変えるのは恐いので、実際にユーザを追加してそのユーザのパスワードを変更してみましょう。
それでは、弊社名の「jsp」という名前のユーザを登録してみましょう。
ユーザを追加するには「useradd ユーザ名【jsp】」になります。

ちゃんとユーザが登録されているか確かめるために、「 /etc」下の「passwd」ファイルを開きます。ファイルを開くときは「vi」コマンドです。

このファイルには、現在のユーザが記されています。
ありますね!「jsp」

それではこのユーザを「passwd」コマンドの後ろに指定し、
パスワードを変更しましょう。
こんなかんじです。「passwd ユーザ名【jsp】」
先程と同じような手順で変更したいパスワードを入力していき、完了です^^

【まとめ】
みなさん、パスワードの設定はうまくいきましたか?
たぶん私でも、調べながら一人で行えたので大丈夫だと思います^^

今回はここまでです。

#1-2 LEDを操作してみよう

今回はGuruPlugのLEDを操作してみましょう。

もしLEDを操作できれば…
なんらかのシェルを実行している時はLEDの点灯をなくしてみたり、
GuruPlug内に問題が発生している場合はLEDを赤色にしてみたり、なんていうこともできそうです!

早速LEDの操作方法をご説明します。
通常アクセスポイントモードで使用している場合は、
(アクセスポイントモードについては「#0-5 GuruPlugのインターネット接続方法」をご覧ください)
上のLEDが緑色
左のLEDが黄色の点滅
右のLEDが黄色
になります。

右のLEDは、
アクセスポイントモード時は黄色に、クライアントモード時は赤色になります
今回は右のLEDを操作してみましょう。

今はアクセスポイントモードなので、黄色になっています。

まずは、黄色のLEDを消してみましょう。
下記のコマンドを実行して下さい。
【echo "none" > /sys/class/leds/guruplug\:green\:wmode/trigger】

消えましたね!

再度点けてみましょう。
下記のコマンドを実行して下さい。
【echo "default-on" > /sys/class/leds/guruplug\:green\:wmode/trigger】

点きましたね!

今度は赤色のLEDを点けてみましょう。
まず黄色のLEDを消すために、上記のコマンドを実行しましょう。

そして下記のコマンドを実行して下さい。
【echo "default-on" > /sys/class/leds/guruplug\:red\:wmode/trigger】

赤く光りました!

消すには、下記のコマンドになります。
【echo "none" > /sys/class/leds/guruplug\:red\:wmode/trigger】

ここまで実際にやられた方はお気づきかもしれませんが、
どうも「/sys/class/leds/guruplug\:green\:wmode/trigger」や
「/sys/class/leds/guruplug\:red\:wmode/trigger」の
ファイルを変更することによって点灯・消灯を操作しているみたいですね。

上記のファイルの中を見てみましょう。
【cd /sys/class/leds/guruplug\:red\:wmode】で移動し、【vi trigger】でファイルを開きます。

ファイルの中は、
「none nand-disk mmc0 timer heartbeat default-on」と記されていますね。
「heartbeat」は点滅かなと思ったので、早速試してみました。

【echo "heartbeat" > /sys/class/leds/guruplug\:red\:wmode/trigger】
を実行してみると…

赤色に点滅しましたね!

LEDの操作方法がわかったところで、活用してみましょう。
先日掲載した「#2-2 WEBカメラをつなげてみよう」の応用編で、【motion】コマンドを実行中は、
右のLEDを赤色の点滅にするシェルを作成してみましょう。

まず「root」の下に「motionStart.sh」を作ります。
1行目には、
【#!/bin/sh】を入れましょう。無くても実行はできます。

2行目には、
【echo "heartbeat" > /sys/class/leds/guruplug\:red\:wmode/trigger】
を入れて、【motion】コマンド実行後は
右のLEDが赤色の点灯になるようにします。

3行目には、
【motion start】コマンドを入れて保存します。

次に、「/etc/motion」の中の「motion.conf」ファイルを変更しましょう。
他の作業と平行してコマンドを実行したいので、「demon on」にします。
【vi motion.conf】でファイルを開き、「demon off」を「demon on」にします。

また、「motionStop.sh」も作成して、【motion】が終了したら赤色の点灯を消灯するようにします。

1行目には、
【#!/bin/sh】を入れます。

2行目には、
【echo "none" > /sys/class/leds/guruplug\:red\:wmode/trigger】
を入れて保存します。

3行目には、
【/etc/init.d/motion stop】を入れます。

さてシェルを実行しましょう。

「motionStart.sh」を実行します。
「motionStart.sh」がある「root」ディレクトリに行きます。
シェルを実行する場合は、「./motionStart.sh」で実行して下さい。

あ!赤色点滅して、【motion】がスタートしました!
終了するために「motionStop.sh」を実行します。
「./motionStop.sh」

赤色点滅が消えて、【motion】も終了しました。
成功ですね!

【まとめ】
GuruPlugのLEDの操作はできましたか。
自分の好きなLEDの光り方にして、見分けられるといいですね。

#1-3 有線IPアドレス設定しよう

今回は、有線でつなぐ場合のIPアドレスの設定を行います。

例えば、GuruPlugをネットワークに接続する場合、有線か無線どちらを使用するか考えます。
有線の場合、社内や家庭のルータを経由してネットワークにつなげます。
有線の利点としては、無線よりも安定した通信速度でネットワークを確立できます。
というのも、無線のようにコンクリートの壁や鉄のドアなどで電波が届かないというような障害がないからです。
なんだか有線のほうが良さそうですね^^
GuruPlugの初期設定では有線のIPアドレスはDHCPになっています。
ルータの設定によってはすぐにネットワークにつながりますが、ルータのDHCP機能が有効になっていないと初期状態では接続できません。
またサーバとして利用する場合、ルータとGuruPlugを有線でつないで、
クライアントがGuruPlugにアクセスする時、
IPアドレスをわかっていないと接続できません。
なのでGuruPlugの固定IPアドレスの設定を行いましょう
GuruPlugに入っているOSはDebianなので
Debianのネットワーク設定方法を参考に進めていきます。

まず「cd」コマンドで「/etc/network」ディレクトリいき、
「vi」コマンドで「interfaces」ファイルを見てみましょう。

このファイルの中には、現時点のネットワークの設定が
記されています。
このファイルの中身を「dhcp」から「固定IP」
に変更すれば設定できそうですね。
さてどうやって書き換えるのやら…
調べてみると、こんな感じでした^^
「iface eth0 inet dhcp」→「iface eth0 inet static」
また、希望する「IPアドレス」(一応「ping」コマンドで希望するIPアドレスが使われていないか確かめておきましょう)に
「ネットワークアドレス」「ブロードキャストアドレス」「デフォルトゲートウェイ」「サブネットマスク」を書く必要があります。

じゃ調べてみましょう。「ifconfig」コマンドはネットワークの状態を見ることができるコマンドです。
「eth0」が今弊社の有線ルータにGuruplugをつなげているネットワーク状況です。
書いてありますね、
「IPアドレス」「ブロードキャスト」「ネットマスク」などが。
あ!「デフォルトゲート」が書かれていない…

「デフォルトゲートウェイ」を調べるために「route」コマンドを使用します。

*この方法はGuruPlugが接続したいルータからDHCPでIPアドレスを取得している場合に有効です。
  取得できない場合は、接続したいルータのネットワーク設定をご確認ください。
これでやっと「interfaces」ファイルの中身を変更することができますね。
全て記入したら、保存します。

ファイルを書き換えた場合、そのファイルを再度読み直させるためにネットワークの停止・起動をしましょう。
停止コマンドは「ifdown」で起動コマンドは「ifup」になります。
今回は有線ネットワークの停止・起動を行いたいので、
「ifdown eth0」・「ifup eth0」を使います。
実際に設定した固定IPアドレスになっているか確かめてみましょう。
「ifconfig」コマンドで現在の有線ネットワーク状況を見ます。

なっている!やった!
これで有線IPアドレスを設定できましたね。

#1-4 無線APモード時のネットワーク設定を変更してみよう

今回は無線APモードのSSIDの設定を行いましょう。

SSIDとは上記の名前のことです。
みなさんが無線でネットワークにつなげる場合、上記の接続先を指定してネットワークに接続します。
しかしGuruPlugの出荷時のSSIDは、
「guru-uap-×××」と非常に分かりにくい名前になっています。
なのでみなさんがわかりやすい名前に設定しちゃいましょう!
調査を行ってみると、「uaputl」コマンドで設定を変更できるようです。
「uaputl」コマンドは、アクセスポイントモードを操作するコマンドのようです。
それでは、早速SSIDを変更するコマンドを実行してみましょう。
「/usr/bin/uaputl sys_cfg_ssid ×××」
「×××」に自分が好きな名前を入力して下さい。

あれ…「Could not set SSID」が出てきてしまいました…
調べてみると…一度APモードを停止した上で設定し、再度APモードを起動する必要があるようです。
SSIDを実行できなかった原因は、「uaputl」が起動していたからですね。
それでは、再度設定するために、「uaputl」を停止しましょう。

「/usr/bin/uaputl bss_stop」を実行します。
あ…TeraTermが落ちた…
そっか!起動時のAPモードを停止させたからか!
でもどうしよう…
そうだ!こんなの時の有線接続だ!
昨日設定した有線固定IPアドレスが使えそうです。
クライアントとGuruPlugをLANケーブルで接続して、クライアントからTeraTermで、
昨日設定した固定IPに接続してみましょう。
(クライアントのIPアドレスをGuruPlugと同じネットワークアドレスに設定する必要があります)
今回はGuruPlugが「192.168.222.5」なので、
クライアントを「192.168.222.6」に設定しました。

*ここでは有線で接続しているので、画面を黒にしておきます。
クライアントからGuruPlugにTeraTermで接続して、「uaputl」の設定の続きをしましょう。
先程の「/usr/bin/uaputl sys_cfg_ssid ×××」を実行しましょう。
今回は「×××」を「tanaka_ssid」にしてみますっ。
SSID設定に成功しましたね!

設定を反映させるために、再度APモードを起動させましょう。
起動コマンドは「/usr/bin/uaputl bss_start」になります。
本当に反映されているか確かめるために、
「iwconfig」コマンドでネットワークの状態を見てみましょう。

ちゃんと「tanaka_ssid」になってる!
しかし再起動してみると、SSIDは元の「guru-uAP-×××」に戻ってしまっていますね。
これではいちいち再起動してはSSIDを変更するのは
めんどくさいですし、最初の接続時に自分がわかりやすい名前でないと見つけにくいです。
なので、起動時に読み込まれる「シェルファイル」の内容を書き換えましょう。

SSIDの設定を行うシェルは「root」の下にある「init_setup.sh」になります。
この中身を見てみると、SSIDを設定しているコマンドがありますね。
SSIDの変数定義の個所を自分が設定したい名前に変更しましょう。

このシェルの中にはいつも起動時に接続しているIPアドレスも書き込まれているようです。「192.168.1.1」が。
このIPアドレスは変更することが可能です。
このIPアドレスと同じIPアドレスが同じネットワーク内にあると、
同じ宛先を持つ機器が二つあるということなので、
必要に応じて変えときましょう。
GuruPlugの無線IPアドレスも変更しときましょう。

【まとめ】
みなさん、SSIDの変更はできましたか?
自分のわかりやすいSSIDにして、手間をかけずに接続したいですね^^

#1-5 無線のセキュリティを設定しよう

今回は「無線のセキュリティを設定しよう」です。
GuruPlug出荷時には無線のセキュリティ設定はされていません。
セキュリティがきちんと設定されていないと、
無断でGuruPlugの無線LANアクセスポイントを使われて
インターネットに接続されたり、無線LANを乗っ取られたりする恐れがあります。
また、無線通信を不正に傍受され、個人情報を盗み見られてしまう可能性もあります。
*ネットワークの設定に失敗してしまうと、設定を変更するのに
  JTAGが必要になるので慎重に行いましょう。

セキュリティ設定は大事そうですね!
Window7の画面上では、GuruPlugのSSIDの箇所に「!」マークが付いていますね。
これはセキュリティ設定されていないという警告です。
具体的な対応策は2つです。
まず一つ目は無線の通信を暗号化することです!

現時点では、GuruPlugに接続する際、
「tanaka_ssid」(「無線APモード時のネットワーク設定を変更してみよう」で変更済み)
を選択し、右クリックをするとプロパティ情報は出てきません。
セキュリティ設定がされていると、
上記の様なセキュリティの種類や暗号化の種類が表示されます。
このような無線セキュリティ設定を参考に、早速通信の暗号化を行いましょう!

まず、SSIDを設定したシェル「init_setup.sh」をご覧ください。
「vi /root/init_setup.sh」
起動時に無線の暗号化を行うには、
このシェルの中に無線の暗号化を行うコマンドを入れ、設定する必要があります。
調べてみると、SSID設定時に使用した「uaputl」コマンドのオプション
「uaputl sys_cfg_protocol」で設定できそうです。

今回は「Wi-Fi アライアンス」(Wi-Fi対応機器の相互接続性を認定する団体)が
定めたセキュリティ規格「WPA2」を使用します。
「WPA」は以前使われていた規格「WEP」の弱点を対処するために作られました。
「MIC(Message Integrity Code)」というもので、
メッセージ送信中に何者かに改ざんされていないかもチェックしてくれています。
「uaputl sys_cfg_protocol --help」
でこのコマンドの使用方法を見ることができます。
「WPA2」は「32」ですね。

また、「WPA2」では「AES」という暗号化アルゴリズムを用います。
なので、この「AES」の設定コマンドもシェルに書く必要があります。
「AES」の設定は「uaputl sys_cfg_cipher」で行います。
「uaputl sys_cfg_cipher --help」
今回は「AES CCMP」の「8」の「8」を設定しましょう。

早速この「WPA2」と「AES」
二つの暗号化設定をシェルに書きこみましょう。
よしっ、これで暗号化はバッチリですね!
何か忘れている気がする…
パスワードの設定だ!
現時点では、GuruPlugに接続する際、「tanaka_ssid」を選択すると、
パスワードを求められず簡単にインターネットに接続できてしまいます。
これを正しいパスワードを入力した人だけが接続できるようにしておきましょう。

調べてみると、「WPA」の設定の次にパスワード設定コマンドを入れる必要があるそうです。
「uaputl sys_cfg_wpa_passphrase」
コマンドの後ろに、8文字以上の半角英数字を入れましょう。

「WPA」の設定と「AES」の設定の間にパスワード設定コマンドを追加して保存しましょう。
今回設定したシェルの内容を反映させるために、再起動しましょう!
「reboot」コマンドを打ち、1~2分待ってから再度接続してみましょう。

あ!「!」が消えている!

パスワードを求められた!

「tanaka_ssid」で右クリックするとプロパティ情報を見ることができます!
無線の暗号化設定もできています。
今回は以上です^^

【まとめ】
無線のセキュリティ設定はできたでしょうか?
第3者からの傍受や盗聴から守るためにもしっかり設定をしておくことをお勧めします^^

#1-6 無線のクライアントとして使ってみよう

今回は「無線のクライアントとして使ってみよう」です。

GuruPlugを他の無線ルータに接続して使用するクライアントモードの設定です。
(アクセスポイントとクライアントモードについては「#0-5 GuruPlugのインターネット接続方法」をご覧下さい)

もし、ご自宅に無線ルータがある場合、GuruPlugをその無線ルータに接続するだけで、
インターネットに接続する事が出来ます。
GuruPlugの出荷時は無線のアクセスポイントモードになっています。
そのため無線のクライアントモードに設定を変更して、GuruPlugを無線ルータに接続してみましょう!
まずGuruPlugにログインします。

次にGuruPlugの接続先である無線ルータの情報をファイルに書き込む必要があります。
以下のコマンドを実行して下さい。
「wpa_passphrase 'SSID' 'PASSWORD' > /etc/wpa_supplicant/mlan.conf」
*「mlan.conf」の名前は何でも大丈夫です。以下「mlan.conf」で統一します。

「'SSID'」と「'PASSWORD'」はGuruPlugが接続する先の無線ルータのSSIDとPASSWORDになります。
「cd /etc/wpa_supplicant」の「vi mlan.conf」で実際に書き込まれているか確かめてみましょう!

ちゃんと書き込まれていますね。
「SSID」と「PASSWORD」の下の「psk」の数字の羅列は、SSIDとPASSWORDを元に暗号化しているものらしいです。
気にしないでいいですね^^

次に、昨日無線のセキュリティ設定をした際に少しお話した、「WPA」などの設定も更に追加する必要があります。
key_mgmt=WPA-PSK
proto=WPA WPA2
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
上記の記述は、GuruPlugの接続先ルータである無線のセキュリティ設定になります。
これは大体の無線ルータのセキュリティ設定に合うので、上記の記述で大丈夫です。

この記述も一緒に「mlan.conf」に書き込みましょう。
次は、アクセスポイントモードからクライアントモードに変更するシェルを実行しましょう。
「/usr/bin/wlan.sh」を実行します。
落ちた…
アクセスポイントモードが落ちましたね!

無線経由でGuruPlugに接続するために、JTAGの登場です!

シリアルポート接続を選択し、
「設定」→「シリアルポート」→「ボー・レート」を「115200」に設定しましょう。

JTAGがGuruPlugにきちんと差し込まれていないと
こんな風に文字化けしてしまうので気をつけて下さい!
「ユーザ名」と「パスワード」を入れると、接続できましたね。

以下のコマンドで、先程「mlan.conf」ファイルに書いた内容を元に、
GuruPlugの接続先である無線ルータを探しに行きます。
/sbin/wpa_supplicant -i mlan0 -c /etc/wpa_supplicant/mlan.conf -B

実行した後「iwconfig」を実行すると、
「mlan0」(無線クライアントモードの情報)のSSIDが先程設定したSSIDに変わっていますね!
これでクライアントモードの設定は終了です。
ちなみにGuruPlugがクライアントモードになると、
右のLEDが赤色になり、接続先の無線ルータを探している時は
下のLEDが青の点滅と消灯の繰り返しになり、接続が完了すると、青の点滅に変わります。

【まとめ】
クライアントモードの設定は成功しましたか?
今回はJTAGを用いて行いました。
JTAGがない方は、「#0-5 GuruPlugのインターネット接続方法」をご覧になってみて下さい^^