AWS
EC2
OpenVPN

【無料】EC2にOpenVPNサーバを立てる【GUI設定】


目的

VPCパブリックサブネット内にVPNサーバを立てて、プライベートサブネット内インスタンスにアクセスする


  • VPN設定をブラウザでメンテナンスできる

  • できるだけ安く(最初は無料で)

  • 手っ取り早く

  • 法人利用

できるようにする

AWS MarketPlace で、BYOL(ライセンス持ち込み)になっているものを探す→2つあった(自分調べ)

製品名
ライセンス形態
メモ

Sophos UTM
30日間無料
個人利用ならこちらをオヌヌメ

OpenVPN Access Server
2接続まで無料
GUI無しならオープンソース

いずれもクライアントからは、OpenVPNClientで接続可能。大抵のOSで使える(スマホも含め)

SophosUTMは非常に多機能なので、個人利用なら超オヌヌメであるが

今回は、OpenVPN Access Serverを使ってみる。

VPNサーバを立てて、とりあえずユーザがアクセスできれば良い。とする。


作る

公式マニュアル

☝️ちょっと古い。。。


EC2インスタンス作成

AWS MarketPlaceでBYOL版を購入。と言ってもサービス利用料は無料

利用するAMIは、AMIのパブリックイメージで下記の文字列で検索

OpenVPN Access Server 2.5.0-fe8020db-5343-4c43-9e65-5ed4a825c931-ami-548e4429.4

で検索して出てきたAMIを選択する(2017/7/31現在)

リージョン
AMI ID

ap-northeast-1 (東京)
ami-bf5203d9

ap-us-west-2(オレゴン)
ami-ffd74b87

インスタンスタイプ : t2.micro

置き場 : VPCパブリックサブネット

セキュリティグループ :

sg.png

ポート
メモ

SSH(22)
絞っておく

943
絞っておく

HTTPS(443)
どこからもOK

検証用として、プライベートネットワークのみでアクセスできるEC2インスタンスを準備しておく

上記AMIを使って、EC2インスタンスを起動する。


OpenVPN初期設定

EC2インスタンスが起動したら、SSHで接続する。

ユーザIDは openvpnas

接続するとOpenVPNのセットアップウィザードが流れる。(コンソール入力待ちの場合、下記コマンドで実行する)

sudo ovpn-init --ec2

いろいろ聞かれるので、下記を参考に答える

Detected an existing OpenVPN-AS configuration.

Continuing will delete this configuration and restart from scratch.
Please enter 'DELETE' to delete existing configuration: ''DELETE''
(略)

Please enter 'yes' to indicate your agreement [no]: 

利用規約に同意? 👉 yes

Will this be the primary Access Server node?

(enter 'no' to configure as a backup or standby node)
> Press ENTER for default [yes]:

これがプライマリアクセスサーバーノードになりますか?

単一サーバとして稼働するので👉 yes

Please specify the network interface and IP address to be

used by the Admin Web UI:
(1) all interfaces: 0.0.0.0
(2) eth0: 172.16.0.6
Please enter the option number from the list above (1-2).
> Press Enter for default [2]: 2

Admin Web UIにはどこから入れるの?

→ ローカルのみにしておくので 👉

(どちらにしても、EC2インスタンス側ではプライベートIPに変換されアクセスされる感じなので意味ないかも)

Please specify the port number for the Admin Web UI.

> Press ENTER for default [943]:

Admin Web UIのポートは? 👉 デフォルトの943でOK

Please specify the TCP port number for the OpenVPN Daemon

> Press ENTER for default [443]:

クライアントがVPNサーバーに接続するために使用するポートは? 👉 デフォルト443

Should client traffic be routed by default through the VPN?

> Press ENTER for default [no]:
Should client DNS traffic be routed by default through the VPN?
> Press ENTER for default [no]:

すべての通信をVPN経由にするならyes。最小限だけでよいならno 👉 とりあえずnoにする

DNSをVPN経由にするならyes👉 とりあえずnoにする

Use local authentication via internal DB?

> Press ENTER for default [yes]:

内部DB経由のローカル認証を使用しますか? 👉 DBサーバを別立てしないので yes

Should private subnets be accessible to clients by default?

> Press ENTER for EC2 default [yes]:

デフォルトでプライベートサブネットにクライアントからアクセスできるようにする必要がありますか? 👉 とりあえずYES

Do you wish to login to the Admin UI as "openvpn"?

> Press ENTER for default [yes]: no

Admin WEB UIの管理者名は "openvpn"でよいか? 👉 no

> Specify the username for an existing user or for the new user account:

管理アカウント名を入れろ 👉 hogeadmin 適当なアカウント名を入れる

パスワードを作成する

> Please specify your OpenVPN-AS license key (or leave blank to specify later):

ライセンスキーを持っているんなら入れろ 👉 持っていないのでEnter


DNS設定

Route53か、お使いのDNSサーバで、設定したドメイン(例 hoge.hoge.com)の名前解決設定しておく。


Admin Web UIで設定

https:// サーバIP /admin

スクリーンショット 2018-07-16 15.25.20.png

先程作った管理者ID/パスワードでログイン。


ドメイン名の設定

IPが変わってしまうと、クライアント設定も修正しないといけないので、ドメイン名を設定するのです。

Configration -> Network Settings -> Hostname or IPAddress : hoge.hoge.com

スクリーンショット 2018-07-16 15.28.41.png


管理ページへのログインを限定する

誰でも管理者ログインページは、ポート943のみで表示できることとする。

Configuration-> Network Settings

VPN Server > Admin Web Server OFFにする

ページ最下部の"Save Settings"を押下する

(ポート443でログインしていと、即切断されるので https://ドメイン名:943/admin で再度ログインする)


SSL証明書の設定

(べつに無くても問題ないが)

Let's Encriptで作った証明書を設定する

こちらを参考に。。

Configration -> Web Server に各ファイルをアップロードする

ファイル名はそれぞれ

CA Bandle
Certificate
Private Key

fullchain1.pem
cert1.pem
privkey1.pem


ユーザの作成

User Management -> User Permissions : ユーザを作る

スクリーンショット 2018-07-16 15.33.02.png

Update Running Serverしてからパスワード設定でUpdate

スクリーンショット 2018-07-16 15.32.00.png


クライアントから繋いでみる

iPhoneで接続してみます。

1.Safariで上記で作ったOpenVPNサイトを開きます

1.login.jpeg

2.ログイン後メニューがでます。

2..jpeg

OpenVPN Connect for ●● は、OpenVPNクライアントアプリケーションのリンクです

アプリを入れていない場合は、ここからAppStoreを開いてダウンロードしておきます

アプリがインストールされている場合は、最下部のYourself から接続ファイルをダウンロードします。

3.接続ファイルのダウンロード

4..jpeg

OpenVPNで開く リンクをクリックします→OpenVPNアプリが起動し、接続ファイルが設定されます。

6..jpeg

ここで、緑➕アイコンを押すことで、iOSのプロファイル等が登録されます

7..jpeg

4.登録完了

8..jpeg

以後は、パスワードを入れて最下部のスイッチをONにするとVPN接続が開始されます