« Linuxの憂鬱 | トップページ | トルコにはないトルコライス(長崎) »

2015年9月10日 (木)

シングルボードコンピュータ「 Raspberry Pi 2 Model B 」(ラズベリー パイ)を買ってみた

■買ったもの

種類:シングルボードコンピュータ/SBC/1ボードPC/コンピュータボード/開発ボード/開発キット/小型ボードコンピュータ/マイコンボード/教育用マイクロ・コンピューター/プログラミング教育向け小型コンピュータ/ベアボーンPC/教育用PCボード/教育向け低価格Linuxコンピュータ/超小型パソコン/カードサイズPC/名刺サイズパソコン/クレカサイズコンピュータ/コンパクトPC
メーカー/ブランド名/開発元:Raspberry Pi Foundation (ラズベリーパイ財団/RS Components版)
商品名:Raspberry Pi 2 Model B
購入先:RSオンライン(アールエスコンポーネンツ株式会社)

■何でか

以前、Model B+ と格闘したものの、あえなく挫折に終わった。しかし、

  • 公衆ネットワーク接続(公衆無線LAN、無料WiFiスポット、フリーWi-Fi、駅やホテルや空港やカフェやファストフードや電車やバスや飛行機などの交通機関の車内などでの有線・無線接続)のセキュリティ対策をしたい
  • 自宅LAN内のNASに接続(リモートアクセス)をしたい

という必要性が高まってきたため、Raspberry PiでVPNサーバを立てることにした。これは、

  • VPN(Virtual Private Network)接続をする
  • DDNS(ダイナミックDNS、Dynamic Domain Name System)サービスを利用する

ためである。VPNやDDNSの解説は、

などにある。この目的のためには、他の選択肢もある。

  • インターネットVPN接続サービスの利用(有料または無料)やブロードバンドルータの機能
  • DDNSサービスの利用(有料または無料)とブロードバンドルータのリモートアクセス対応機能
  • サーバーに使うハードウェアがRaspberry Pi以外

正解かどうかは分からないが、こんなふうに判断した。

  • 高機能ブロードバンドルータを使えば済むが、やはり高価なため買い換えるには躊躇する。
  • インターネットVPNサービス、DDNSサービスは、どちらか一方だけなら利用してもいいが両方ともなら、自前のサーバと一緒にDDNSサービスを利用して、まとめて済ませたい
  • サーバー(ハードウェア)は、個人利用なので、安上がりかつ省電力で済ませたい。「LIVAの特価品」があったけれど買いそびれた。

Raspberry Piに再挑戦するにあたり、どうせならと、ARMアーキテクチャが新しくパフォーマンスの高い「 Pi 2 Model B 」を、気分も新たに使うことにした。

■ Raspberry Pi 2 Model B

概要は、「ラズベリー・パイ2の部屋」にまとまっている。
また、

  • 性能が上がり、それに伴い消費電力(発熱)が大きくなった
  • 発表当時、Windows10が提供されると話題になったが、デスクトップ向けエディションではなく、IoT向けだったため期待していた人はガッカリしたし、始めから期待すらしていない人もいた
  • ARMアーキテクチャが変わり、「ARM版 Ubuntu」が使えるというメリットがあり、大歓迎されて盛り上がっている
  • 発表当時、「B+」との価格差が小さいため“お買い得”とされたが、「B+」が在庫処分の値下げとなり「B+」の“お買い得”感が高くなった。そのかわりに「B+」との価格差が小さくなった「A+」が割高に感じられるようになった

■サーバとしての Raspberry Pi

Raspberry Piをサーバーに使う事例は多いけれど、そもそも電子工作などの教育用に設計されたため、サーバーとして使うには不都合があり、その対策の情報も多い(サーバーの運用・稼働には、高信頼性・耐障害性・高可用性が求められるそうだ)。
長時間を連続して使う際に問題になる点は、

  • SDメモリーカードの破損
  • 熱暴走

らしい。

●SDカードの対策は、カードへの書き込みを減らすことと、OSを別のストレージに置くことなど。

●熱対策は、CPUの負荷を減らして発熱を抑えることと、どう冷却するか、になる。冷却手段は、基板の構造やスペースの制約もあり、水冷などができるパソコンほど多くないと思われる。

  • 自然放熱(ファンレス)、ヒートシンクなし
  • 自然放熱(ファンレス)、ヒートシンクあり
  • 強制空冷(冷却ファン)、ヒートシンクなし
  • 強制空冷(冷却ファン)、ヒートシンクあり

