FJcloud実践
FJcloud-Vの拠点間VPNゲートウェイ(IPsec-VTI)とAWS Client VPNでマルチクラウド構成を実現する方法
こんにちは、FJcloud-V(旧ニフクラ)技術支援チームです。
今回はAWS Client VPNを利用しているAmazon Web Services(以後AWS)環境とFJcloud-V(旧ニフクラ)環境を、FJcloud-V(旧ニフクラ)の拠点間VPNゲートウェイを使って接続するサイト間VPN(Site-To-Site)の構成を組んでみましたのでご紹介します。
本構成は、クライアント端末からAWSのクライアントVPNエンドポイント・Amazon Virtual Private Cloud・IPSec VTIを経由し、FJcloud-V(旧ニフクラ)のネットワーク に接続可能な構成となります。
目次
構成イメージ
構成イメージ
FJcloud-V(旧ニフクラ)の拠点間VPNゲートウェイでIPSec VTIを利用することで、拠点間VPNゲートウェイの接続しているプライベートLANとは異なるプライベートLANにも接続が可能になります。VTI接続に関して以下のブログも参考にしてみてください。 VPNゲートウェイのIPsec VTI機能でVPN接続する方法
前提条件
本ブログ記事は、以下の前提知識がある方を想定しています。
- AWSの基本的な操作、サービスに関する知識
- FJcloud-V(旧ニフクラ)の基本的な操作と知識
- ルーティングに関する知識
利用リソース
検証に利用したリソースは以下の通りです。
AWSリソース(表中のリンクは他社サイトへのリンクです。)
リソース | 数量 | 備考 |
---|---|---|
Amazon Virtual Private Cloud | 1 | |
サブネット | 1 | |
ルートテーブル | 1 | |
AWS Certificate Manager(証明書) | 2 | サーバー証明書、クライアント証明書 |
カスタマーゲートウェイ | 1 | |
仮想プライベートゲートウェイ | 1 | |
サイト間のVPN接続 | 1 | |
クライアントVPNエンドポイント | 1 | |
セキュリティグループ | 1 | クライアントVPNエンドポイントに適用する |
FJcloud-V(旧ニフクラ)リソース
リソース | 数量 | 備考 |
---|---|---|
ファイアウォール | 2 | 拠点間VPNゲートウェイ用、サーバー用 |
プライベートLAN | 2 | |
ルーター | 1 | |
ルートテーブル | 2 | 拠点間VPNゲートウェイ用、ルーター用 |
拠点間VPNゲートウェイ | 1 | |
サーバー | 1 | |
カスタマーゲートウェイ | 1 | |
VPCコネクション | 1 |
事前準備
AWS環境準備
ここでは赤枠の範囲のリソースを作成します。
AWS環境準備範囲
(1) Amazon Virtual Private Cloud作成
AWS内に分離されたネットワーク領域を作成するためにAmazon Virtual Private Cloudを作成します。
作成方法は以下ヘルプサイトを参照ください。
VPC を作成する(他社サイトへのリンクです)
項目名 | 値 |
---|---|
名前タグ | vpc01-vpc |
IPv4 CIDR ブロック | 192.168.0.0/16 |
(2) サブネット作成
VPC内にCIDRブロックで分割したネットワークを構築するためにサブネットを作成します。
作成方法は以下ヘルプサイトを参照ください。
VPC でサブネットを作成する(他社サイトへのリンクです)
項目名 | 値 |
---|---|
VPC ID | vpc01-vpc |
サブネット名 | vpc01-subnet |
IPv4 CIDR ブロック | 192.168.10.0/24 |
FJcloud-V(旧ニフクラ)環境準備
ここでは赤枠の範囲のリソースを作成します。
FJcloud-V(旧ニフクラ)環境準備
(3) プライベートLAN作成
拠点間VPNゲートウェイが接続されるプライベートLANと、ルーターを経由して接続する別セグメントのプライベートLANを作成します。
作成方法は以下ヘルプサイトを参照ください。
プライベートLAN名 | CIDR |
---|---|
VPNLAN01 | 172.16.1.0/24 |
VPNLAN02 | 172.16.2.0/24 |
(4) ファイアウォール作成
拠点間VPNゲートウェイ(FWVPN01)用と、アクセスサーバー(FWVPN02)用の2つのファイアウォールを作成します。
また、今回はAWS側クライアントVPNエンドポイントからTera Termでの通信となるため通信が可能になるように設定します。
※アクセス先サーバー用ファイアウォールには、クライアント端末がSSH接続できるよう設定します。接続元IPには、後続の手順で作成するクライアントVPNエンドポイントで使用するIP帯を指定します。
※拠点間VPNゲートウェイ用ファイアウォールは、IPSec VTI接続に必要となるIPとポートを開放します。
作成方法は以下ヘルプサイトを参照ください。
項目名 | 値 |
---|---|
ファイアウォール名 | FWVPN01 |
INルール | UDP500:192.168.0.0/16 , UDP4500:192.168.0.0/16 |
項目名 | 値 |
---|---|
ファイアウォール名 | FWVPN02 |
INルール | TCP22:192.168.0.0/16 |
(5) ルーター作成
VPNLAN01とVPNLAN02を繋ぐために以下の設定を行います。
作成方法は以下ヘルプサイトを参照ください。
接続先ネットワーク名 | IPアドレス |
---|---|
VPNLAN01 | 172.16.1.10 |
VPNLAN02 | 172.16.2.10 |
(6) ルートテーブル作成
FJcloud-V(旧ニフクラ)のプライベートLAN同士のルーティングとAWSに向けたルーティングを設定します。
作成後、(5)で作成したルーターをルートテーブルと紐づけます。
作成方法は以下ヘルプサイトを参照ください。
デスティネーション | ターゲット |
---|---|
172.16.1.1 | VPNLAN01 |
172.16.2.1 | VPNLAN02 |
192.168.0.0/16 | 172.16.1.2 |
(7) サーバー作成
クライアントが接続するサーバーをプライベートLAN(VPNLAN02)上に作成します。
作成方法は以下ヘルプサイトを参照ください。
項目名 | 値 |
---|---|
OSタイプ | RHEL8.3 |
項目名 | 値 |
---|---|
サーバー名 | ClientVPNTEST01 |
ファイアウォール | FWVPN02 |
グローバル | 自動割り当て |
プライベート | VPNLAN02 |
作成後にサーバーOSでスタティックルートを設定します。
項目名 | 値 |
---|---|
デスティネーション | 192.168.10.0 |
ネットマスク | 255.255.255.0 |
ゲートウェイ | 172.16.2.10 |
VPN環境構築
AWS Client VPN構築
ここでは赤枠の範囲のリソースを作成します。
AWS Client VPN構築範囲
(1) AWS Certificate Manager(証明書)インポート
AWS Certificate Managerや自己署名証明でサーバー証明書とクライアント証明書を発行後、それぞれをAWS Certificate Managerにインポートします。
作成方法は以下ヘルプサイトを参照ください。
プライベート CA の作成(他社サイトへのリンクです)
インポート方法は以下ヘルプサイトを参照ください。
証明書のインポート(他社サイトへのリンクです)
(2) セキュリティグループ作成
クライアントVPNエンドポイント用に作成します。
接続先のセグメントのみに通信が出来るように、OUTルールを設定します。
作成方法は以下ヘルプサイトを参照ください。
セキュリティグループを作成する(他社サイトへのリンクです)
項目名 | 値 |
---|---|
セキュリティグループ名 | vpn01-sg |
OUTルール | SSH:172.16.2.0/24 |
(3) クライアントVPNエンドポイント作成
AWS Client VPNの接続先となるリソースを作成します。
作成方法は以下ヘルプサイトを参照ください。
クライアント VPN エンドポイントを作成する(他社サイトへのリンクです)
項目名 | 値 |
---|---|
名前タグ | vpn01-client |
クライアント IPv4 CIDR | 192.168.40.0/22 |
サーバー証明書 ARN | 任意の証明書 |
認証オプション | 相互認証の使用 |
クライアント証明書 ARN | 任意の証明書 |
クライアント接続の詳細を記録しますか? | いいえ |
クライアント接続ハンドラを有効化しますか? | いいえ |
DNSサーバー1 IPアドレス | 空欄 |
DNSサーバー2 IPアドレス | 空欄 |
トランスポートプロトコル | UDP |
スプリットトンネルを有効にする | 無効 |
VCP ID | 空欄 |
VPNポート | 443 |
セルフサービスポートを有効にする | 無効 |
・関連付け
192.168.10.0/24を持つサブネットとクライアントVPNエンドポイントを関連付けます。
項目名 | 値 |
---|---|
VPC | vpn01-vpc |
関連付けるサブネットの選択 | vpn01-subnet |
・認証
Amazon Web Services(192.168.0.0)とFJcloud-V(旧ニフクラ)(172.16.1.0/24 , 172.16.2.0/24)との通信を受信可能になるように設定します。
項目名 | 値 |
---|---|
アクセスを有効にする接続先 | 192.168.0.0/16 , 172.16.1.0/24 , 172.16.1.0/24 |
アクセス付与する対象 | すべてのユーザーにアクセスを許可する |
・ルートテーブル(クライアントVPNエンドポイント)
Amazon Web Services(192.168.0.0)とFJcloud-V(旧ニフクラ)(172.16.1.0/24 , 172.16.2.0/24)への通信が可能になるように設定します。
項目名 | 値 |
---|---|
ルート送信先 | 192.168.0.0/16 , 172.16.0.0/16 |
ターゲットVPCサブネットID | vpc01-subnet |
(4) AWS VPN Client導入
AWS Client VPN for Desktopをダウンロード後、クライアント環境にインストールします。
クライアントVPNエンドポイントからクライアント設定ファイルをダウンロード後、downloaded-client-config.ovpnをテキストエディタで開き以下を設定します。
作成方法は以下ヘルプサイトを参照ください。
Windows 用 AWS クライアント VPN(他社サイトへのリンクです)
項目名 | 値 |
---|---|
remote | *.cvpn-endpoint\~(省略)\~.ovpn| |
cert | clientcert.crt|文末に追加 |
key | clientkey_withpass.key|文末に追加 |
クラウド間VPN接続構築
ここでは赤枠の範囲のリソースを作成します。
クラウド間VPN接続構築範囲
・FJcloud-V(旧ニフクラ)環境準備
(5) 拠点間VPNゲートウェイ
AWS側での接続対象となる拠点間VPNゲートウェイを作成します。
作成方法は以下ヘルプサイトを参照ください。
ファイアウォールは作成済みの「FWVPN01」を選択します。
※作成した拠点間VPNGゲートウェイを選択し「ネットワーク」のグローバルIPアドレスに記載されているIPアドレス控え、AWS側仮想プライベートゲートウェイと紐づくカスタマーゲートウェイ設定時に利用します。
基本設定
項目名 | 値 |
---|---|
拠点間VPNゲートウェイ名 | VPNGW |
プライベート側ネットワーク | VPNLAN1 |
IPアドレス | 空欄 |
ファイアウォール | FWVPN01 |
拠点間VPNゲートウェイ作成後
・AWS環境準備
(6) カスタマーゲートウェイ作成
FJcloud-V(旧ニフクラ)側との接続情報を登録するカスタマーゲートウェイを作成します。
作成方法は以下ヘルプサイトを参照ください。
カスタマーゲートウェイを作成する(他社サイトへのリンクです)
項目名 | 値 |
---|---|
名前 | vpn01-cgw01 |
ルーティング | 静的 |
IPアドレス | FJcloud-V(旧ニフクラ)拠点間VPNゲートウェイのグローバルIPアドレスを設定 |
Certificate ARN | 空欄 |
Device | 空欄 |
(7) 仮想プライベートゲートウェイ作成
AWS側VPNトンネルのルーターとなる仮想プライベートゲートウェイを作成します。
作成方法は以下ヘルプサイトを参照ください。
仮想プライベートゲートウェイの作成(他社サイトへのリンクです)
仮想プライベートゲートウェイ作成場所
項目名 | 値 |
---|---|
名前タグ | vpn01-vgw |
ARN | AmazonのデフォルトASN |
・VPCにアタッチ
作成されたAmazon Virtual Private Cloudに仮想プライベートゲートウェイをアタッチします。
項目名 | 値 |
---|---|
VPC | vpn01-vpc |
(8) ルートテーブル作成
仮想プライベートゲートウェイ(172.16.2.0/24)の通信が行えるように設定します。
作成方法は以下ヘルプサイトを参照ください。
ルートテーブルを操作する(他社サイトへのリンクです)
項目名 | 値 |
---|---|
名前タグ | vpn01-route-table |
VPC | vpn01-vpc |
ルート送信先 | 172.16.2.0/24 |
ターゲット | vpn01-vgw |
⑨サイト間のVPN接続作成
トンネルの構成情報を持つサイト間のVPN接続を作成します。
作成後「設定のダウンロード」から「Generic (汎用)」の設定ファイルをダウンロードして、FJcloud-V(旧ニフクラ)側で使用します。
作成方法は以下ヘルプサイトを参照ください。
サイト間 VPN 接続の作成(他社サイトへのリンクです)
項目名 | 値 | 備考 |
---|---|---|
名前タグ | vpn01-vpnc01 | |
ターゲットゲートウェイ | 仮想プライベートゲートウェイ | |
仮想プライベートゲートウェイ | vpn01-vgw | |
カスタマーゲートウェイ | 既存 | |
カスタマーゲートウェイID | vpn01-cgw01 | |
ルーティングオプション | 静的 | |
静的IPプレフィックス(静的ルート) | 192.168.0.0/16 , 172.16.1.0/24 , 172.16.2.0/24 | |
トンネル内線IPバージョン | IPv4 | |
ローカルIPv4ネットワークCidr | 0.0.0.0/0 | 下記『※』参照 |
リモートIPv4ネットワークCidr | 0.0.0.0/0 | 下記『※』参照 |
トンネル1の内部IPv4 CIDR | 空欄 | |
トンネル1の事前共有キー | 任意のものを指定 | |
トンネル2の内部IPv4 CIDR | 空欄 | |
トンネル2の事前共有キー | 任意のものを指定 | |
トンネル1の詳細オプション | デフォルトオプションを使用 | |
トンネル2の詳細オプション | デフォルトオプションを使用 |
※FJcloud-V(旧ニフクラ)拠点間VPNゲートウェイには、FJcloud-V(旧ニフクラ)側ネットワークの任意のアドレス0.0.0.0/0からカスタマーゲートウェイ先ネットワークの任意のアドレス0.0.0.0/0への通信にIPSecを適用するポリシーが適用されます。また、IKEv1の仕様として両者が提示するセレクタ情報を合わせる必要があるため、AWS側のローカル/リモートIPv4ネットワークCIDRをFJcloud-V(旧ニフクラ)側に合わせる(0.0.0.0/0にする)必要があります。
・FJcloud-V(旧ニフクラ)環境準備
(10) カスタマーゲートウェイ作成。
FJcloud-V(旧ニフクラ)拠点間VPNゲートウェイにAWS側のネットワーク情報を持たせるためにカスタマーゲートウェイを作成します。
作成方法は以下ヘルプサイトを参照ください。
項目名 | 値 | 備考 |
---|---|---|
カスタマーゲートウェイ名 | VPNCGW | |
対向機器IPアドレス | xxx.xxx.xxx.xxx | AWS側トンネル外部IPアドレスを入力 |
接続方式 | IPSec VTI | |
対向機器LAN側IPアドレス帯 | 192.168.0.0/16 | AWSのVPCアドレス帯を入力 |
対向機器LAN側IPアドレス | 本検証では未入力 | 指定がない場合は対向機器IPアドレスの値が指定される |
(11) VPNコネクション作成
トンネルの構成情報を設定するVPNコネクションを作成します。
設定の際は「サイト間のVPN接続」でダウンロードした、Generic版設定ファイルを参照しながら設定します。
作成方法は以下ヘルプサイトを参照ください。
Generic版設定値例
項目名 | 設定値 | 備考 |
---|---|---|
カスタマーゲートウェイ | VPNCGW | |
接続方式 | IPSec VTI | |
IKEバージョン | IKEv1 | GenericファイルのIKE versionを参照 |
暗号化アルゴリズム | AES128 | GenericファイルのEncryption Algorithmを参照 |
認証アルゴリズム | SHA1 | GenericファイルのAuthentication Algorithmを参照 |
事前共有鍵 | xxxx | GenericファイルのPre-Shared Keyを参照 |
IKE lifetime | 28800 | GenericファイルのLifetimeを参照 |
ESP lifetime | 3600 | GenericファイルのLifetimeを参照 |
DH Group | 2 (1024-bit MODP Group) | GenericファイルのPerfect Forward Secrecyを参照 |
VPCコネクション作成後
疎通確認
接続イメージ
AWS VPN Client
ここでは接続イメージのように、『クライアントPC』⇒『AWS クライアントVPNエンドポイント』に接続後、AWS経由で『FJcloud-V(旧ニフクラ) 別セグメント サーバー』へと接続が可能か検証を実施します。
(1) AWS VPN Clientを起動し「ファイル」>「プロファイルの管理」>「プロファイルを追加」から以下設定を行います。
項目名 | 値 |
---|---|
表示名 | test |
VPN設定ファイル | 格納場所\downloaded-client-config.ovpn |
プロファイル設定
(2) 「プロファイルを追加」を選択し、保存されたプロファイルに名前が表示されることを確認後「完了」を選択します。
プロファイル設定
(3) 「接続」を選択し「接続済み」が表示されることを確認します。
VPN接続
(4) Tera Termを起動後アクセス先サーバーにログイン可能なことを入力後「OK」を選択します。
項目名 | 値 |
---|---|
ホスト | 172.16.2.1 |
(5) 認証情報を入力後「OK」を入力します
(6) 接続可能なことを確認します
ログイン後
まとめ
クライアントVPN・IPSec VTIを使用したマルチクラウド構成をご紹介しました。
FJcloud-V(旧ニフクラ)、AWS、オンプレミスを使用したマルチクラウド+ハイブリッドクラウドの構成も可能になり、より柔軟なシステム構築・運用が可能となります。
本記事がシステム構成検討の際の助けになれば幸いです。
ここまで読んでいただきありがとうございました!
注意事項
- 本記事に記載されている会社名、製品名等の固有名詞は各社の商号、登録商標または商標です。
- 本記事の他社サイトへのリンクにつきまして、リンク切れの際はご容赦ください。
- 本記事で記載した各サービス/FJcloud-V(旧ニフクラ)の機能等は、2021年5月時点の情報です。ご利用の際は、各サービス/FJcloud-V(旧ニフクラ)の機能の最新情報をご確認ください。
- 本記事の他社サービス利用に関する記載については、FJcloud-V(旧ニフクラ)のサポート対象外となります。ご自身の責任でご利用ください。
- AWSのVPN機器は、拠点間VPNゲートウェイの「接続確認済み機器またはOS」にありません。そのため本構成はご利用者様の責任でご利用ください。