2015/07/05

QNAP TS-412でVPNを使う

時々、仕事で中国に出張する。
中国ではGoogleが使えないのは有名だけど、最近LineもGmailも使えなくなった。
Googleのサービスは全部ダメで、Ingressも使えない。
Yahooの検索は普通に動くので、Googleのパケットをタイムアウトするようにしているように見える。

そこでVPNを導入することにした。
ファイルサーバーのTS-412はVPNサーバーにもなってくれる。
そこで設定をやってみた。
以下はその顛末。

まずはNAS側の設定をする。
オンラインチュートリアルに従えばいい。
リンク先のmyCloudNASは、DDNSを設定していれば必要はない。
PPTP経由とOpenVPNと両方設定しておくことにした。
というのも中国に行ってから、どっちかが使えないというようなことになったら困るからだ。
設定からVPNサーバーを選択し、PPTPとOpenVPNの両方をEnableにしておく。

次にクライアント側の設定をする。
PPTPは割と簡単。
上記のリンクに従って進めばいい。
一方のOpenVPNについては、使いたいデバイス側にアプリを落としておかないと行けない。
OpenVPN用に、設定ファイルと証明書をダウンロードしておく。
これはopenvpn.zipという圧縮ファイルになっていて、中にreadmeが入っているので、それに従う。
設定ファイルopenvpn.ovpnをエディタで開き、remoteの隣のIPアドレスを自分のサーバーネームに書き換える。
このときデフォルトで落としてきたファイルには、すでに自分のTS-412のIPが書かれている。
そして、証明書ca.crtと一緒に、OpenVPNのインストールフォルダの中のConfigフォルダに入れておく。
iOSで使いたい場合は、iTunesのAppというところからファイルを転送可能(参考リンク)。
これで基本的な準備は完了。

しかし通信を試みると失敗。
エラーメッセージは下記の通り。

TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)

これは要は60秒以内に接続が確立されませんでした、というエラー。
なので、パスのどこかにエラーがある。
IPアドレスは正しい数値を叩きにいっているのはログを見ればわかったし、アカウントとパスワードは自前なので間違いようがなかった。
結局、クライアント側にもサーバー側にも問題なかった。
問題があったのはルーターの設定。
PPTPのポートとOpenVPNのポートフォーワーディングに間違いがあった。
PPTPのパススルーがOFFに、OpenVPNでTDPになっていた。
そこでPPTPのパススルーをONにして、OpenVPNはTDPをUDPにすると、VPN接続成功。

実際に中国に出張に行ったので試してみたところ、どちらも上手く動いた。
ただしネットワークによってはVPN接続はできても、Gmailに繋げなかったりした。
それとPPTPしかうまく動かない、ということもあった。