AWSとオンプレミス上のFortigateをVPN(IPsec)接続をする方法です。
接続は、静的ルーティングを使用し、サイト間VPN接続で行います。
Fortigateの設定は、CUIでやっている記事が多かったのでGUIでの設定方法を記載します。
接続イメージは以下の図のとおりです。
オンプレミス側のFortigateはシングル構成、VPNトンネルは2接続で設定を行います。
接続における前提条件
- Fortigateの外部アドレスは固定IPが必要です。
- AWS VPCは、サブネット、ルーティング(ルートテーブルがVPCにアタッチ)などが事前に設定されている必要があります。
Mainモードでの接続を想定しておりますので固定IPは必須にしております。
aggressiveモードで接続できるかは不明です。
Fortigateの機種/ファームウェアバージョン
今回接続設定を行った機種は「Fortigate60D」です。
ファームバージョンは「v6.0.6 build0272」です。
機種が違う場合は、インターフェイスの設定を読み替えてください。
ファームバージョンが違う場合は、原則v5からは設定差異は無いと思いますが、画面が異なる場合がありますので適意読み替えてください。
接続設定の概要
構成情報などは、この手順で作成されます。
AWS VPCとFortigateの接続設定方法
設定はFortinet Document Libraryを参考にしました。
仮想プライベートゲートウェイの作成
AWSのマネージメントコンソールから「VPC」を選びます。
「仮想プライベートゲートウェイ」を選択します。
「仮想プライベートゲートウェイの作成」を選択します。
名前を任意の名前を付け、ASNはデフォルトを選択したまま「仮想プライベートゲートウェイの作成」を選択します。
作成が完了すると以下の画面が表示されます。
次に、作成された仮想プライベートゲートウェイを選択して「Actions」→「VPCにアタッチ」を選択します。
VPCへのアタッチ選択画面になりますので、接続を行いたいVPCを選択します。
正常にアタッチ出来ましたら以下のように「attached」と表示されます。
以上でプライベートゲートウェイの作成が完了です。
カスタマーゲートウェイの作成
VPCメニューから「カスタマーゲートウェイ」→「カスタマーゲートウェイの作成」を選択します。
以下を参考に設定情報を記入して「カスタマーゲートウェイの作成」を選択してください。
名前:任意の名前
ルーティング:静的
IPアドレス:FortigateのWANインターフェイスに付与されているグローバルIP(ISPから提供の固定IPなど)
Cortificate ARN:未記入
正常に作成が完了すれば、以下の画面が表示されます。
作成したカスタマーゲートウェイの状態が「使用可能」になっていることをご確認ください。
VPN接続設定
VPCメニュー内の「サイト間のVPN接続」→「VPN接続の作成」を選択します。
以下を参考に設定情報を記入してください。
名前タグ:任意の名前
仮想プライベートゲートウェイ:作成済みの仮想プライベートゲートウェイを指定
カスタマーゲートウェイ;既存を選択
Customer Gateway ID:作成済みのカスタマーゲートウェイを指定
ルーティングオプション:静的を指定
静的IPプレフィックス:FortigateのLAN側(internal)セグメントを入力
トンネルオプションはすべてデフォルトのままで「VPN接続の作成」を選択してください。
以下の画面が表示されましたらVPN接続の作成が完了です。
作成されたVPN接続をチェックし、「設定のダウンロード」を選択して、ベンダーなどを画面を参考に選び、テキストファイルをダウンロードしてください。
ダウンロードしたテキストファイルから後ほど、AWS側のトンネルIP、事前共有鍵の設定を取り出します。
IPsecの設定情報などはすべてダウンロードしたテキストファイルには記載されているので、一度目を通されることをおすすめします。
Fortigateの設定
Fortigateにログインして、「VPN」→「IPsecウィザード」を選択してください。
VPNセットアップ画面から、任意の名前を入力し、テンプレートタイプを「カスタム」を選択して次へを選択してください。
IPsecの設定画面が表示されますので、以下の画像を参考に設定を入力してください。
名前は任意の名前でOKです。
IPアドレスには、ダウンロードしたテキストファイルに記載のTunnel IPを入力してください。
事前共有鍵は、テキストファイルに記載の値を入力します。
暗号化設定などは下記画像の値を参考に変更をしてください。
フェーズ2の項目では、「高度な設定」を展開して下記画像の値を参考に設定を行ってください。
すべて入力、変更が完了すれば「OK」を選択してください。
自動再接続を行う設定は【オートネゴシエーション】を有効にしてください。
IPsecが切れた場合、AWS側からの自動再接続が行われませんので運用に合わせて設定してください。
次にルーティングを追加します。
「ネットワーク」→「スタティックルート」→「新規作成」を選択します
宛先にVPCのCIDR(ネットワークアドレス)を入れ、インターフェイスは、前工程で作成したVPN(IPsec)のインターフェイスを指定します。
ディスタンスなどは初期のままで「OK」を選択します。
次にAWS間との通信許可を行います。「ポリシー&オブジェクト」→「IPv4ポリシー」→「新規作成」を選択します。
ポリシー作成画面では以下の値を参考に設定を行ってください。
名前:任意の名前
入力インターフェイス:FortigateのLAN側インターフェイス(internal)
出力インターフェイス:先ほど作成したVPN(IPsec)インターフェイス
送信元:任意の値(LAN側ネットワークアドレスのみなど)
宛先:任意の値(VPCのCIDRのみなど)
スケジュール:任意の値
サービス:任意の値
※環境に応じて送信元、宛先などはご変更ください。
アクション:ACCEPT
NAT:オフ
IPSなどのセキュリティ項目も要件に合わせて設定をしてください。
逆側も同じように設定します。
ポリシーに両方向設定できればポリシー設定は完了です。
警告マークは、IPsecが接続されれば、無くなります。
Fortigateの設定は以上です。
VPCルーティング設定
次にVPCからFortigateへのルーティング設定を行います。
「VPC」→「ルートテーブル」を選択します。
仮想プライベートゲートウェイをアタッチしたVPCを選択して、「アクション」から「ルートの編集」を選択します。
「ルートの追加」を選択して、FortigateのLAN(internal)側のネットワークアドレスを入力し、ターゲットを作成した仮想プライベートゲートウェイを指定して「ルートの保存」を選択します。
「VPC」→「サイト間のVPN接続」を選択し、「Tunnel Details」タブを開いて、Tunnel1のステータスが「アップ」になっていれば接続完了です。
アップにならない場合は、Fortigate側で「モニタ」→「IPsecモニタ」を選択し、作成したVPN接続を選択して「アップ」を選択してください。
また、本手順はトンネル1のみ接続ですが、同様の手順でトンネル2のIPを設定してVPN接続設定を行えば、経路の冗長化をできます。
その場合、ルーティング設定でプライオプティの設定をトンネル1または2どちらか下げてください。
AWS側のルーティングはトンネル1とトンネル2をロードバランシングする仕様のため非対称ルーティングとなります。
Fortigate側で非対称ルーティングの許可を行う必要がございますのでご注意ください。
以上でFortigateとAWS VPCのVPN接続設定は完了です。
誰かの参考になれば幸いです。