Takuma Yoneda

AWS EC2インスタンスにMacOSから利用できるVPNを構築する

2022年9月30日追記:
こんなにトリッキーなことをしても割と遅いし面倒なので今はNordVPNを使っている。


これまで、日本のコンテンツにアクセスする際に筑波大のVPN Gateに大変お世話になってきましたが、安定して接続できるサーバを探すのに毎度結構な時間を溶かしていました。
有料のVPNサービスの利用を考えましたが、自分でVPNサーバ立てちゃえば良いじゃんということで、
Amazon AWSでVPNサーバを立ててみました。

EC2インスタンスは種類を選べば初年度無料で利用できます。
無料となる条件は

  • t2.micro or t3.microインスタンス
  • 750 時間/月 以下の使用

と記載されている(公式サイト)ので、1インスタンスであれば24時間起動しっぱなしでもこの範囲内で利用が可能です。
(因みに2年目以降は月々$0.0116 * 750 = $8.7 ということで、安めのvpnサービスには勝てなさそうです…。)

以下はMacOSを前提としていますが、WindowsでもUnix, Linuxでも手順はほぼ変わらないはずです。

EC2インスタンスを立てる

  1. OSはメジャーなものであれば何でも良い。自分はUbuntu 18.04にした。
  2. t2.microかt3.microのインスタンスを選択。"Free tier eligible"という表示が出ているのを確認。
  3. VPNで使用するポートを開放する。各行にUDPポート1701, 500, 4500を指定し、アクセスを許可するSourceはAnywhereにしておく。

Ports

EC2インスタンスにVPNをインストールする

GitHub上で公開されているsetup-ipsec-vpnをありがたく使わせて頂く

インスタンスにログインして、以下を実行。
$ wget https://git.io/vpnsetup -O vpn.sh && sudo sh vpn.sh && sudo ikev2.sh --auto

実行が終わると次の表示が出る。

================================================

IPsec VPN server is now ready for use!

Connect to your new VPN with these details:

Server IP: <span style="color:Tomato;">xxx.xxx.xxx.xxx</span>
IPsec PSK: <span style="color:Tomato;">xxxxxxxxxxxxxxxxxxx</span>
Username: <span style="color:Tomato;">vpnuser</span>
Password: <span style="color:Tomato;">xxxxxxxxxxxxxxxxxxxx</span>

Write these down. You'll need them to connect!

Important notes:   https://git.io/vpnnotes
Setup VPN clients: https://git.io/vpnclients
IKEv2 guide:       https://git.io/ikev2

================================================

IPSec/L2TP、若しくはCisco IPSecを利用する場合はこれにて完了。
赤色で示した情報を使ってVPNクライアントの設定をする(手順)。

推奨されているIKEv2を使う場合は続けてサーバ上で $ sudo ikev2.sh --autoを実行。

configファイルとそのパスワードが生成されるのでパスワードを手元に保存。

================================================

IKEv2 setup successful. Details for IKEv2 mode:

VPN server address: 18.183.213.58
VPN client name: vpnclient

Client configuration is available at:

/home/ubuntu/vpnclient.p12 (for Windows & Linux)
/home/ubuntu/vpnclient.sswan (for Android)
/home/ubuntu/vpnclient.mobileconfig (for iOS & macOS)

*IMPORTANT* Password for client config files:
<span style="color:Tomato;">[ここにパスワードが表示される]</span>
Write this down, you'll need it for import!

Next steps: Configure IKEv2 VPN clients. See:
https://git.io/ikev2clients

================================================
  1. 生成されたconfigファイル:~/vpnclient.mobileconfigをダウンロードしてダブルクリック
  2. System Preferences > Profiles からプロファイルをインストール(パスワードは先程保存したもの)
  3. ここまで出来ていれば、 System Preferences > Network に新しいVPN設定が追加されているはず

参考ページ