ablog

不器用で落着きのない技術者のメモ

Client VPN 接続する

AWS Client VPNmacOS からプライベートサブネットに VPN 接続してみた。

macOS で相互認証用のキーを作成

git clone https://github.com/OpenVPN/easy-rsa.git
cd easy-rsa/easyrsa3
./easyrsa init-pki
./easyrsa build-ca nopass
Common Name (eg: your user, host, or server name) [Easy-RSA CA]: yoheia.com
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1.domain.tld nopass
mkdir yoheia-key/
cp pki/ca.crt yoheia-key/
cp pki/issued/server.crt yoheia-key/
cp pki/private/server.key yoheia-key/
cp pki/issued/client1.domain.tld.crt yoheia-key/
cp pki/private/client1.domain.tld.key yoheia-key/

キーを ACM に登録する

AWSマネコンで AWS Certificate Manager に移動し、[証明書のプロビジョニング]-[証明書のインポート]をクリックし、サーバー証明書とクライアント証明書を登録する。
f:id:yohei-a:20200322032034p:plain

サーバー証明書
  • 証明書本文:server.crt
Certificate:
(中略)
-----END CERTIFICATE-----
  • 証明書のプライベートキ ー:server.key
-----BEGIN PRIVATE KEY-----
(中略)
-----END PRIVATE KEY-----
  • 証明書チェーン:ca.crt
-----BEGIN CERTIFICATE-----
(中略)
-----END CERTIFICATE----
クライアント証明書
---証明書本文:client1.domain.tld.crt
Certificate:
(中略)
-----END CERTIFICATE-----
  • 証明書のプライベートキ:client1.domain.tld.key
-----BEGIN PRIVATE KEY-----
(中略)
-----END PRIVATE KEY-----
  • 証明書チェーン:ca.crt
-----BEGIN CERTIFICATE-----
(中略)
-----END CERTIFICATE----

f:id:yohei-a:20200322032412p:plain

Client VPNエンドポイント作成

  • AWSマネコンで [VPC] - [クライアント VPN エンドポイント] で [クライアント VPN エンドポイントの作成] をクリックして、必要項目を入力(書いていない項目はデフォルトのまま)
    • 名前タグ: yoheia-vpn ★任意の名前
    • クライアント IPv4 CIDR*: 192.168.0.0/24★クライアント側のCIDRを指定
    • サーバー証明書 ARN*: arn:aws:acm:ap-northeast-1:123456789012:certificate/e8...
    • 相互認証の使用: チェック
    • クライアント証明書 ARN*: arn:aws:acm:ap-northeast-1:123456789012:certificate/0b...
    • クライアント接続の詳細を記録しますか?: いいえ
    • DNS サーバーを有効にする: チェック
    • DNS サーバー 1 IP アドレス*: 172.17.4.2
    • VPC ID: vpc-b6****** ★VPN 接続先の VPC ID
    • セキュリティグループ ID: sg-015**************
    • VPN ポート:443

ターゲットネットワークへのクライアント VPN の関連付けの作成

  • AWSマネコンで [VPC] - [クライアント VPN エンドポイント] で作成したVPNエンドポイントを選択し、[関連付け]タブ - [関連付け] をクリック、VPCとサブネットを指定する。

f:id:yohei-a:20200322034831p:plain

ターゲットネットワークへのクライアント VPN で受信を承認

  • AWSマネコンで [VPC] - [クライアント VPN エンドポイント] で作成したVPNエンドポイントを選択し、[認証]タブ - [受信の承認] をクリック、VPCとサブネットを指定する。
    • アクセスを有効にする送信先ネットワーク*: 172.17.4.0/24 ★サブネットのCIDRを許可
    • アクセスを付与する対象: すべてのユーザーにアクセスを許可する

f:id:yohei-a:20200322035250p:plain

VPNクライアント設定

  • AWS Client VPN Download | Amazon Web Services から AWS Client VPN for macOS をダウンロード。
  • AWSマネコンで [VPC] - [クライアント VPN エンドポイント] から [クライアント設定のダウンロード] をクリックしてダウンロードする。
  • ダウンロードしたファイル "downloaded-client-config.ovpn" を開いて行末に以下を追記する。
cert /Users/yoheia/vpn-key/client1.domain.tld.crt
key /Users/yoheia/vpn-key/client1.domain.tld.key
  • AWS VPN Client を起動する。
  • [File]-[Manage Profiles] を選択、Add Profile をクリック。
    • Display Name: AWS-VPN ★任意の名前
    • VPN Configuration file: 先程編集した "downloaded-client-config.ovpn" を選択

接続する