mcommit's message

大阪でソフトウェア開発の仕事をしている simotinといいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

BUFFALO VPNルーター VR-S1000を使って自宅でVPN環境を構築してみた

タイトルの通り、バッファローVPNルータ VR-S1000
buffalo.jp
を使って自宅の環境にVPN経由で接続してみました。

普段は仕事でOpenVPNを使ったVPN環境の運用に携わっているのですが、VPN上でSambaを通してファイルを扱っているとファイルのコピーや移動に失敗することがしばしば発生していました。

そもそもOpenVPNに問題があるのか、Sambaの設定がよくないのかなど原因がまだよく分かっていないのですが、OpenVPNの代替案として、こういったVPNルータがどの程度使えそうか気になっていました。
amazonのレビューを見る限りは良い製品のようですが、ブログなどで使用例の記事があまり見かけないので、不安があったのですが、思い切って試しに買ってみることにしました。

■検証

とりあえずVPNルータを使って私がやりたかったことは、VPN経由で自宅のローカルサーバにアクセスすることができるかどうかの確認です。

ローカルのサーバーにアクセスできることを検証したいといっても、実は今のところ自宅にサーバなど立てていません。
ルーターがリビング・キッチンにあるので、ルーターの近くにマシンを置いたら嫁さんに怒られるし、子供にマシンの電源スイッチを触られたりするのは目に見えています。

というわけで今回は自宅に転がっていたRaspberry piにwebサーバを立てて検証することにしました。
Raspberry piなら家族にも気づかれないようなところに設置可能です。

ということで、今回は下図のような構成で確認してみました。

f:id:simotin13:20151212104018j:plain

クライアント側は、iphoneでもVPN接続の機能があるということを耳にしていたので手持ちのiphone 6を使いました。


まずはルータ設置し、PPPoEの設定をして、とりあえずインターネットに繋げるようにします。
この辺の設定は他のルータなどと対して変わりませんので特に問題なく作業は進みます。


VPNの設定ですが、そもそも上記のように自宅サーバを立てているわけでもなく、ネットの契約は固定IPではありません。
なので、まずはドメインの取得が必要なのですが、バッファローはダイナミックDNSサービスを提供しているそうなので今回はこのサービスを使うことにしてみました。

サービスの申込みは簡単で、Webのフォームから、

  • 希望のドメイン
  • ルータのシリアル番号
  • 任意のパスワード

を入力すると接続用のIDがメールで送られてくるという至って簡単なものです。

注意:シリアル番号はルータの裏面に貼ってあり、後から調べるのが面倒なので先にメモや写メを取っておくことを強くお勧めします。


あとは機器側の設定画面にID等を入力したら設定完了。取得したドメイン名は直ぐにpingも通りました。

このサービスは年間3800円の利用料が必要になるそうですが、最初の2か月間は無料だそうです。※とりあえず検証するのが目的なので今回は特に気にしません。

VPNの設定も適当に入力してiphoneから接続してみたのですが、うまくいきませんでした。

ネットで調べているとiphoneと接続する場合は

暗号化方式:3DES
認証方式 :SHA-1

でないといけないというような情報もあったのでとりあえず上記の通りの設定にしました。

マニュアルを見ても何を選択してよいか分からない項目がありましたが、親切なことに設定事例集という文字通りケーススタディによるマニュアルがありましたので、こちらを参考に設定してみます。


ルーター側の設定ができたら続いてはiphone側の設定です。
設定事例集にも書いてあるのですが、iphone側のVPN設定の注意点としては、VPNの接続タイプはL2TPを選択する必要があるようです※IPSecではなくL2TPを選ぶ。
あとはルータ側で設定した共有キーやアカウント・パスワードを設定したら設定は完了です。

f:id:simotin13:20151212112009j:plain

うまくVPN接続ができるとiphoneの上部に「VPN」と書かれたアイコンが出てきます。
f:id:simotin13:20151212112018j:plain

ここまででルータ設置開始から約1時間程度掛かりました。
※最初から事例集を見ておけば30分程度でできたと思います。

さてさてVPNでの接続ができたら次はローカルサーバ(Raspberry pi)へのアクセスですが、自宅側の機器のアドレスはどうなるのかわかりません。※VPNクライアント側は設定したセグメント(私は事例集にあわせて192.168.200.1~で設定しました)
のアドレスになりますが、内部にはどうアクセスするんだろうか?アドレス変換の設定とか必要なんだろうか?
と疑問に思いながら、先ほどの設定事例集を読んでいると

こんなページが、

f:id:simotin13:20151212115407p:plain

要するにルータ内部で勝手にルーティングしてくれるとのこと。なるほど、なるほど簡単ですね!
Raspberry pi側ですが、手っ取り早くWebサーバを動かしたいので、以前インストールしていたRubyWebrickを立ち上げました。
Ruby好きな私はLinux系ガジェットにはとりあえずRubyをインストールしています。

というわけでiphoneのブラウザでRaspberry piのローカルアドレス(私の環境では、192.168.11.11)にアクセスすると無事、Webrickのページが見れました。当たり前といえば当たり前ですがちょっと感動です!

ここまでわかれば後はSambaサーバだろうがFTPサーバだろうが問題なさそうです。よかったよかった。

■この製品の良かった点

この製品の良い点は、上記の通り製品マニュアルとは別に、設定事例集が存在することでした。

VPNの設定項目には普段見慣れない項目も存在するので、パッと見でどこをどう設定するのか、設定が正しいのかどうか分かりませんでした。

そんな時にケーススタディで設定例を示してくれるドキュメントがあるというのは非常にありがたかったです。
私がやりたかったのは外部からPCやiphoneを使って自宅のサーバ等にアクセスするということだったのですが、設定事例集にそのようなネットワーク構成の設定が載っていたのでとても助かりました。

製品開発の際はマニュアルなどは疎かになりがちですがこういった点にもしっかり意識を持ったモノ作りをしないといけないですね。

VR-S1000、まだパフォーマンスとか拠点間接続とかも検証してみたいですが、いい感じに使えそうです。
バッファローは安くて使い勝手の良い製品を作られているので個人的に好きなブランドです。値段の割には壊れたりしませんし。

BUFFALO IPsec対応 VPNルーター VR-S1000

BUFFALO IPsec対応 VPNルーター VR-S1000

せっかくRaspberry piを設置したのでSambaを立てたり、Webカメラをつないで自宅の監視でもできるようにしてみようかなと思います。

あっ、でもせっかくならRaspberry pi2でやりたいな・・・っていうかどちらかというとBeagleBoneの方が好きなのでちょっと高いけどBBBでも買おうかな・・・