それぞれの方法で、どの程度の冷却効果があるかは、熱流体解析するか、同一条件下での比較実験をするしかない。
しかし、そもそもどの程度まで冷却する必要があるかが分からない。
冷却ファンは、いずれは埃が溜まって回転が落ちたり寿命で故障する。故障のチェックも面倒だし、故障してしまうと、自然放熱よりも冷却効果が低くなりそう。また、冷却ファンの音は気にならないが、省電力にしたい。そこで、とりあえず「自然放熱・ヒートシンクあり」にする。

熱対策部品はヒートシンクだけでなく、ICとの間に介在する媒体(熱伝導シート、シリコンサーマルパッド、熱伝導性両面テープ、放熱グリスなど)も重要になる。
これら熱対策部品の材質、大きさ、形状(表面積)と、外気温、流れといった要因が複雑に影響しあって、放熱性が決まる。
これらを評価する指標に「熱伝導率」「熱伝達率」「熱抵抗」などがある。物質の中を伝わるのが「熱伝導」、異なる物質の境界で熱が受け渡される「熱伝達」、放熱系(システム)の評価に使うのが「熱抵抗」…だったと思う。
ヒートシンク選びでは、取り付けられるかどうかを寸法で判断するだけでなく、放熱性能の熱抵抗の値も見なくてはならない。数値が小さいほうが放熱効果が高い。
熱伝導率の数値は、大きいほうが放熱効果が高い。

■ヒートシンク

「Raspberry Pi用」として販売されているヒートシンクには、「サイズがぴったり」となっている物がある。しかし、飾りならいざ知らず、熱対策ならば熱抵抗が小さければ小さいほど、それはつまり材質が同じならば大きさ・表面積が大きいほどいいことになる。
「サイズぴったり」に意味はなく、「最低でもこの大きさで、できるだけ大きいもの」ということになる。周辺のSMDとの干渉を避けるためなら、「サイズぴったり」よりも底面を削るほうが得策。

【 Raspberry Piで発熱が大きいとされるICのサイズ(mm)】
Model SoC メモリ USBハブ・イーサネットコントローラ 電源
レギュレータ
2B 14×14 12×12 8×8 なし
B+ (PoP実装) 12×12 9×9 なし
A+ (PoP実装) 12×12 なし なし
B (PoP実装) 12×12 9×9
A (PoP実装) 12×12 なし

PoP実装(Package on Package)のモデルでは、SoCの上にメモリーが覆い被さって実装されているため、外側からSoCは見えない。
LANのICは、USBハブと「USB NIC(「C」はカードではなくコントローラー)アダプタ(イーサネット・コントローラ)」を統合しているらしい。
Model A(Type A)、Model B(Type B)は、所有していないので詳しくは分からない。

ヒートシンクの大きさを最優先に考えると、こんな構成も考えられる。
Rpi024

●煙突効果

ヒートシンクから周囲の空気へ、どれだけ熱を移すかも重要。強制空冷よりも、もっと空気の流れのことを気にしなければならない。
自然の流れにまかせて効果的に冷却しようとすると、「煙突効果」を利用することになる。しかし、基板上の実装部品(端子など)配置を考えると、なかなか難しい。まだ答えは見つからない。

基板を水平に配置する場合。
Rpi026

基板を垂直にする場合。
Rpi027

●ヒートシンクの取り付け

パソコンのマザーボードは、CPUクーラーの取り付けに対応した構造になっている。かたや、Raspberry Piは、教育用コンピュータという前提のため、サーバーとして長期連続稼働に対応したヒートシンク取り付けなど考慮されていない。
簡単で安易なのは、両面テープだが、両面テープはグリスに比べて熱伝導率が低い(熱抵抗が大きい)。グリスを使い、ヒートシンクを固定する方法(構造)を考えると、なかなか難しい。まだ答えは見つからない。

■ケース

放熱のためにはケースに入れないほうがいいけれど、基板むき出しというわけにはいかない。そこで、ケースは基板の保護と放熱を両立でるかもしれない「RS品番:819-3658」を選んだ。透明にしたのは、基板上のLEDが見やすいため。カメラモジュールを差し込めるようになっているが、今回の用途では関係ないのでどうでもいい。
Rpi021

3つのパーツに分かれており、底面部品と中間部品で基板を囲んで保護する。中間部品の四角い穴で、ヒートシンクを基板を囲む空間の外に出せる。中間部品とフタで囲む空間を放熱用の空間にできる。フタを使わないだけでも放熱効果が期待できる。

