AWSにFortiGateをデプロイしてみた(NATとFWポリシー編)

AWS Fortigate
Published: 2015-01-24

 AWSにFortiGateをデプロイしてみた(ネットワーク設定編)の続きです。AWS上に設置したFortiGateでNATとFWポリシーを試します。

VPC環境

FortiGate-VM

項目 ID プライベートIP EIP
ENI(Exernal) eni-921a6ecb 10.175.1.195 54.65.151.103
ENI(internal) eni-6304703a 10.175.2.195

CIDR

項目
VPC CIDR 10.175.0.0/16
external_subnet 10.175.1.0/24
internal_subnet 10.175.2.0/24

external_subnetのroute-table

Destination Target
10.175.0.0/16 local
0.0.0.0 IGW

internal_subnetのroute-table

Destination Target
10.175.0.0/16 local
0.0.0.0/0 eni-6304703a

 internal_subnetに配置されたインスタンスとインターネットとの通信が、FortiGate-VMを経由するよう、デフォルトルートをFortiGate-VMのinternal側ENIに向けます。

動作確認用インスタンス

 internal_subnetにAmazon_linuxを設置します。IPアドレスは10.175.2.152です。

事前準備

 FortiGate-VMの2つのENIで「Source/dest. check」をfalseにします。なお、インスタンスを右クリックしてSource/dest. checkをfalseにしても、2本目のENIはenableのままでした。Source/dest. checkは、インスタンスではなくENIに対して実施しましょう。

ポートフォワード

 まずはポートフォワードからです。internalに設置されているEC2:10.175.2.152のSSHを、EIP:54.65.151.103の11022で外部公開します。

 クライアントとサーバだけに注目した通信要件は、「54.65.151.103の11022」を「10.175.2.152の22」にポートフォワードするになりますので、以下の様に設定したのですが、通信できずドツボにはまりました。

enter image description here

 正しい通信要件は、「EIP:54.65.151.103の11022」をAWSが変換した「10.175.1.195の11022」を、ForiGateが「10.175.2.152の22」にポートフォワードするになりますので、以下の様に設定する必要があります。

enter image description here

スタティックNAT

 次はスタティックNATです。FortiGate-VMとは異なるグローバルIPアドレスでEC2を外部公開します。

 external側のENIに10.175.1.0/24のIPアドレス(10.175.1.194)を追加します。そしてEIPをもう一つ取得し、10.175.1.194に割り当てます。

enter image description here

これにより、FortiGate-VMのパラメータは以下になります。

FortiGate-VM

項目 ID プライベートIP EIP
ENI(Exernal) eni-921a6ecb 10.175.1.195 54.65.151.103
ENI(Exernal) eni-921a6ecb 10.175.1.194 54.64.192.17
ENI(internal) eni-6304703a 10.175.2.195

 そして、新規取得した54.64.192.17を割り当てた10.175.1.194を利用して、バーチャルIPアドレスを作成します。

enter image description here

ポリシー

 ネットワークやNATの設定はAWSの仕様を意識する必要がありますが、ポリシーの設定はFortiGate-VM単体の設定ですので、普通のFortiGateと同じです。

サンプル   enter image description here

このように設定すると、以下の動作になります。

  • 外部から54.64.192.17へのすべての通信が、AWSによって10.175.1.194にNATされ、さらにFortiGate-VMでNATされてEC2:10.175.2.152に到達する
  • EC2:10.175.2.152から外部へのアクセスは、FortiGateによって10.175.1.194でNATされ、さらにAWSによって54.64.192.17にNATされて外部に到達する。
  • internal_subnetから外部へのアクセスは、FortiGateによって10.175.1.195でNATされ、さらにAWSによって54.65.151.103にNATされて外部に到達する。
  • それ以外の通信はすべて拒否する。

IPアドレスの制限

 バーチャルIP用のアドレスを確保するためには、ENIにIPアドレスを追加割り当てする必要があります。ただし、ENIに割り当てられるIPアドレスはインスタンスタイプによって上限があります。(参考:インスタンスタイプあたりの ENI ごとのプライベート IP アドレス

 今回利用しているt3.mediumは最大6個になります。EIPはENIのプライベートアドレスに割り当てる必要がありますので、取得できるEIPの数も最大6個になってしまいます。つまり、このt3.mediumのFortiGate-VMを利用すると、最大6個のIPアドレスしか外部公開できなくなります…インスタンスタイプを上げても最大30個です。これは微妙…

enter image description here