[AWS]Client VPNを使って会社専用のVPN回線を作ったけど若干はまった話
![[AWS]Client VPNを使って会社専用のVPN回線を作ったけど若干はまった話の画像](https://images.microcms-assets.io/assets/bb908d3d6fd54ca6ad0290374a43421d/9714990492804372a8b5c8ed8117f373/blog-KEDWBkpoz7tTt4ibFfsG-c0bbbede.webp)
こんにちは、天野です。
本日はClient VPNを使って会社専用のVPNを構築した話などを書きたいと思います。
そういえば弊社営業日は昨日(2019/12/26)までだったのですが、私は役員なので業務時間的な概念がほぼ無く、常時仕事しています。
ともあれ、今年もありがとうございました。来年もぜひECNをよろしくお願い致します。
さて、大昔ですが、2019/06頃、AWS Client VPNに東京リージョンとムンバイリージョンがリリースされました。
Client VPNは自分のVPC上にVPN Endpointを作ることで、オンプレミス等のクローズドにしたいサーバとAWS間で専用線を構築できるサービスです。
認証にADを使えたり、OpenVPNなクライアントソフトが使えるため安全かつ簡単にVPN接続ができ便利。
クライアントソフトは、弊社はMacOSが標準なのでTunnelblickを使っています。
...で、実は他のVPNサービスを契約しているため全然使う予定はなかったのですが、特定のIPからしか接続できないサービスの保守をしようとしたところある日突然接続できなくなりまして。。
接続のできなさ具合から真っ先にIPアドレスフィルタを疑ったところ、なんと会社の出のIPが変わっていました。
あれだけ回線を契約する時に「グローバルIPで、かつ固定ですよね?」と確認したのに、なんと固定でもなければグローバルでもなかったという悲しみ…逆に今までよく変わらなかったなあと。
とはいうものの、回線を契約し直すのもかなり心が折れそうな作業なので、AWS Client VPNを経由したインターネット接続を構築しようと決めました。(他のVPNサービスはその度にIPアドレスが変わる)
VPCは持っていましたが、今回はVPN用に新しく作成しました。
手順としては以下の通りです。
0.easy-rsaでサーバ証明書とクライアント証明書を作成する(ACMにコマンドライン経由で登録)
1.VPCを作成(CIDRは適当に10.0.0.0/16とかにする)
2.サブネットを2つ作成(CIDRはそれぞれ10.0.1.0/16(subAとする)と10.0.2.0/16(subBとする)とかにする)
3.インターネットゲートウェイを作成する(VPCからインターネットに接続する際必須)
4.NATゲートウェイを作成(その際、サブネットはsubAを指定)
※ここで指定したIPアドレスがグローバルIPとなります
5.ルートテーブルで以下の2つを作成
a.3で作成したインターネットゲートウェイ(igw-xxx、送信先は0.0.0.0/0)とsubAを関連付け
b.4で作成したNATゲートウェイ(nat-xxx、送信先は0.0.0.0/0)とsubBを関連付け
6.クライアントVPNエンドポイントを作成。認証は相互認証とし、クライアント証明書ARNに0で作成した証明書ARNを指定
7.クライアントVPNエンドポイントとsubBを関連付ける。
8.クライアントVPNエンドポイントのルートテーブルに0.0.0.0/0 subBを指定
長々書いてしまったのですが、これでもかなり端折ってる気がします。
ともあれこれで「VPN接続するとAWSのVPCネットワークを通り、グローバルIP(ElasticIP)が割り振られる自分専用VPNネットワーク」の作成が完了しました。
まだあります。
次に、0で作成した証明書をダウンロードします。
configファイルがダウンロードされますが、その最後に以下を追加します。
cert 自分でつけた名前.crt
key 自分でつけた名前.key
これでOpenVPNのソフトにconfigをつっこめば接続ができるかと思います。
と思ってたのですが、1個ハマりました。
VPN接続もでき、普通にGoogleのインターネット検索もできたのでCMANでアドレスを確認しようとしたところ、サーバに接続できず…
まさかと思い「いらすとや」を見たところやはり正常に表示されました。実はGoogle検索や「いらすとや」はIPv4/IPv6の接続に対応しており、これだなあと。。
今回のVPNはIPv4 CIDRしか設定していないため、基本的にIPv4となるはずです。
しかしなぜか弊社ルータにIPパススルーが設定されており、強制的にIPv6で接続されるようになっていました。そのため、出のIPがVPNで設定したエンドポイントのIPアドレスではなくIPv6が優先され、ほとんどのサイトが見られないという状況に陥っていました。
というわけでIPパススルーの設定を解除したところ、無事VPC経由でインターネットアクセスができるようになりました。
いやー謎設定は絶対に残しちゃいけませんね…
それでは今回はこの辺で失礼します。
良いお年を。