ところが、このケースには問題がある。基本的には「B+」用の設計で、「Pi 2」“でも”一応使える物になっている。そのため、不具合がある。

  • SoCのあたりに四角い穴が開いているが、位置・大きさが合わない
  • 基板ウラ側のメモリーの位置にヒートシンクを付けられるような穴が開いていない

また、「USBハブ・ネットワークコントローラーIC」の位置に穴が開いていないという問題は、「B+」でも同様に言える。
Rpi022
Rpi023

更に、中間部品とフタで囲まれる空間に空気を誘導するためには、中間部品の側面を2箇所切り取って、空気の「入り口」「出口」を作らなければならない。その入り口・出口は、放熱に「煙突効果」利用する目的で、上下の位置関係にしなくてはならない。つまり、本体を立てることになる。その際に、端子に埃が溜まってしまうのを避けるため、LAN(イーサネット)、USB端子のある側を下にする。
Rpi025

■ VPNサーバソフトウェアの選択

VPNサーバソフトウェアは何種類もあり、対応している方式(プロトコル)もさまざま。

【 VPNサーバソフト 】(調査中)
技術・プロトコル サーバソフト
名前 レイヤ
OSI参照モデル
SoftEther VPNサーバ pptpd OpenVPN Hamachi openswanとxl2tpd
SoftEther VPNプロトコル
HTTPS(HTTP over SSL)
6(SSL)
PPTP 2
SOCKS 4
OpenVPN 2または3
L2TP/IPsec 2及び3
L2TPv3/IPsec 2及び3
EtherIP 2
Microsoft SSTP
(MS-SSTP)
PPP over HTTPS
6(SSL)
VPN over HTTPS
(SSL-VPN)
6(SSL)
VPN over DNS 4?
VPN over ICMP 3?

【 VPNクライアントソフト 】(調査中)
技術
プロトコル
OSのクライアント対応
Linux Windows Mac OS iOS Android
SoftEther VPNプロトコル
PPTP
SOCKS
OpenVPN
L2TP/IPsec
L2TPv3/IPsec
EtherIP
Microsoft SSTP
(MS-SSTP)
VPN over HTTPS
(SSL-VPN)
VPN over DNS
VPN over ICMP

その中で、無料のDDNSサービスが提供されており、先人による「Raspberry Piでも使えた」という最近の事例も多く見つかる「SoftEther VPN」を使うことにした。
国産なので日本語のドキュメントも多い。ただし、ドキュメントは多いものの、わかりやすいかどうかは別問題。

最も参考になった事例は、「Raspberry Pi 2とSoftEther VPNを使ってVPNサーバーを構築しよう!
他のサイトでは、VPNサーバを動かしているRaspberry Pi自身(他のサーバーソフトウェア)に接続できなかったり、起動スクリプトが間違っていたりした。

そんなこんなで導入の道程は、決して平坦ではなかった。

  1. 最初に参考にしたサイトの情報は、「/etc/nework/interfaces」の内容説明に誤りがありブリッジが起動せず、SoftEther VPNもスクリプトをコピペしたが誤りがあり起動しなかった。
  2. 次に参考にしたサイトの情報は、tapデバイスを考慮しておらず、VPN経由ではRaspberry Pi自身(SSHサーバなど)に接続できなかった。
  3. やっと上記のサイトを見つけて、仮想NICとブリッジが構成できた。
  4. 「SoftEther VPN Server Manager for Windows」でリモートアクセスし、仮想ハブとのブリッジを設定する時に、うっかりして物理NICとのブリッジを削除する前に設定してしまい、「SoftEther VPN Server Manager for Windows」が落ちた。
  5. 「SoftEther VPN Server Manager」での接続は拒否され、SSH接続は確立せず、ブロードバンドルータのWAN側の通信に障害が発生した。
  6. コンソールを接続できるような場所に置いておらず、SSH接続もできないことから、仕方なく最後の手段の「電源ブチ切り」をせざるを得なかった。
  7. どうやって復旧するかは、まだ答えが見つからない。
  8. まだ復旧していないため、VPN経由の「SMB」「CIFS」環境との接続は試せていない。

■セットアップ

●購入したもの。

  • Raspberry Pi 本体 RS品番:832-6274
  • microSDHC メモリーカード 16GB Class10 TOSHIBA海外パッケージ
  • 電源ケーブル(USB 標準Aオス/USB micro Bオス)
  • LANケーブル
  • ケース RS品番:819-3658

