LoginSignup
0
1

【AWS】OpenVPNサーバーをPrivate Subnetに配置し、NATとALBとNLBで全体構成を試みました

Last updated at Posted at 2023-06-06

前書

OpenVPNサーバーをPublic Subnet配置し、そして直接Public IPを経由することで、接続するのが一般的なやり方だと考えられます。
ただし、本番環境では、Public IPを安易に公開することは、みなさんは控えたいですよね。
そこで、OpenVPNサーバーをPrivate Subentに配置し、つまりPublic IPを持たせず、ALBを前に置いておき、そしてNLB経由で実際クライアント側と接続することを考えました。

構成図

簡単に構成図を書きました。

  1. user -> ALB のアクセスは、HTTPS通信です。ただし、/admin/パスに対してはIP制御をかけています。
  2. NLB -> User のアクセスは、UDP1194とTCP443を経由しています。
  3. ACMとRoute53を用いて、ALBとNLBにSSL証明書の発行とドメインの関連付けをします。

vpn.png

1.OpenVPNサーバーの構築

詳細OpenVPNの構築手順はここで省きますが、以下公式ドキュメントをご覧ください。

ちなみに私はAmazonLinux2を使って構築していました。
なお、EC2用のセキュリティグループは以下のように設定します。
截屏2023-06-06 12.14.54.png

2.ACMでSSL証明書をリクエスト(Route53にドメインがあることが前提)

今回ALBで利用するSSL証明書をvpn-alb-01.xxxxxxxにして、作成しました。
截屏2023-06-04 0.38.19.png

NLB用のSSL証明書をvpn-nlb-01.xxxxxxxにして、リクエストする
截屏2023-06-04 0.46.04.png

証明書をリクエスト成功したら、それぞれRoute53にレコードの追加を忘れずに行うこと。
截屏2023-06-06 10.22.05.png

3. ALBを作成する

まずALB用のセキュリティグループを作成する
HTTPS 443 を開放する
截屏2023-06-06 10.28.00.png

ALBのバックエンドとしてOpenVPNサーバーがALBのターゲットとなるため、ターゲットグループを作成し、OpenVPNサーバーをターゲットに入れてください。
なお、Health CheckはHTTPSの443ポートです。
截屏2023-06-04 0.49.28.png

インターネット向けのALBを作成します。
截屏2023-06-06 11.22.39.png

リスナーをHTTPSにし、上記作成したtarget groupを選択します。
截屏2023-06-06 11.30.59.png

ACMからALB用のSSL証明書を選択の上、作成します。
截屏2023-06-06 11.32.39.png

4.ALB用のドメインレコードをRoute53で作成

ALBが作成されたら、DNS名をRoute53のドメインにCNAMEとして追加すること
截屏2023-06-04 0.48.16.png

5.NLBを作成する

NLB用のターゲットグループを2つ作成します。

  • TCP 443ポートのTarget Group
  • UDP 1194ポートのTarget Group。なおここのヘルスチェックポートを22番ポートに変更すること
    截屏2023-06-06 11.43.36.png

インターネット向けのNLBを作成します。
截屏2023-06-06 11.39.36.png

上記2ターゲットグループを選択します。
截屏2023-06-06 11.45.57.png

6.ALB用のドメインレコードをRoute53で作成

NLBが作成されたら、DNS名をRoute53のドメインにCNAMEとして追加すること
截屏2023-06-06 11.47.43.png

7.ALBの/admin/パスに対するIP制御

パス/admin/へのアクセスは、特定のIPしかできないように絞ること。
なぜそうするかというと、パス/admin/には、OpenVPNの管理画面であり、それをIP絞ってのアクセスとする。
設定方法はリスナーに以下のルールを設定すれば良いです。
截屏2023-06-06 11.55.21.png

8.OpenVPNサーバーの設定

ALBのドメインに対する接続します。
截屏2023-06-06 12.02.17.png

ログインできたら、「Go to Admin Panel」を押下します。
截屏2023-06-06 12.03.59.png

管理画面が入れたら、「CONFIGURATION」->「NETWORK SETTINGS」->「Hostname or IP Address」に、NLBのドメインURLを入れ替えてください
截屏2023-06-06 12.06.26.png

なお、テストとして、あらかじめALBのリスナールールの/admin/パスに定義していないIPからアクセスすると、403エラーが確認できました。
IMG_52AB40B15F47-1.jpeg

9.VPN接続確認

「OpenVPN Connect」ツールから、ALBのドメインURLを入れてください
截屏2023-06-06 12.07.55.png

ログインIDとPWを入力の上、無事に接続できました。
截屏2023-06-06 12.10.07.png

本記事はどなたの参考になれば嬉しいです。

参考

以下の記事を参考しました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1