BuffaloのWHR-G301Nを使って外から自宅にVPN接続できるようにした

BuffaloのWHR-G301Nを使っていろいろやったのでメモ。

VPN

以前書いたけど、会社にはVPN環境を作っていて、自宅から会社のLANに入れるようにしている

あとで書くかもしれないけど、この記事の後、さらにいじってる。カンタンに書くと、

  • VPNが、Windowsをサーバにすると同時に1接続しかできないし、セキュリティ的にも不安。
    • Linuxでpptpdを立ててこっちをVPNサーバにすることにして、パスワードは毎日ランダムに自動生成されるようにした。
  • 画面共有などのポートは全部閉じた。VPNだけを開けてる。
    • 会社にMac置いたままの日は、家からまずVPNをつなぎ、その上でローカルIPを指定して画面共有して使う。
    • 会社のMacを持ち帰った日は、そのMacからVPNをつないで使う。

こんな感じのことをやって、ものすごく便利になった。VPNをつなげばその上でLANのつもりで何でもできるのが良いね。

逆に自宅へのVPNもやりたい

そして自宅にもVPNサーバを立てたくなった。会社や外出先からつないで自宅のNAS(Time Capsule)の中をみたり、自宅に置いてあるMacを画面共有で操作したりしたら便利そう。

でも、会社でやったようにLinuxVPNサーバを立てたくない。各種メンテがメンドイので、家にサーバは置かないことにしたい。そのためにわざわざTime Capsule買ってNASも準備したし、自動実行されるプログラムはレンタルサーバの方に移行しているので、VPNのためのサーバもナシでいきたい。

調べてみたらBuffaloであった

なんかBuffaloのルータは、現在売ってる機種だと、たぶん全部でVPN(PPTP)サーバの機能がついてる。他社のではYAMAHAのだとあるっぽいけど高い。それ以外のメーカー(家庭用)では見つけられなかった。VPNパススルーは大抵あるけど、VPNサーバって無いよね。

VPNの種類もPPTPなので、Windows/Macはもちろん、iPhone/iPadでも標準機能で接続が可能。専用のソフトを入れたりしなくて良いのは最高。借り物のPCでもなんでもいける。

で、ルータを買うなら、現在の自宅のネットワーク環境もついでに見直そうと思った。

現在使っているルータは、NTT-MEのMN8300Wというやつで、6年〜7年くらい前に3万円くらいで買った。当時では結構いいやつだった。

  • 無線はまだ11g(11nに対応してない)
  • 暗号化はWPAのAESだけなので、DSがネットワークに入れない(どうしてもやりたいときだけ、別途WEPのアクセスポイントの電源を入れてやってる)

という点が現在では気になっていたので、ここも一緒に解決できるモデルがいいなと思って探したら、一番安いWHR-G301Nでも大丈夫そうだったので、これを買った。

やってみる

無線の設定はすごいカンタンで、ハマりどころは無かった。

  • 11nは普通に使えるようになったし、非対応機種は11gや11bでつながる。
  • 暗号化の方式ごとに複数のSSIDを立ち上げれるので、MIXモード用とWPA(AES)用とWEP用の3つを立てた。
    • ほとんどの機器はMIXモードのSSIDにつなげることができた。
    • WEP用のアクセスポイントに関してだけ隔離機能を有効にして、LAN内の他のマシンとは通信できないように(インターネットだけ利用できるように)した。
      • これは必須。DSのためにWEPを用意するのはいいけど、WEPはすぐ解析されるんだから、悪人がそこから入ってきてLANにアクセスできてはいけない。
    • WEPの暗号化キーは超簡単なものにしちゃった。どうせ一瞬で解析されるからどうでもいい。
      • 絶対に、WEPのキーを、メインで使うMIXモードやAWSの暗号化キーと同じにしちゃダメ。WEPのキーを解析されて、同じキーで別な方につなげたら何の意味もない。

VPNの設定もカンタン。PPTPサーバーの設定のところで「使用する」にして、あとはほとんどデフォルト値で良くて、ユーザーを作って終了。

面倒だったのは、SSIDが変わったことで家じゅうの無線LAN機器の設定を変えたことと、IPアドレス帯を192.168.0.0から192.168.169.0に変えたので(VPNで外からつなぐことを考えると、メジャーなやつじゃない方が良い。メジャーなやつだとLANとVPNでIPが重複しちゃってルーティングテーブル書いたりする必要が出てきて面倒)、IP固定してる機器などの設定変更など。面倒だけどやるしかないからやった。

DDNS

家のインターネット回線は固定IPじゃないので、外からVPNにつなぐにしても、接続先のIPがわからない。なのでDDNSを使った。WHR-G301Nは、DDNSの自動更新機能もあるので、これに対応している業者のDDNSを利用した。今回はDynDNSを使った。

DynDNSのサイトで会員登録して、ドメインを1つ登録する。これらの情報をWHR-G301Nの設定画面に入れるだけ。無事、作ったドメインで家のIPが取得できるようになった。

VPNのセキュリティ

VPNにつなげたらなんでもできちゃうので、セキュリティは重要。といってもワンタイムパスワードなどの仕組みはWHR-G301Nではできないので、単純にパスワードを超むずかしくするしかない。ここは残念だなー。

がんばってワンタイムパスワード的なことをやるとしたら、以下のような方法が考えられる。

  • レンタルサーバなどで、固定IPの外部サーバを用意する
  • WHR-G301Nの設定で、インターネット側からの設定変更を許可し、許可するIPアドレスにその外部サーバの固定IPを指定する。
  • レンタルサーバに例えばMechanizeを使ったスクリプトを用意して、VPNのパスワードを遠隔から設定できるようにする。
  • VPNを使いたいときだけこの外部サーバのスクリプトを動かしてランダム生成パスワードを設定し、接続が終わったら消すようにする。

こんな感じだろうか。結構良い方法だとは思う。面倒なので全く試してない。

便利

以下を試してみた。

  • VPNで外部から自宅につなぎ、Time Capsuleに置いてあるファイルにアクセス
  • VPNで外部から自宅につなぎ、画面共有で自宅のMacのIPを指定すると、MacがWake On Demandでスリープから自動で復帰してそのまま遠隔操作
    • 「システム環境設定→省エネルギー→電源アダプタ→ネットワークアクセスによってスリープを解除」の設定を事前にやっておく。
    • 自宅のMacが有線LANでつながっている必要がある(AppleWi-Fiアクセスポイントを使ってるならWi-Fiでもいいらしいけど)。
      • 自分の場合は、イーサネットコンバータ→ハブ→Macという「実際には無線だけどMacから見たら有線」な状態だったけど、Wake On Demandは作動した。

他にもまだ試してないけど、共有になってるプリンタから印刷したりもできるだろうし、家のIPからWebを見たりもできる(あんまりやる理由無いけど)。あとなんだろう、IPMessengerとかも動くのかな。みんな大好きBonjourVPNを超えられないらしく残念。

VPNを使うと何ができるかをカンタンに言うと、「LANでは普通にできることをインターネットの向こう側からやりたいとき、VPNなら接続さえすればそのままできちゃうので、いちいちポート開放など何もしなくて良い」ということ。手間も省けるし、VPNのセキュリティだけに注意すればいいので安全性を高めることもできる。

まあそんなわけで、いろいろ便利になったのでよかった。

なにがいいって、VPNより11nが良かった。iPhoneとかの通信が体感できるレベルで速くなった。

VPNクライアントも興味ある

VPNクライアント機能がついたルータがあれば、拠点間をつなぎっぱなしにもできるわけだよね。。。面白そうだけど家庭用でそういうのあるのかな。