合計で7,000円程度。
電源(ACアダプタ)は購入していない。ブロードバンドルータに、USBポートが付いているため、そこから電源をとっている。仕様では電力(電流)不足になるはずだが、なぜか動いた。

●ソフトウェアのセットアップ

  1. OS:RaspbianのイメージのSDメモリーカードへの書き込み(Windows PCで作業)
  2. Raspbianの基本的設定(SSH接続)
  3. Raspbianのサーバー向け設定(セキュリティ設定を含む)(SSH接続)
  4. VPNからRaspberry Pi自身にアクセスできるようにするために仮想NICとブリッジをRaspbianに設定(SSH接続)
  5. VPNサーバソフトウェアのインストール(SSH接続)
  6. VPNサーバソフトウェアの設定(ユーティリティでリモート接続)
  7. SMBクライアントのインストール(SSH接続)

※ただし、作業手順を誤ったため上記のようにはできておらず、目的を達成できていない(挫折)。

エディタは、vimをインストールしなくても、nanoで済んだ。
設定ファイルを書き換える前に、元のファイルをcpコマンドで残しておく簡単な方法があった。
カメニッキ「設定ファイルをバック・アップする時に「$ cp /etc/hoge.conf{,.org}」って書くとらくちんだった
ただし、SSH接続して、「やることメモ」をターミナル画面にコピペしていくだけなので、ほとんどコマンドを打ち込んでいない。

●セットアップと管理に使ったWindowsアプリケーションは、

  • SDへのOS書き込みと、SDの内容をファイルにバックアップする「Win32DiskImager」
    ※バックアップの際には、パーティションのサイズに関係なく未使用(未割当て)領域も含めて、SDカード総容量サイズのイメージファイルになってしまう
  • SSH接続する時に、Raspberry PiのIPアドレスを調べるためのネットワークスキャナーの「Advanced IP Scanner」
    ※MACアドレスを調べるのにも使える
    ※「窓の杜」には、他にも「SoftPerfect Network Scanner」や「NetEnum」などがあるが、個人的な好みでこのソフトを使った。
  • SSH接続クライアントと、公開・秘密鍵ペアの生成と、公開鍵ファイルをRaspberry PiへSCPファイル転送するための「Tera Term」
    ※ 鍵の本体は文字列なので、SCPファイル転送をしなくてもエディタのコピペで済む。
  • 容量の大きなSDから小さいSDへコピーするための「AOMEI Partition Assistant Standard」
    ※あらかじめ、Raspbianのパーティションサイズ(ファイルシステムExt4)を、他のソフトやLinux系OSのコマンドで縮小(リサイズ)しておかなければならない
    ※容量の小さなSDへ、パーティションをコピーしてから「Win32DiskImager」でバックアップを取れば、イメージファイルを小さくできる
  • SoftEther VPNサーバソフトウェアの設定と管理をする「SoftEther VPN Server Manager for Windows」(ファイル「SoftEther VPN Server and VPN Bridge」の中に含まれており、選択してインストールする)

である。サーバーの設定で「VPN Azure」機能を有効にしておくと、「SoftEther VPN Client」をインストールしなくてもWindowsが備えているクライアント機能で接続できる。
また、場合によっては使うことになるWindowsアプリケーションもある。

  • OSを書き込んだSDメモリーカードを普通のデータ用に戻したり、SDXCカードを使えるようにするための FAT32フォーマッタ「バッファロー Disk Formatter2」
  • SDメモリーカードのパーティションのみをバックアップするための「AOMEI Backupper Standard」

■ SSH接続でのセットアップ

デスクトップ環境で使う場合でも、セットアップではCUIを使わなければならない。一字一句間違えられないコマンド入力などを、コピペでホイホイ済ませられるSSH接続が断然便利。ディスプレイやキーボードを接続する必要もない。
SSH接続するためには、IPアドレスまたはホスト名が分からなければならない。DHCPを無効にしてIPアドレスを固定したり、ホスト名で接続できるようにするためには、ディスプレイとキーボードを接続して単独起動して設定しなくてはならない。

Raspberry PiのIPアドレスを調べる方法は、例えばこんな感じ。

  • ルーターの管理画面にログインして、DHCPによるIPアドレスの割り当て(リース)状況を見る
  • ネットワークスキャナーでLAN内にある端末のIPアドレス一覧を見る
  • ルーターに「IPアドレス予約機能(固定IPアドレス、DHCP固定)」があれば、ネットワークスキャナーでRaspberry PiのMACアドレスを調べておき、DHCPで特定のアドレスが割り振られるようルーターに設定する。

