【Fortigate】バーチャルIPによる宛先NAT FortiOS6.2.4

宛先の IP アドレスを、あらかじめ決めたルールで別の IP アドレスに変換して転送するしくみを、宛先 NAT と呼びます。FortiGate で宛先 NAT を行うには、バーチャル IP(VIP)を使います。

この記事では、バーチャル IP の設定とファイアウォールポリシーへの適用、ログでの確認、そして内部から外部への通信がどう変換されるかを確認します。検証時の FortiOS は 6.2.4 です。

この記事でわかること
  1. バーチャル IP(スタティック NAT)の設定
  2. バーチャル IP を宛先にしたファイアウォールポリシーの設定
  3. セッションとログでの変換の確認と、内部から外部への通信での変換

宛先 NAT のしくみ

次の構成を考えます。外部の端末 A が、IP アドレス 10.0.0.100 に向けて通信します。FortiGate は宛先の 10.0.0.100 を 10.0.1.10 に変換し、内部の端末に転送します。

内部の端末10.0.1.10端末A外部の端末FortiGateport2port1宛先 10.0.0.100宛先 10.0.1.10VIPバーチャル IP:10.0.0.100 → 10.0.1.10
図1 宛先 NAT(10.0.0.100 → 10.0.1.10)

端末 A からは、10.0.1.10 というアドレスは見えません。あくまで 10.0.0.100 と通信しているように見えます。この機能は、主にグローバルアドレスをプライベートアドレスに変換するときに使います。

バーチャル IP の設定

バーチャル IP を作る

