Android用のVPN

ついに個人用の最短手順を見つけたぞ。L2TP/PSKのVPNをレンタルサーバに立てて、フリーWiFiを使うときの足しにしようと思っていたんだが、L2TPサーバの設定ってけっこう面倒じゃん。

その手順がこれだ! dockerが使えているLinuxホストであることが前提です。CentOS7のホストでも問題ないみたいです。VMのVPSでもチョチョイと借りとけばサーバはどうにでもなる時代。

  • docker pull hwdsl2/ipsec-vpn-server
  • mkdir vpn
  • cd vpn
  • vi env
    • VPN_IPSEC_PSK=<your pre-shared key>
    • VPN_USER=<username>
    • VPN_PASSWORD=<password>
    • スペースやクォートに注意。余計なものが入ってるとダメです
  • sudo modprobe af_key
  • docker run –name ipsec-vpn-server –env-file ./env -p 500:500/udp -p 4500:4500/udp -v /lib/modules:/lib/modules:ro -d –privileged –restart=always hwdsl2/ipsec-vpn-server

以上です。なんて簡単な! 誰だか知らないけど、ありがとうhwdsl2(←気に入った人はdocker hubにログインしてをつけよう)。

あとは手持ちのAndroid機のVPN設定でクライアント側を設定していく。

  • 名前→適当につける
  • L2TP/IPSec PSK
  • サーバーアドレス→立てたサーバについてるグローバルIPアドレス
  • L2TPセキュリティ保護→(未使用)のまま
  • IPSec ID→(未使用)のまま
  • IPSec事前共有鍵→VPN_IPSEC_PSKの値
  • 詳細オプションを表示する→どっちでもいい
  • ユーザー名→VPN_USERの値
  • パスワード→VPN_PASSWORDの値
  • 常時接続VPN→どっちでもいい / つなぐ時にも選べる

Macからもつながりましたが、元のdefault routeが残るみたいな感じで、WebアクセスしてみてもソースアドレスがVPN先のIPアドレスにならないんだよなぁ…何かが間違ってるかもしれない。そのへんAndroidは問題ない。この環境固有の問題なのか、Macの問題なのか??

この暗号化セッションってどのくらいの強さなんでしょうね。あまり知識がないのでわからない。最近のTLSのPFSみたいに後で鍵がバレても大丈夫なんだろうか?

On/Offは、ホーム画面にウィジットを追加すると楽チンだと思います。

  • ホームで長押し
  • ウィジェット
  • 設定→設定のショートカット1×1を長押しドラッグ
  • VPN

あとは何かと軽くするためにprivoxyか、あるいはキャッシュでも立てるか、どうするか…

常時接続VPNはちょっと期待したけど、WiFiのOn/OffでWiFiとLTEが切り替わるとVPNも切れちゃいますね。

(追記) 2016-10-25

Macの問題は、VPNの設定で「すべてのトラフィックをVPN接続経由で送信」のチェックの問題だった。チェックをつければVPN経由で行くようになる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です