ネットワークを経由しないで、PCのUSB端子とRaspberry PiのGPIOピンを直結して接続する方法もあるらしいが、専用のケーブルが必要(USBシリアルコンバータケーブル RS品番 767-6200 など)。

■ SoftEther VPN

「SoftEther VPN Server Manager for Windows」の利用したバージョン(Ver 4.18, Build 9570, rtm)には、セットアップする時にウィザード式に設定できる機能が付いていた。ネット上にあるセットアップ方法に関する情報には、あっちを設定してこっちを設定して…と説明があるが、使用形態(リモートアクセスやブリッジなど)を選択すると、ウィザードに従っていけば、ひととおりの設定が済むようになっていた。
その中で、「VPN Azure」を有効にするか否かを選択するようになっている。その「VPN Azure」とは何かの説明があるものの、会社のパソコンがどーのこーのと解りづらい。個人的な解釈では、「VPN Azure」を有効にすると、Windowsに標準で備わっている(実装しているとも表現される)VPNプロトコル「Microsoft SSTP VPN プロトコル(MS-SSTP)」が有効になり、Windowsに標準で備わっているVPNクライアント機能を利用できる。そのため、

  • VPNクライアントソフトのインストールが不要
  • ルータのポート開放(設定変更)が不要
  • 他のプロトコルよりもルータ(ファイアウォール)を通過できる場合が多い

がポイントとなる。ただし、接続速度が上がらない場合は、クライアントソフトをインストールして、そっちを使ったほうがいいみたいな事がどこかに書いてあったような気がする。
また、マイクロソフトの「Microsoft Azure」とは関係ない。

「SoftEther VPN」と「PacketiX VPN」の違いは、開発・権利元や有償・無償らしいが、あちこちの説明を読んでもスッキリしない。

【 SoftEther後継のVPNサーバ 】
SoftEther VPN PacketiX VPN
開発元 SoftEther VPN プロジェクト(筑波大学) ソフトイーサ株式会社
使用料 無償 有償
機能制限 クライアント数 制限なし 制限あり

■セキュリティ対策

DMZではなくLAN側(ファイヤーウォールの内側)にVPNサーバを立てると、攻撃者、クラッカー(悪意のあるハッカー)にとっては、バックドアを開けてもらっているようなもの。
利便性と共にリスクも高まるので、セキュリティ対策が気になるが、「VPNサーバに使えました、ハイそれまで」という情報ばかりで、VPNのセキュリティ対策を掘り下げた情報が見つからない。Raspberry pi でとり得る対策は何かと、手順の情報が欲しい。

サーバー側から見て、クライアントが正規ユーザーかを見極めるためには、パスワード認証ではなく鍵認証を使いたい。クライアント側から見てサーバーが正規かを見極めるには、サーバー証明書を使いたい。クライアントのIPアドレス(国など)を元に接続制限(ブラックリストまたはホワイトリスト)ができるなら設定したい。

また、仮想NICを作りブリッジの設定をしないと、VPNクライアント側からRaspberry Pi内のサーバーにアクセスできないが、これは、SoftEther VPNのアクセスログを消去して不正アクセスの痕跡を隠滅するのを、防ぐ対策になるかもしれない。セキュリティの知識が不十分なため、この仮説が正しいかどうかは解らない。ただし、LAN内への侵入を防げなければ元も子もない。

■使ってみて

Raspberry PiをVPNサーバーにすることはできた。Windows PCがクライアントなら、ブロードバンドルーターのポートを開ける設定変更の必要はない。耐久性(信頼性)は未知数。
しかし、落とし穴(問題)は別の所にあり、まんまと嵌った。原因は、クライアント側の回線「WiMAX2+」にあった。

  • WiMAX2+ は遅い(端末はNECの「Speed Wi-Fi NEXT WX01」)。
  • WiMAX2+ には 3GBの通信量制限がある。

また、WiMAX2+ は、年間の観光客数が80万人を越えるような有名スポット(屋外)でも「圏外」となり、エリアがダメダメ。「WiMAX」の減速・解約金免除なしで半強制的に移行させられた商法も腹立たしい。
Raspberry PiやSoftEther VPNとは全く関係のない話だが。

« Linuxの憂鬱 | トップページ | トルコにはないトルコライス(長崎) »

小者が小物を買い物」カテゴリの記事

トラックバック

« Linuxの憂鬱 | トップページ | トルコにはないトルコライス(長崎) »