ブラウザのみでVPNサーバーをたてる

1週間くらい海外旅行にいってた。
オーストラリアにいってたのですが、向こうは12月が夏なので半袖ですごせて最高〜って感じでした!!
PCとかはもってかなくて電子機器類はSIMフリーiPhoneiPadだけ。

そんな旅行中に日本国内からアクセスしたいサービスがでてきた。
日本国内のVPNサーバーに対してiPhoneiPadからVPN接続すればやりたいことは実現できるんだけど、VPNサーバーをどう調達するかが課題になってくる。

VPNサーバーどんな選択肢があるか

野良で落ちているのは使わないとして後は有料版の30日お試しみたいなのを使うことも考えた。

www.expressvpn.com

ちゃんとしたところなのかとかを調べたりするのも面倒だったから自分でさっと作ってしまった。

用意するもの

  • ブラウザ(今回はChromeの71.0.3578.77を使用しました)
  • AWSのアカウント

どうやって作るのか

今回は AWS の lightsail を使いました。
lightsailはAWSが提供するVPSのようです。

Lightsail

今回は512MBのメモリに1コアプロセッサ、20GのSSDで1TBのデータ転送がついて 月額$3.50 を使用しました。

構築手順

まずlightsailにアクセスしてインスタンスを起動していきます。
https://lightsail.aws.amazon.com/ls/webapp/create/instance?region=ap-northeast-1

リージョンで東京を選択することがポイントです。
インスタンイメージは今回はUbuntu 18.04 LTSを選択しました。

f:id:hatappi1225:20181219153049p:plain

起動スクリプトSSHキーペアなどの設定は特にせず料金プランを月額$3.50で選択してインスタンスを作成します。

無事起動すると次の画像のようにSSHを使用して接続するボタンが押せるようになるので押すと別タブで開いてコンソールに接続ができます。
f:id:hatappi1225:20181219151019p:plain

VPNサーバーにはhwdsi2/setup-ipsec-vpnを使用します。

github.com

$ wget https://git.io/vpnsetup -O vpnsetup.sh
$ sudo \
  VPN_IPSEC_PSK='hoge'  \ 
  VPN_USER='hatappi' \
  VPN_PASSWORD='fuga' \
  sh vpnsetup.sh

VPN_IPSEC_PSKがIPsecを選択した際に入力するシークレット、VPN_USERがアカウント, VPN_PASSWORDがパスワードになる。
今回はサンプル値なので任意の値に変更する。

セットアップのスクリプトが流れ終わったら最後にportを解放します。
再びlightsailの画面から該当インスタンスを選択してネットワークタブを選択します。
ファイアウォールの設定欄があるので次の二つを追加します。

f:id:hatappi1225:20181219154002p:plain

iPhone, iPadでの設定

VPNサーバーはできたので、後は設定するだけです。

設定を起動して 一般 > VPNを選択します。
VPN構成を追加でタイプでIPsecを選択したら後はさきほど環境変数で指定した各値を設定するば完了。

最後に

無事VPNサーバーをたてて、iPhoneから設定することができました!!