VPNで自宅と実家を結ぶぞ!

3連休、実家に帰ったところ、何を思ったか「OpenVPNで自宅と実家を結ぶ」というアイディアに取り付かれてしまった。
「実家の両親に孫(私の息子)の写真やら何やらをDLNAでスライドショーにして見せる」というユースケースが実現したかったこともある。ネットワーク関連良く分かってない自分の自己研鑽という意味あいもある。

ということで、俺プロジェクト「自宅と実家でVPN」を始動した。

色々なVPN

まずVPNってものが何者であるか、ちゃんとわかってなかったので調べてみた。結果、世の中には大体以下のような技術方式があることが分かった。

また、ユースケースとしては以下のようなものがあることも分かった。

    • 拠点間接続 (site-to-site)
      • 東京本社と神奈川支社を結ぶ
      • 自宅と別荘を結ぶ
    • Road Warrior
      • 営業マン等が社外から社内につなぐ
      • 外出先で自宅のPCにつなぐ

今回実現したいユースケースは「拠点間接続」なのは明らかだ。

これに向いた技術方式がどれであるか?昔は拠点間VPNといえばIPSecで決まりだったようだが、IPSecは複雑でコストが嵩みがちであり、かつ他の方法でも拠点間接続できるということで、最近はIPSec固定でもないらしい。そこで、まずはPPTP接続を試してみることにした。実家の側のルータをDD-WRT化してこれを一つのエンドポイントとし、自宅のほうは24時間運用のUbuntu自宅サーバがあるので、これを使うこととした。

ルータのOpenWRT化

さて、実家の無線LANルータはBuffaloのWHR2-G54というヤツだったのだが、これをDD-WRT化しようと調べてみると、残念!DD-WRTは実家のルータに対応していないことがわかった。しかし、DD-WRTのもととなっているOpenWRTには辛うじて対応していそうだったので、OpenWRT化することにした。

TFTPをつかってファームウェアを送りつけるというのは初めての経験だったのだが、タイミングを見計らって何度かトライしたら、OpenWRT化には成功した。SSHログインしていろいろできるようにもなった。

しかし、OpenWRTを入れたはいいが、使い方が難しい。実は最初、何も考えずに入れた最新ファームウェアでは無線が一切使えなくなってしまった。WHR2-G54の中に入っている無線チップのbroadcomというメーカとOpenWRTが知財云々で争っているようで、おそらくそれで最新のファームでは無線がサポートされなくなっているようだ。OpenWRTのバージョンを一つ古いものにしたところ、ちゃんと無線も使える状態になった。

また、OpenWRT化して初めて気付いたのだが、通信速度が激遅くなってしまった。おそらく何か設定すれば高速化できるのだろうが、その情報を調べるべくググるのが、すでにめちゃめちゃストレスフル・・うーん。まいったなぁ。

超ストレスフルなネット環境の中、pptpまわりのことを1から勉強しはじめたのだが、何だか難しくてかつ情報があまり見つけられず、更にブルーになってくる。OpenVPN方式に乗り換えたくなってきた。そこでopenvpnをおもむろにipkgだっけ? のコマンドでインストールしようとしたのだが、ブロック数が足らないとかなんとかで怒られてしまい入らない。。OpenVPNへの浮気はとりあえず忘れてPPTPの勉強を進めることにしたが、超低速ネットでろくにググれないと勉強も進まないため、とりあえず一旦元の純正ファームに戻すことにした。

再びTFTPで純正ファーム送りつけて再起動。しかし、ブラウザで画面を開いたところBuffaloの画面は出てこずOpenWRTの画面が出てきた・・
「あ・・戻せないジャン・・」
かなりブルーになってきた。
状況を整理しよう。

  • OpenVPNはこのルータではできそうにない」
  • PPTPの情報をしらべるにも速度が落ちてしまって超ストレス」
  • 「もう純正ファームにも戻せない」
  • 「OpenWRTはそれ自体扱いが難しい」

これだけ悪条件が揃うと、まさにこれは四面楚歌。
「そもそも、OpenWRT自体を使いこなすことは今回の目的ではない」
ということで、結局、このルータはボツにして、DD-WRT対応の別のルータを買うことにした。このルータも、もう5年ぐら使ったんだし、よしとしよう。

WHR-G300NのDD-WRT

せっかく買うのなら11n対応がいいなぁってことで、DD-WRTのページで対応ルータを調べたところ、BuffaloのWHR-G300Nが対応しているとのこと。早速近所のPC-Depotで7000円ぐらいで購入。箱をあけてすぐにDD-WRT化するのは少々ためらわれたが、目的達成のためにはしょうがない。すぐにDD−WRT化に着手した。

はじめは、先ほど同様TFTPでファームファイルを送りつけようとトライしたのだが、新しいルータでは送りつけるタイミングがつかめず上手く行かなかった。調べたところルータにファームファイルを取って行ってもらう方法ってのもあったのでこれを試した。結果DD-WRT化には成功した。

DD-WRTの画面を見ながら、さきほど、OpenWRTの硬派すぎる世界に負けた私は、素直に思ったよ。
DD-WRTってすばらしい。」
僕のようなヘタレには、OpenWRTは無理っす。DD-WRTじゃなきゃダメっす!

PPTPをためす

やっとルータ改造の世界から抜け出せたので、VPN計画に戻れる。
DD-WRTのメニューを見たところ、Service>VPNの項目にPPTPのサーバになるための設定とクライアントになるための設定があった。

サーバになるほうの設定は、だいたい意味がわかったのでとりあえず設定をしてみた。

さて、クライアント側である。クライアントは、ここ実家ではなく、自宅側にあるUbuntu自宅サーバ側での設定だ。SSHでログインして pptp-linuxなるパッケージをインストールして色々いじってみた。

結論・・・ よーわからん。。

ヘタレな僕にはPPPとPPTPの関連がよくわからなかったっすよ。ていうか、正直なところ何がわからずに挫折したかも忘れちゃった。

グーグル先生に聞いてみても、僕のようなヘタレでわかるような情報もなかなか見つからず、一方OpenVPNに関しては色々情報もありそうで、結構OpenVPNのほうがセキュリティ的にも他の面でもイケテルらしいってことも分かってきた。

また、今触っているDD-WRTopenvpn対応していないが、WHR-G300Nをopenvpn対応版のDD-WRTにすることも出来そうだったのでPPTPはやめてOpenVPNでやる方向で考えることにした。早速DD-WRTのページの情報にしたがい、ルータのファームをopenVPN対応版に入替えた。先ほどの
[Services]>[VPN]タブの中にメニューが増えてOpenVPNのサーバやクライアントになるための設定ができるようになった。

次回、OpenVPNでの自宅・実家接続について書く。