この記事でやること
AWSクライアントVPNを構築し、VPN経由でインターネットアクセスする。
要件
- VPC(ap-northeast-1)
- 192.168.0.0./16
- サブネット
- パブリックサブネット
- (192.168.2.0/24)
- パブリックサブネット
- 認証方式
- 相互認証
- VPNクライアントサービス
- AWS VPN Client
VPC、サブネットの作成
作成リージョン:東京リージョン
- サブネット(192.168.2.0/24)
- ルートテーブル
- public-subnet-1aに関連付け
証明書の発行・ACMへ登録
相互認証で使用する証明書の発行とACMへの登録をやっていきます。
今回は、OpenVPN easy-rsa を使用してサーバーとクライアントの証明書とキーを生成してから、そのサーバーの証明書とキーを ACM にアップロードします。
証明書の作成
$ git clone https://github.com/OpenVPN/easy-rsa.git
$ cd easy-rsa/easyrsa3
$ ./easyrsa init-pki
$ ./easyrsa build-ca nopass
$ cp -p vars.example vars
$ ./easyrsa init-pki
$ ./easyrsa build-ca nopass
$ ./easyrsa build-server-full server nopass
$ ./easyrsa build-client-full client1.domain.tld nopass
ACMのコンソールに移動し、作成した証明書のインポートを行います
証明書本文
$ cat /easy-rsa-master/easyrsa3/pki/issued/server.crt
プライベートキー
$ cat /easy-rsa-master/easyrsa3/pki/private/server.key
証明書チェーン
$ cat /easy-rsa-master/easyrsa3/pki/ca.crt
詳しくは以下参照
クライアントVPNエンドポイントを作成する
以下で作成します。
- IPアドレス範囲:172.0.0.0/20
- 認証方式:相互認証(先ほど作成した証明書を選択します)
- DNSサーバーの値を192.168.0.2に設定
- Amazon Provided DNS
他項目はデフォルト値。
VPNエンドポイントとVPCの関連付け
しばらくするとステータスが[Available]になります。
インターネットへのアクセスを許可する
ルートの追加
- [0.0.0.0/0]のルートを追加
承認ルールの追加
- [0.0.0.0/0]へのアクセスを許可
クライアント VPN エンドポイント設定ファイルをダウンロードする
AWSコンソール上の「クライアント設定をダウンロード」を押下して、VPN設定ファイルをローカルにダウンロードします。
ダウンロードしたVPN設定ファイルの末尾に以下内容を追加します。
<cert>
Contents of client certificate (.crt) file
</cert>
※easy-rsa/easyrsa3/pki/issued/client1.domain.tld.crtをコピペ
<key>
Contents of private key (.key) file
</key>
※easy-rsa/easyrsa3/pki/private/client1.domain.tld.keyをコピペ
AWS VPN Clientの設定
AWS VPN Clientをダウンロードします。
ダウンロードは以下かから。
インストール成功したら起動して、[File]、[Manage Profile]、[Add Profile]から先ほど作成したVPN設定ファイルを選択します。
Connectします。
成功しているようです。
VPN経由でインターネットアクセスができるか接続確認したいと思います。
確かにVPN経由でインターネットアクセスできていることが確認できました。
参考文献
今回はここまで。ありがとうございました!!