目的
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パブリックサブネット
セキュリティグループ :
ポート | メモ |
---|---|
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にはどこから入れるの?
→ ローカルのみにしておくので 👉 2
(どちらにしても、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
先程作った管理者ID/パスワードでログイン。
ドメイン名の設定
IPが変わってしまうと、クライアント設定も修正しないといけないので、ドメイン名を設定するのです。
Configration -> Network Settings -> Hostname or IPAddress : hoge.hoge.com
管理ページへのログインを限定する
誰でも管理者ログインページは、ポート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 : ユーザを作る
Update Running Serverしてからパスワード設定でUpdate
クライアントから繋いでみる
iPhoneで接続してみます。
1.Safariで上記で作ったOpenVPNサイトを開きます
2.ログイン後メニューがでます。
OpenVPN Connect for ●● は、OpenVPNクライアントアプリケーションのリンクです
アプリを入れていない場合は、ここからAppStoreを開いてダウンロードしておきます
アプリがインストールされている場合は、最下部のYourself から接続ファイルをダウンロードします。
3.接続ファイルのダウンロード
OpenVPNで開く リンクをクリックします→OpenVPNアプリが起動し、接続ファイルが設定されます。
ここで、緑➕アイコンを押すことで、iOSのプロファイル等が登録されます
4.登録完了
以後は、パスワードを入れて最下部のスイッチをONにするとVPN接続が開始されます