10.0.0.100 と 10.0.1.10 の対応づけは、バーチャル IP で設定します。ポリシー&オブジェクト ›› バーチャルIP を開き、新規作成 をクリックします。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› バーチャルIP ›› 新規バーチャルIP
VIPタイプIPv4
1名前DestNAT
コメント 
ネットワーク
インターフェースany
2タイプ◉ スタティックNAT○ FQDN
3外部IPアドレス/範囲10.0.0.100
4マップされたIPアドレス/範囲10.0.1.10
オプションのフィルタ OFF
ポートフォワード OFF
図2 バーチャル IP の設定(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1名前任意の名前です。今回は DestNAT にします。
2タイプスタティックNAT を選びます。
3外部IPアドレス/範囲変換前の宛先 IP アドレス 10.0.0.100 を入力します。
4マップされた
IPアドレス/範囲
変換後の宛先 IP アドレス 10.0.1.10 を入力します。

ポートフォワードを有効にしていないので、すべての TCP/UDP ポートが変換の対象になります。特定のポートだけを変換したいときは、ポートフォワードを有効にしてポートを指定します。

OK をクリックすると、一覧に次のように表示されます。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› バーチャルIP
名前詳細インターフェース
⊟ IPv4バーチャルIP
1DestNAT10.0.0.100 → 10.0.1.10any
⋮
図3 作成したバーチャル IP(実際の画面ではなく、表示のポイントを示したイメージです)

ファイアウォールポリシーの設定

バーチャル IP を宛先にしたポリシーを作る

ポリシー&オブジェクト ›› ファイアウォールポリシー を開き、新規作成 をクリックします。宛先にバーチャル IP を指定すると、そのポリシーに一致した通信の宛先が変換されます。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー ›› ポリシーの編集
1名前External->Internal
2着信インターフェースport1
3発信インターフェースport2
4送信元all
5宛先DestNAT
スケジュールalways
6サービスPING RDP SSH
アクション◉ 許可○ 拒否
インスペクションモード◉ フローベース○ プロキシベース
ファイアウォール / ネットワークオプション
NAT ON
IPプール設定◉ 発信インターフェースのアドレスを使用○ ダイナミックIPプールを使う
図4 外部から内部へのポリシー(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1名前任意の名前です。今回は External->Internal にします。
2着信インターフェース外部側のインターフェース port1 を選びます。
3発信インターフェース内部側のインターフェース port2 を選びます。
4送信元制限せず all にします。
5宛先バーチャル IP の DestNAT を選びます。
6サービス管理用の通信を想定して、PING、RDP、SSH にします。

このポリシーでは NAT も有効にしています。そのため、外部から内部への通信は、宛先だけでなく送信元も、発信インターフェース(port2)側のアドレスに変換されます(あとで確認するセッションの SOURCE-NAT の値です)。

動作確認

外部から 10.0.0.100 に RDP する

外部の端末 A から 10.0.0.100 にリモートデスクトップ(RDP)で接続すると、10.0.1.10 の端末のデスクトップが表示されます。

端末 A のリモートデスクトップ接続画面イメージ
接続先:10.0.0.100
10.0.1.10 のデスクトップWindows のデスクトップが表示される
図5 10.0.0.100 への RDP で 10.0.1.10 に接続できる(実際の画面ではなく、結果を示したイメージです)

変換の状態(NAT テーブル)は、CLI の get system session list で確認できます。

FortiGate

# get system session list
PROTO   EXPIRE SOURCE           SOURCE-NAT       DESTINATION      DESTINATION-NAT
-               
tcp     3598   126.XXX.XXX.XXX:49932 10.0.1.99:49932  10.0.0.100:3389  10.0.1.10:3389    
列今回の値と意味
SOURCE元の送信元(端末 A)です。
SOURCE-NAT変換後の送信元 10.0.1.99 です。ポリシーの NAT で、port2 側のアドレスに変換されています。
DESTINATION元の宛先 10.0.0.100:3389(RDP)です。
DESTINATION-NAT変換後の宛先 10.0.1.10:3389 です。バーチャル IP で変換されています。

ログ&レポート ›› 転送トラフィック でも、通信のログを確認できます。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービス結果
(伏せています)110.0.0.100RDP✓ 700.24 kB / 1.73 MB
ログ詳細(ダブルクリック)
NAT変換送信元&宛先
送信元 IP(伏せています)
送信元 NAT IP10.0.1.99
送信元インターフェースport1
2宛先 IP10.0.0.100
宛先 NAT IP10.0.1.10
ポート3389
宛先インターフェースport2
図6 外部から内部への通信のログ(実際の画面ではなく、表示のポイントを示したイメージです)

ログの詳細を見ると、宛先 IP の 10.0.0.100 が、NAT IP として 10.0.1.10 に変換されていることがわかります。

内部から外部への通信

内部の 10.0.1.10 から外部にアクセスする

内部から外部へのポリシーは、すべての送信元・宛先・サービスを許可し、NAT の IP プール設定は 発信インターフェースのアドレスを使用 にしているものとします。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー ›› ポリシーの編集
名前Internal->External
着信インターフェースport2
発信インターフェースport1
送信元/宛先all / all
サービスALL
アクション◉ 許可○ 拒否
ファイアウォール / ネットワークオプション
1NAT ON
IPプール設定◉ 発信インターフェースのアドレスを使用○ ダイナミックIPプールを使う
図7 内部から外部へのポリシー(実際の画面ではなく、設定する項目を示したイメージです)

内部の 10.0.1.10 の端末から Google にアクセスし、ログ&レポート ›› 転送トラフィック でログの詳細を確認します。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービスアプリケーション名結果
10.0.1.10www.google.comHTTPSGoogle.Services✓ 1.85 kB / 970 B
ログ詳細(ダブルクリック)
NAT変換送信元
1送信元 IP10.0.1.10
送信元 NAT IP10.0.0.100
送信元インターフェースport2
宛先 IP(伏せています)
ポート443
宛先インターフェースport1
図8 内部から外部への通信のログ(実際の画面ではなく、表示のポイントを示したイメージです。宛先はホスト名だけを示しています)

送信元 IP の 10.0.1.10 が、NAT IP として 10.0.0.100 に変換されていることがわかります。

Internet内部の端末10.0.1.10FortiGateport2port1送信元 10.0.1.10送信元 10.0.0.100VIPポリシーの NAT が有効なら、バーチャル IP の外部 IP に変換
図9 内部の 10.0.1.10 からの通信は、送信元が 10.0.0.100 に変換される

ポリシーでは、送信元を発信インターフェースのアドレスに変換する設定にしています。それでも、マップされた IP アドレス(10.0.1.10)からの通信は、バーチャル IP の対応づけどおり、外部 IP アドレス(10.0.0.100)に変換されました。スタティック NAT のバーチャル IP は、ポリシーの NAT が有効なとき、内部から外部への通信の送信元の変換にも使われます。

まとめ

通信変換設定
外部 → 内部宛先 10.0.0.100 → 10.0.1.10バーチャル IP(スタティック NAT)を作り、ポリシーの宛先に指定する
内部 → 外部送信元 10.0.1.10 → 10.0.0.100ポリシーの NAT が有効なら、バーチャル IP の対応づけどおりに変換される

コメント