zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

AWS Client VPN使ってみた

筆者の理解の度合い

PC→AWS VPCへの接続をVPNできるもの
料金(https://aws.amazon.com/jp/vpn/pricing/)日本で$115/月~になるっぽい。安くはない

作業メモ

■作業環境:macOS
VPN接続ソフト:Tunnelblick

ステップ 1: サーバーおよびクライアント証明書とキーの生成
# easy-rsaで証明書作成していく
git clone https://github.com/OpenVPN/easy-rsa.git
cd easy-rsa/easyrsa3
./easyrsa init-pki

# 認証機関 (CA) を構築
./easyrsa build-ca nopass
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:zuntan02

# サーバ証明書とクライアント証明書を作成
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1.domain.tld nopass

# openVPN設定ファイル用dkimディレクトリを作成して諸々配置
mkdir ~/Desktop/zuntan02.dkim/
cp pki/ca.crt ~/Desktop/zuntan02.dkim/
cp pki/issued/server.crt ~/Desktop/zuntan02.dkim/
cp pki/private/server.key ~/Desktop/zuntan02.dkim/
cp pki/issued/client1.domain.tld.crt ~/Desktop/zuntan02.dkim/
cp pki/private/client1.domain.tld.key ~/Desktop/zuntan02.dkim/

# キーをACMに登録する
サーバー証明書AWS Certificate Manager (ACM) でプロビジョニングする必要がある
[CertificateManager]-[プライベートCA]-[証明書のインポート]
サーバー証明書

  • 証明書本文:server.crt
  • 証明書のプライベートキー:server.key
  • 証明書チェーン:ca.crt

の中身を貼り付ける

クライアント証明書

  • 証明書本文:client1.domain.tld.crt
  • 証明書のプライベートキー:client1.domain.tld.key
  • 証明書チェーン:ca.crt

の中身を貼り付ける

ステップ 2: クライアント VPN エンドポイントを作成する

[VPC]-[クライアント VPN エンドポイント]-[クライアント VPN エンドポイントの作成]
[名前]:てきとう
[Client IPv4 CIDR (クライアント IPv4 CIDR)]192.168.0.0/16(例)
[Server certificate ARN (サーバー証明書 ARN)]
→上記でACMに登録したサーバー証明書を指定
さらに[Use mutual authentication (相互認証の使用)] を選択、
[クライアント証明書 ARN]
→上記でACMに登録したクライアント証明書を指定

あとは初期値のままで[クライアント VPN エンドポイントの作成]

ステップ 3: クライアントの VPN 接続を有効にする

[VPC]-[クライアント VPN エンドポイント]-VPN エンドポイントを選択
[関連付け]-[関連付ける]-[VPC]
接続するVPC を選択

ステップ 4: クライアントのネットワークへのアクセスを承認する

[VPC]-[クライアント VPN エンドポイント]
承認ルールを追加する クライアント VPN エンドポイントを選択し、
[Authorization (承認)]-[Authorize ingress (受信を承認する)]
[Destination network (送信先ネットワーク)]
例)172.31.0.0/16
[For grant access to (アクセス許可の付与)] で [Allow access to all users (すべてのユーザーにアクセスを許可する)]

ステップ 5: (オプション) 追加のネットワークへのアクセスを有効にする

省略

ステップ 6: クライアント VPN エンドポイントの設定ファイルをダウンロードする

[VPC]-[クライアント VPN エンドポイント]-[Download Client Configuration (クライアント設定のダウンロード)]
→ovpnファイルが得られるので先ほど作成したdkimディレクトリの中に配置

# ovpnファイルの編集
~/Desktop/zuntan02.dkim/client-config.ovpn

# 以下を追記

cert client1.domain.tld.crt
key client1.domain.tld.key

pull-filter ignore redirect-gateway
route 172.31.0.0 255.255.0.0   #接続先VPCのCIDR

(参考)https://dev.classmethod.jp/cloud/aws/aws-client-vpn-other-network/

dkimフォルダをダブルクリックすることでtunnelblickに追加されるので接続してみる
→OK!

追加

さいしゅうてきにはNATGWをつけてすべての送出をClientVPN経由で出ていくというのもあり。
料金とかどうなるかな・・・
[AWS Client VPN] VPC を経由して固定のIPでインターネットへアクセスする | Developers.IO