FortiGate-VM AWS 設定ガイド
V
ersion 1.00
フォーティネットジャパン株式会社
免責事項
本ドキュメントに関する著作権は、フォーティネットジャパン株式会社へ帰属します。
フォーティネットジャパン株式会社が事前に承諾している場合を除き、形態及び手段を 問わず本ドキュメントまたはその一部を複製する事は禁じられています。
また本内容は参考例となります。個別のセキュリティ対策に関する要件を満たすには、
ご利用者様ごとにプランニングおよび設定の調整が必要となりますので、予めご了承 下さい。尚、本ドキュメントの作成にあたっては最新の注意を払っておりますが、その 記述内容は予告なしに変更される事があります。
目次:
第1章: はじめに P4
第2章: VPC のセットアップ P6
第 3 章: FortiGate インスタンスのデプロイ P15
第 4 章: FortiGate の設定 P24
第 5 章: サーバインスタンスの準備 P27
第 6 章: セキュリティポリシー P30
第 7 章: 外部からの接続確認 P35
第 8 章: 内部からの接続確認 P40
第 9 章: その他 P48
Appendix: P49
改訂履歴: P56
1.はじめに
このドキュメントは Amazon Web Service(以下 AWS)上に FortiGate をデプロイし、AWS 上のインスタンスを保護するための設定ガイドです。
1-1.想定トポロジー
本ドキュメントでは以下のようなトポロジーを構成する手順を示します。
※インターネット側から各インスタンス(サーバ)へのアクセスはバーチャル IP(VIP)を用 いて可能にします。
※各インスタンス(サーバ)からインターネットへのアクセスは送信元 NAT を用います。
※この例では各インスタンス(サーバ)間の通信も FortiGate で制御したいので、それぞれセ グメントを分けています。サーバ間の通信を制御しないのであればセグメントを分ける 必要はありません。
VPC
Port1(eth0):10.0.0.99/24
Port2(eth1):10.0.1.99/24 Port3(eth2):10.0.2.99/24
Port4(eth3):10.0.3.99/24
Internet
AWS
Elastic IP A.A.A.A Elastic IP B.B.B.B Elastic IP D.D.D.D Elastic IP C.C.C.C FortiGate
インスタンス
サーバ 1
インスタンス
サーバ 2
インスタンス
サーバ 3
10.0.1.10/24 10.0.2.10/24
10.0.3.10/24
1-2.前提条件
・AWS のアカウントが作成済みで、接続可能であること。
1-3.ライセンス
AWS の Marketplace で購入可能な FortiGate-VM は大きく分けると 2 種類あります。
・BYOL
Bring Your Own License の略。日本の販売代理店を通じて購入した FortiGate-VM ラ イセンスをお持ちの場合はこのイメージを購入してください。BYOL イメージの場合、
AWS 上のリソースの利用に対する課金はありますが、FortiGate-VM の利用そのもの に対する AWS 上の課金はありません。購入を希望される場合は、弊社代理店にお問い 合わせください。https://www.fortinet.co.jp/partners/
・オンデマンド(Pay as you go)
FortiGate の利用状況により AWS 上で課金されます。時間単位の従量課金となります。
サポートは弊社に直接お問い合わせ頂けますが、英語での対応となる場合があります。
このドキュメントではオンデマンドを前提に説明します。BYOL での導入の場合、ライセン スの事前購入と適用などちょっとした違いがあります。詳しくは購入元の代理店にお問い 合わせください。
2.VPC のセットアップ
2-1.VPC の作成
AWS にログインし、リージョンを確認します。このドキュメントでは「東京」に設定して います。
メニュー内の「ネットワーキング&コンテンツ配信」の「VPC」を選択します。
「VPC の作成」ボタンをクリックして、「1 個のパブリックサブネットを持つ VPC」を選択 し、以下の設定をします。
IPv4 CIDR ブロック:
FortiGate のインターネット側のサブネット、内側のサブネット双方がおさまるような CIDR ブロックを設定します。この例では 10.0.0.0/24,10.0.1.0/24,10.0.2.0/24 およ び 10.0.3.0/24 の 4 つのサブネットの利用を予定しています。これらをすべて含む 10.0.0.0/16 を指定しています。
VPC 名:
わかりやすい任意の名称を付けてください。
パブリックサブネットの IPv4 CIDR:
FortiGate のインターネット側サブネットを指定します。この例では 10.0.0.0/24 にな ります。
設定し終えたら「VPC の作成」ボタンをクリックします。しばらくすると作成が終了しま す。以下のような VPC が作成されたことを確認してください。(VPC を選択するとページ 下段に詳細が表示されます)
2-2.サブネットの設定
FortiGate のインターネット側のサブネットは前項で VPC と同時に「パブリックサブネッ ト」として作成しているので、確認します。「VPC」→「Virtual Private Cloud」→「サブ ネット」を表示して確認してください。
次に内側のサブネットも作成します。「サブネットの作成」ボタンをクリックして次の要領 で作成してください。
作成を終えたら、次のような設定になっていることを確認してください。
名前タグ:
わかりやすい任意の名称を付けてください。
VPC:
2-1 で作成した VPC をドロップダウンリストより選択してください。
IPv4 CIDR ブロック:
それぞれのサブネットに合わせて設定してください。
2-3.ルートテーブルの設定
今回設定するサブネットはそれぞれ別個のルートテーブルを持つように設定します。
FortiGate をデプロイしないと設定は完了しませんので、ひとまず下準備をしておきます。
「VPC」→「Virtual Private Cloud」→「ルートテーブル」を見てください。
前項まで手順を踏んで設定していくと、現在のルートテーブルは以下のようになっていま す。今回作成された VPC に紐付けられているルートテーブルは 2 つしかありません。
2 つのルートテーブルのうち、「明示的に関連付けられた…」が「1 サブネット」になって いるものを選択し、ルートタブを見てみます。デフォルトゲートウェイ(0.0.0.0/0)のター ゲットが「igw-xxxx」となっており、igw つまりインターネットゲートウェイがデフォル トルートになっているルートテーブルであることがわかります。これは VPC を作成した時 に同時に作成されたルートテーブルです。
「サブネットの関連付け」タブを見てみると、このルートテーブルは 10.0.0.0/24 サブネ ットに適用されていることがわかります。
「名前」欄をクリックすると編集できますので、「パブリックルート」などのわかりやすい 名前を付けましょう。
次にもう一つのルートテーブルを見てみます。「サブネットの関連付け」タブを見てみると、
このルートテーブルはどのサブネットにも割り当てられていないことがわかります。編集 ボタンを押して「10.0.1.0/24」のサブネットを割り当てて保存します。
わかりやすい名前も付けてください。
各サブネットに個別にルートテーブルを割り当てるので、あと二つ作成する必要がありま す。ルートテーブルの作成をクリックして、以下の例のように 2 つルートテーブルを作成 してください。適切な VPC を選択し、わかりやすい名前をつけます。作成したルートテー ブルには「サブネットの関連付け」でそれぞれ一つサブネットを割り当ててください。
次のように、パブリックルート、プライベートルート 1~3 に一つずつサブネットが割り当 てられていることを確認してください。
2-4.Elastic IP の取得
Elastic IP(インターネットアクセス用の固定グローバル IP)を取得します。「VPC」→「Virtual Private Cloud」→「Elastic IP」で「新しいアドレスの割り当て」クリックして割り当てて ください。
以下の図では実際の IP アドレスを隠していますが、このようにグローバル IP を取得でき ていれば OK です。
2-5.インターネットゲートウェイの名前付け
設定しなくても特に問題はありませんが、「VPC」→「Virtual Private Cloud」→「インタ ーネットゲートウェイ」で利用する VPC のインターネットゲートウェイに名前を付けてお いてください。
3.FortiGate インスタンスのデプロイ
3-1.FortiGate インスタンスのデプロイ
「EC2」のページに移動します。
「インスタンスの作成」ボタンをクリックし、「AWS Marketplace」を選択、検索窓に
「FortiGate」と入力して検索を実行してください。
FortiGate が 2 つ出てきますが、上の方(BYOL ではない)を選択してください。
次に料金の詳細情報が出てきますので、Continue をクリックし、インスタンスタイプの選 択に進みます。Fortinet では c5.large 以上を推奨しています。今回は FortiGate にインタ ーフェースが 4 つ必要ですので、c5.xlarge を選択します。各インスタンスがサポートする NIC の数は Appendix 1 をご覧ください。また、料金例については Appendix 2 をご覧く ださい。
「次の手順:インスタンス詳細の設定」ボタンを押して以下のように設定します。
ネットワーク:
2-1 で作成した VPC を選択してください。
サブネット:
2-2 のパブリックサブネットを選択します。
ネットワークインターフェース eth0:
eth0 は FortiGate 上では port1 として認識されます。Port1 用の IP アドレス(この例で は 10.0.0.99)を入力します。
「次の手順:ストレージの追加」を選択します。ここはデフォルトのままで結構です。
「次の手順:タグの追加」ボタンをクリックし、任意のタグを追加します。タグの詳細につ いては以下をご覧ください。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Using_Tags.html
「次の手順:セキュリティグループの設定」ボタンをクリックします。デフォルトでこのイ ンスタンス(FortiGate 用)の新しいセキュリティグループが作成されることを確認してくだ さい。
「確認と作成」ボタンを押すと次のような画面が出てきますが、そのまま「次へ」ボタンで 進んでください。
キーペアは既存のものを利用するか、新しく作成してください。
次へ進むとインスタンスが作成されます。しばらく時間がかかります。作成された FortiGate のインスタンスは「EC2」→「インスタンス」→「インスタンス」ページで確認 できます。わかりやすいように名前を付けておいてください。
画面下の「eth0」をクリックすると詳細情報を見ることができます。次の手順で利用します のでインターフェース ID を確認しておいてください。
3-2.Elastic IP との関連付け
いったん EC2 ダッシュボードを離れ、「VPC」→「Virtual Private Cloud」→「Elastic IP」
を表示します。2-4 で取得した Elastic IP を選択し、「アクション」のドロップダウンリス トから「アドレスの関連付け」を選択します。
次のように設定します。
リソースタイプ:
「ネットワークインターフェース」を選択します。
ネットワークインターフェース:
3-1 で確認した eth0 のインターフェース ID を選択します。
プライベート IP:
FortiGate の Port1 にアサインされている IP アドレスを選択します。
今のままでは FortiGate に Port1 しかありません。Port2~4を作成します。EC2 ダッシュ ボードに移動し、「ネットワーク&セキュリティ」→「ネットワークインターフェース」で
「ネットワークインターフェースの作成」をクリックしてください。
以下のように設定します。
説明:
わかりやすい説明をつけてください。
サブネット:
2-2 で作成したサブネットを選択します。
プライベート IP:
FortiGate の各ポートに割り当てる IP アドレスを入力します。
セキュリティグループ:
ひとまず FortiGate のインスタンス作成時に作られたものを選択してください。
次の図のように 4 つのインターフェースが作成され、適切なサブネットが割り当てられて いることを確認してください。名前も付けておいてください。
次に、それぞれのインターフェースを選択して、「アタッチ」ボタンをクリックして FortiGate のインスタンスに関連付けてください。
4.FortiGate の設定
4-1.FortiGate へのアクセスと基本設定
3-2 で Elastic IP との関連付けがおわっているので、「EC2」→「インスタンス」→「イン スタンス」で FortiGate のインスタンスを見ると、次の図のように Elastic IP が関連付けら れているはずです。
この Elastic IP を利用して、FortiGate の GUI にログインしてみてください。
https://<ElasticIP>で GUI にアクセス可能です。
(※FortiGate の自己証明書を利用しているためブラウザに警告が表示されます) ユーザ名:admin
パスワード:<FortiGate のインスタンス ID>
ログイン後は admin ユーザ(削除できないスーパユーザ)のパスワード変更、タイムゾーン の変更、GUI の言語設定など基本的な設定を実施してください。
また、ファームウェアのバージョンをチェックしておきましょう。執筆時点では FortiOS 6.0.1 で動作していました。
GUI の左側ペインで、「ネットワーク」→「インターフェース」を開いてください。下の図 のようになっているはずです。Port1 は DHCP で IP アドレスを取得しています。
port1(eth0)に割り振る IP アドレスは予約されています(3-1)ので設定変更の必要はあり ません※。
それ以外のポートは IP アドレスが設定されていないのでそれぞれ設定します。
※port1 を DHCP ではなくマニュアルに変更したい場合は以下を参考にしてください。設定を間違えると FortiGate に 管理アクセスできなくなる場合があるのでご注意ください。
https://www.fortinet.com/content/dam/fortinet/assets/solutions/aws/Fortinet_Multiple_Public_IPs_for_an_
AWS_interface.pdf
「アドレッシングモード」は「マニュアル」で「IP/ネットマスク」にそれぞれのインター フェースの IP アドレス/ネットマスクを入力します。また、疎通確認するために「PING」
を許可しておきます。
次のように設定されたことを確認してください。
次にルーティングテーブルを確認します。GUI の左側ペインで、「モニタ」→「ルーティン グモニタ」を表示させます。次の図のようになっているはずです。デフォルトゲートウェイ は DHCP から取得した 10.0.0.1 になっています。
5.サーバインスタンスの準備
5-1.FortiGate へのアクセスと基本設定
FortiGate の背後で稼働するサーバのインスタンスを準備します。ここではサンプルとして Windows Server 2016 を稼働させますが、適宜ご利用の環境に読み替えてください。
EC2 で「インスタンスの作成」を選択し、Windows Server 2016 Base を選択します。
インスタンスの詳細設定では次のように設定します。
ネットワーク:
2-1 で作成した VPC を選択します。
サブネット:
2-2 で作成したサブネットのうち、適切なものを選択します。
プライマリ IP:
サーバに割り当てる IP アドレスを設定します。
本ドキュメントでは便宜上、別々のセグメントにある 3 つのサーバに同じセキュリティグ ループを設定します※。「セキュリティグループの設定」では次のようにしてください。最 初のサーバのインスタンス作成時に”新しいセキュリティグループ”を作成しわかりやすい グループ名を割り当てます。2 つ目以降のサーバ作成時にはそのセキュリティグループを選 択するようにしてください。
※あくまで本ドキュメント内での便宜上の設定ですので、実際のセキュリティポリシーに合わせて設定してください。
その他 3-1 を参考にしてサーバのインスタンスを作成してください。全部で 3 つのインス タンスを作成します。
作成し終えたら以下のように 3 つのサーバが作成され、同じセキュリティグループが割り 当てられていることを確認してください。
また、各インスタンスに意図した IP アドレスが割り当てられているか確認してください。
~中略~
6.セキュリティポリシー
6-1.サーバ公開の準備
FortiGate の背後で稼働するサーバを外部公開するには、それぞれのグローバル IP を取得 し、FortiGate でバーチャル IP を利用して NAT するのが正攻法です。
次の図はインターネットから入って来たパケットの宛先 IP の変化の流れを示しています。
Elastic IP[B.B.B.B]※宛のパケットは AWS(VPC)のゲートウェイによって[10.0.0.100]宛 に変換されます。FortiGate はセカンダリ IP として[10.0.0.100]を割り当てられており、
到達したパケットをサーバ 1 の IP アドレスである[10.0.1.10]宛に変換して送信します。
要するに、それぞれのサーバに外部公開用 IP を持つ形になります。
※便宜上の表記です。実際は IPv4 の IP アドレスとお考えください。
6-2.セカンダリ IP の割り当て
「EC2」→「ネットワーク&セキュリティ」→「ネットワークインターフェース」で FortiGate の「Port1」のインターフェースを選択します。「アクション」ボタンをクリックして、「IP アドレスの管理を」選択、下の図のように 10.0.0.100~10.0.0.102 を割り当てます。
6-3.Elastic IP の取得
2-4 の手順で必要な Elastic IP を取得します(この例では新たに 3 つ)。
次に 3-2 と同様の手順で新しい Elastic にプライベート IP を関連付けます。
関連付けが終わったら、以下のような設定になっているか確認してください。各 Elastic IP にはわかりやすい名前を付けておいてください。
ネットワークインターフェース:
FortiGate の Port1 のインターフェースを選択します。
※すべての Elastic IP を Port1 に関連付けます
プライベート IP:
ドロップダウンリストから 10.0.0.100~102 のいずれかを選択します。
6-3.FortiGate での VIP の設定
FortiGate の GUI にアクセスします。左側ペインの「ポリシー&オブジェクト」→「バーチ ャル IP」で「新規作成」をクリックし、次のように設定します。
同様の手順で全てのサーバ用の VIP オブジェクトを作成してください。
名前:
英数字で名前を付けてください。
外部 IP アドレス/範囲:
FortiGate の 6-2 で設定したセカンダリ IP を指定します。
マップされた IP アドレス/範囲:
サーバの実 IP を指定します。
6-4.FortiGate のポリシー設定
VIP を作成しただけでは通信を通すことはできません。ファイアウォールポリシーで通信 を許可する必要があります。FortiGate の GUI 左側ペインの「ポリシー&オブジェクト」
→「Pv4 ポリシー」で「新規作成」をクリックし、次のように設定します。
名前:
英数字で任意の名前を付けてください。ポリシーにいちいち名前を付けるのが煩わしい 場合は、「システム」→「表示設定」→「名前なしポリシーを許可」を on にしてくださ い。
入力インターフェース:
インターネット側のインターフェース(Port1)を選択します。
出力インターフェース:
内側のインターフェース(Port2)を選択します。
同様に他のサーバ用のポリシーも作成してください。以下のようになっていれば OK です。
送信元:
限定できるのであれば、アドレスオブジェクトを作成して選択してください(推奨)。この 例では便宜上「all」にします。
宛先:
6-3 で作成した Server1 の VIP のオブジェクトを選択してください。
サービス:
サーバ宛に許可する通信を選択します。この例では ping とリモートデスクトップを許可 しています。
NAT:
デフォルトで有効です。「送信インターフェースのアドレスを使用」のままにしておいて ください。ここでいう NAT は送信元 NAT(IP マスカレード)のことです。宛先 NAT は VIP で定義しましたが、パケットがサーバ宛に出ていくときに送信元を FortiGate の IP アド レスに変換しておくと戻りパケットのルーティングの心配が必要ありません
7.外部からの接続確認
7-1.リモートデスクトップ接続
リモートデスクトップ接続を試してみます。まず、Windows のパスワードを取得します。
「EC2」→「インスタンス」→「インスタンス」で Windows サーバを選択し、「アクショ ン」をクリックします。「Windows パスワードの取得」を選択すると、次の画面が出てきま す。「キーペアのパス」は EC2 コンソールですでに作成しダウンロード済みの pem ファイ ルを選んでください(3-1 参照。もし紛失した場合は再作成が必要です)。「パスワードの取 得」クリックしてください。パスワードが表示されますので、クリップボードにコピーして ください。
リモートデスクトップ接続を起動して各サーバの公開アドレス(Elastic IP)宛にアクセスし ます。
いかがでしょうか?
次のような表示が出て、接続に失敗しませんか?
Ping はどうでしょう?やはり失敗してしまいます。
これらの通信を可能にするにはセキュリティグループの理解と設定が必要です。
7-2.セキュリティグループ
5-1 でも出てきましたが、EC2 上の各インスタンスにはセキュリティグループというファ イアウォールルールが適用されています。あまり意識していないかもしれませんが、インス タンスを作成する際に適用されています。
「EC2」→「インスタンス」→「インスタンス」でどのインスタンスにどんなセキュリティ グループが適用されているか確認してください。
~中略~
次に「EC2」→「ネットワーク&セキュリティ」→「セキュリティグループ」で FortiGate に適用されていたセキュリティグループを選択し、「インバウンド」タブを表示させます。
ここには FortiGate に対するインバウンド通信で、許可したいものを定義します。サーバに 対するアクセスも FortiGate を通過しますので、定義してあげる必要があります。「編集」
→「追加」をクリックして、次のように RDP と ICMP を許可します。
設定が終わったら、再度 RDP を試してください。今度は接続できるはずです。
※Windows サーバに割り当てられているセキュリティグループでも RDP が許可されている必要がありますが、デフォ ルトでは許可されています。
Ping はどうでしょうか?こちらの方はあいかわらず疎通できない状態だと思います。
Windows ファイアウォールで ping を許可してみます。
Windows アイコン→Control Panel→System and Security→Windows Firewall を表示 します。
Customize Settings で「Turn off Windows Firewall」を選択し、無効化します。
※あくまで一時的な措置です。疎通確認後は元に戻しておいてください。
これで各サーバの Elastic IP に対する Ping は疎通可能なはずです。確認してみてください。
7-3.外部からの接続のまとめ
FortiGate を経由して、外部からの接続を許可する場合の条件を整理します。
1.Elastic IP を取得し、FortiGate のインターネット側ポート(Port1)に割り当てる VIP(EC2 上ではセカンダリ IP)との関連付けが済んでいること(6-2,6-3)。要するに B.B.B.B 宛の通 信は 10.0.0.100 に宛先変換というようなルールが定義されていること。
2.FortiGate 上で VIP オブジェクトを作成し、許可ポリシーを設定していること(6-3,6-4)。
3.FortiGate に適用されているセキュリティグループ、各サーバのセキュリティグループ双 方でそのプロトコルが許可されていること(7-2)。
4.各サーバインスタンス上で動くファイアウォール(Windows ファイアウォールなど)でそ のプロトコルが許可されていること(7-2)。
8.内側からの接続確認
8-1.サーバからのインターネット接続
今度は Widows サーバから FortiGate を経由インターネットに抜ける通信を許可します。
FortiGate の GUI 左側ペインの「ポリシー&オブジェクト」→「Pv4 ポリシー」で「新規作 成」をクリックして、以下のように設定してください。
名前:
英数字で任意の名前を付けてください。ポリシーにいちいち名前を付けるのが煩わしい 場合は、「システム」->「表示設定」->「名前なしポリシーを許可」を on にしてくださ い。
入力インターフェース:
内側のインターフェース(Port2)を選択します。
出力インターフェース:
インターネット側のインターフェース(Port1)を選択します。
同様に他のサーバ用のポリシーも作成してください。以下のようになっていれば OK です。
送信元:
各サーバのアドレスオブジェクトを作成して設定してください(推奨)。この例では便宜 上「all」にします。
宛先:
不特定のインターネット宛の通信を意図しているので、「all」にします。
サービス:
必要なプロトコルを選択してください。ここでは便宜上「all」にします。
NAT:
デフォルトで有効です。「送信インターフェースのアドレスを使用」のままにしておいて ください。ここでいう NAT は送信元 NAT(IP マスカレード)のことです。
8-2.セキュリティグループ
FortiGate のセキュリティポリシー(ファイアウォールポリシー)は設定しましたが、セキュ リティグループの方も設定しなければなりません。
7-2 の手順を参照して、各インスタンスに割り当てられているセキュリティグループを確 認してください。
その後、「EC2」→「ネットワーク&セキュリティ」→「セキュリティグループ」で Windows に適用されていたセキュリティグループを選択し、「アウトバウンド」タブを表示させます。
送信方向はすべてのトラフィックを許可していますので、設定変更する必要がないことを 確認してください。
次に FortiGate に適用されているセキュリティグループの「インバウンド」タブを確認しま す。Windows がインターネット接続に利用するプロトコルが許可されているかどうか確認 してください。
「アウトバウンド」タブも確認します。すべてのプロトコルが許可されていることを確認し てください。
それでは Windowsサーバからping でインターネットに抜けられるか確認してみましょう。
いかがでしょうか? 設定上問題は無いように思えますが、以下のように失敗しませんか?
8-3.VPC 特有のルーティング事情
失敗の原因は何でしょうか? Windows サーバでルーティングテーブルを見るとわかります。
以下はサーバ 1 で route print コマンドを実行した際の出力ですが、デフォルトゲートウェ イが 10.0.1.1 になっています。これを FortiGate の IP(10.0.1.99)に向けなければいけま せん。ただし、EC2 のインスタンスではこれを変更できないのです(無理に変更すると Windows と疎通できなくなったりします)。
これを解決するには次のような設定が必要になります。
「EC2」→「インスタンス」→「インスタンス」で FortiGate のインスタンスを選択します。
ページの下に詳細情報が表示されます。eth1,eth2,eth3 をクリックして表示されたそれぞ れのインターフェース ID をコピーします。
「VPC」→「ルートテーブル」で、10.0.1.0/24 用のルートテーブルを選択します。
「ルート」タブを表示し、「別のルートを追加」をクリックしてデフォルトルートを下図の ように送信元:0.0.0.0/0、ターゲット:<インターフェース ID>に設定し保存します。
同様に 10.0.2.0/24 のデフォルトルートは eth2 へ、10.0.3.0/24 のデフォルトルートは eth3 に設定してください。なお、これらの設定を実施しても Windows 上のルーティング テーブル(route print の出力)は表示上変更されません(EC2 の仕様)。
8-4.送信元/送信先の変更チェックの無効化
ルーティングの問題は解消されたはずですが、実はまだインターネットへの疎通はできま せん。「EC2」→「ネットワーク&セキュリティ」→「ネットワークインターフェース」で Port2 のインターフェースを選択し、「アクション」をクリック、「送信元/送信先の変更チ ェック」を無効にします。他の FortiGate の内部側インターフェースである Port3,Port4 も 同様に設定して下さい。
8-5.疎通確認
これで設定は終了です。各 Windows サーバから ping や Web アクセスなど試してみてく ださい。こんどは成功するはずです。
8-6.内部からの接続のまとめ
内側のサーバからの接続を許可する場合の条件を整理します。
1.FortiGate 上で NAT を有効にした適切な許可ポリシーを作成していること(8-1)。
2. FortiGate に適用されているセキュリティグループ、各サーバのセキュリティグループ 双方でそのプロトコルが許可されていること(8-2)。
3.VPC のルーティングを理解し、各サブネットのデフォルトゲートウェイを適切に設定し ていること(8-3)。
4.FortiGate の各内側インターフェースで「送信元/送信先の変更チェック」を無効化して いること (8-4)。
FortiGate までパケットが到達しなければ、FortiGate 側でいくら設定を変えても通信を通 すことができません。うまく疎通確認ができない場合は#diagnose sniffer packet コマン ドや#diagnose debug flow コマンドを利用して、FortiGate までパケットが到達している か、正しい処理がなされているかを確認してください。
http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&ext ernalId=FD30038
9.その他
9-1.FotiGate のセキュリティ機能
本ドキュメントは AWS 上での FortiGate のデプロイと、疎通に関する説明を主眼としてい るため触れていませんが、FortiGate はアンチウィルス、侵入防御(IPS)、アプリケーショ ン制御、Web フィルタなど強力なセキュリティ機能を持っています。6-4 や 8-1 で要件に 応じて適宜設定を追加してください。
9-2.Elastic IP の節約
今回は FortiGate と 3 つのサーバ用に合計 4 つの Elastic IP を使用しています。要件によ っては VIP とポートフォワーディングを組み合わせることで、利用する Elastic IP を減ら すことが可能です。詳しくは Appendix3 をご覧ください。
9-3.AWS の仕様変更
本ドキュメントは執筆時点(2018 年 9 月)で動作確認をしておりますが、将来的に AWS に 仕様変更が生じ、意図どおりに動作しない可能性もあります。
9-4.FortiGate のセキュリティグループ
FortiGate の基本機能はファイアウォールです。設定上許可しなければパケットを通すこと はありません。EC2 のセキュリティグループもステートフルインスペクションファイアウ ォールですが、2 重にファイアウォールがあると煩雑でトラブルシュートにも時間がかかり ます。FortiGate に適用するセキュリティグループはインバウンドもアウトバウンドも「全 ての通信を許可する」ようにするのも一案だと思います。
Appendix
Appendix 1 インスタンスごとの NIC のサポート数
https://docs2.fortinet.com/vm/aws/fortigate/6.0/about-fortigate-for-
aws/6.0.0/41066115-b161-11e8-8784-00505692583a/instance-type-support
Appendix 2 料金
オンデマンドの場合の各 FortiGate-VM インスタンスの時間当たりの料金例(2018 年 9 月 US East)
https://aws.amazon.com/marketplace/pp/B00PCZSWDA/?ref=_ptnr_web
Appendix 3 Elastic IP の節約
Elastic IP を複数利用すると、それだけ料金がかかってしまいます。ポートフォワーディン グを利用して Elastic IP の利用を最小限に抑えることができます。ただし、トレードオフも あります。サービス要件によってはこの構成は選択できません(サーバ 3 台とも TCP 80 で Web サービスとして公開したい場合など)。
実現することを端的に図で示すと以下のようになります。Elastic IP は一つ(A.A.A.A)だけ 取得し、宛先ポート番号を変更することで各サーバに振り分けます。
おおよその設定は本文で説明した流れとほぼかわりませんが、異なる点を以下に示します。
1.Elastic IP は一つだけ取得
2.FortiGate の Port1(eth0)にセカンダリ IP を割り当てる必要はありません。
3.VIP の設定は次のようにします。
FortiGate の GUI→「ポリシー&オブジェクト」→「IPv4 ポリシー」で新規作成。
インスタンス
サーバ 1
インスタンス インスタンス
サーバ 3
VPC
Port1(eth0):10.0.0.99/24
Port2(eth1):10.0.1.99/2 Port3(eth2):10.0.2.99/24
Port4(eth3):10.0.3.99/24
10.0.1.10/24 10.0.2.10/24
10.0.3.10/24
Internet
Elastic IP A.A.A.A
FortiGate
AWS
A.A.A.A:3389 A.A.A.A:3391
A.A.A.A:3390
6-4 と同様にファイアウォールポリシーの設定も実施してください。
これらの設定で以下のことを実現します。
換して送信。
・TCP 3391 宛に来た RDP 通信は 10.0.3.10 に宛先変換、ポート番号も TCP 3389 に変 換して送信。
接続する場合はちょっとコツが要ります。たとえばサーバ 2 へ RDP 接続するには IP アド レスの後に「:3390」を加えポート番号を指定して接続します。サーバ 3 の場合は「:3391」
です。
接続に失敗する場合は 7-2 を参照して FortiGate のセキュリティグループを確認してくだ さい。TCP 3390,3391 を許可してください。
なお、無理にこのような設定にせず、たとえばサーバ 1 だけリモートデスクトップ接続可 能にして、それを踏み台にして他のサーバに接続するやり方の方が一般的かもしれません。
A.A.A.A:3390
Appendix 4 FAQ
Q1:
FortiGate にはトランスペアレントモード(TP)がありますが、AWS 上で TP の構成をとる ことはできますか?
A1:
AWS プラットフォームの制約上、TP は利用できません。
Q2:
AWS 上で FortiGate を HA 構成にできますか?
A2:
可能です。詳しくは以下をご覧ください。
https://docs2.fortinet.com/vm/aws/fortigate/6.0/use-case-high-availability-for- fortigate-on-aws/6.0.0/ed86f02e-a7f5-11e8-8784-00505692583a/fortigate- native-active-passive-ha
Appendix 5 参考資料
https://cookbook.fortinet.com/deploying-fortigate-aws/
https://docs2.fortinet.com/vm/aws/fortigate/6.0/about-fortigate-for- aws/6.0.0/410652e0-b161-11e8-8784-00505692583a/overview
改訂履歴
バージョン リリース日 改定内容 1.0.0 2018.9.14 初版制定