【注意】FortiGate ver.7.4.5 からすべてのモデルでファームウェア自動更新機能がデフォルト有効になりました> Membership

FortiGate セントラル NAT による送信元 NAT・宛先 NAT 設定ガイド

目次

本記事について

本記事では、Fortinet 社のファイアウォール製品である FortiGate に関して、セントラル NAT を有効にしている場合における送信元 NAT 及び宛先 NAT の設定方法について説明します。

動作確認環境

本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。

  • FortiGate-60F
    • バージョン 7.4.4

FortiGate のセントラル NAT とは

FortiGate で送信元 NATや宛先 NAT を設定する場合、通常はファイアウォールポリシー設定の中の設定項目の一つとして NAT を設定する必要があります。つまり、ファイアウォールポリシーで許可する通信毎に NAT をするかどうかを考慮する必要があります。

一方、セントラル NAT を有効化すると、ファイアウォールポリシーと NAT をそれぞれ独立して設定できるようなります。セントラル NAT が有効の場合、送信元 NAT については NAT テーブルとして設定し、宛先 NAT についてはバーチャル IP として設定することになります。

セントラル NAT はデフォルトでは無効になっていますが必要に応じて有効化することができます。

FortiGate のデフォルトの NAT 設定の仕組みは、Cisco や Palo Alto 等のファイアウォールポリシーと NAT の設定が独立しているような機器を FortiGate にリプレイスする場合のコンフィグコンバートを難解にすることがあります。このようなケースではセントラル NAT を有効にするとコンフィグをコンバートしやすくなる可能性があります。

セントラル NAT 無効・有効時の NAT 設定の比較

項目セントラル NAT 無効 (デフォルト)セントラル NAT 有効
送信元 NATファイアウォールポリシー設定内で NAT を有効化NAT テーブルのポリシーとして設定
宛先 NATバーチャル IP を作成した上でファイアウォールポリシーの宛先にバーチャル IP を指定バーチャル IP の作成のみ
メリット簡単な NAT 設定だけであれば設定が容易複雑な NAT に対応できる
デメリットファイアウォールポリシー毎に NAT の考慮が必要
複雑な NAT には対応が難しい
ファイアウォールポリシーと NAT の適用順序の理解、意図しない NAT 適用の防止等の考慮
表:セントラル NAT 無効・有効の比較

セントラル NAT の有効化方法

GUI で設定する場合は、左側メニューの「システム > 設定」画面の「設定表示」欄にある「セントラルNAT」を有効化します。

CLI で設定する場合は、config system settingsの中のcentral-natで設定します。

config system settings
    set central-nat enable
end

セントラル NAT を有効化すると、GUI の左側メニューの「ポリシー&オブジェクト」配下に「セントラルNAT」という項目が表示されます。また、「バーチャルIP」が「DNATとバーチャルIP」に変わります。

セントラル NAT での送信元 NAT 設定方法

セントラル NAT で送信元 NAT を設定するためには、セントラル NAT テーブルにポリシーを追加します。

想定シナリオ

以下の構成にて、端末A から 端末B に通信する際に送信元アドレスを 10.1.1.33 から 192.168.179.33 に NAT します。

図:検証構成

IP プールの作成

変換後のアドレスとなる IP プールを作成します。これは後で NAT ポリシーの設定で使用します。

STEP
IPプール作成画面の表示

GUI 左メニューから「ポリシー&オブジェクト > IPプール」画面開き「新規作成」をクリックします。

STEP
IPプール設定

以下画面にて各項目を設定して「OK」をクリックします。

  • 名前:任意のプール名を入力します
  • コメント:必要な場合はコメントを入力します
  • タイプ:ポート変換を行わないスタティックNATで使用する場合は「1対1」、多対1でポート変換も行う場合は「オーバーロード」を選択します
    • 本記事のシナリオでは1対1のスタティックNATを行うため「1対1」を選択しています
  • 外部IP範囲:変換後アドレスとなるアドレス範囲を「<先頭IP>-<末尾IP>」の形式で入力します
    • 本記事のシナリオでは 192.168.179.33 のみのプールを設定しています
  • ARPリプライ:FortiGate がプールアドレスについて ARP 応答するかどうかです。基本的にはデフォルトの有効のままで問題ありません
STEP
設定確認

IPプールリストに追加されたことを確認します。

以上で IP プール設定は完了です。

CLI で IP プールを設定する場合はconfig firewall ippoolで設定します。

config firewall ippool
    edit "Pool_192.168.179.33"
        set type one-to-one
        set startip 192.168.179.33
        set endip 192.168.179.33
    next
end

アドレスオブジェクトの作成

この後設定する NAT ポリシー設定で送信元及び宛先として指定するアドレスオブジェクトを作成します。

アドレスオブジェクトの作成方法についてはこちらの記事を確認してください。

NAT ポリシーの設定

IP プールの準備ができたらセントラル NAT テーブルにポリシーを追加します。

STEP
NAT ポリシー作成画面の表示

GUI 左メニューから「ポリシー&オブジェクト > セントラルNAT」画面開き「新規作成」をクリックします。

STEP
NAT ポリシーの設定

以下画面にて各項目を設定して「OK」をクリックします。

  • 着信インターフェース:NAT 対象通信を着信するインターフェースを指定します
  • 発信インターフェース:NAT 対象通信を発信するインターフェースを指定します
  • 送信元アドレス:NAT 対象となる送信元アドレス(変換前)を指定します
  • 宛先アドレス:NAT 対象となる宛先アドレスを指定します
  • NAT:デフォルトの有効化のままにします
  • IPプール設定:変換後アドレスの指定方式を指定します
    • 発信インターフェースアドレスを使用:FortiGate のインターフェースアドレスを使用してNAPT(オーバーロード)します
    • ダイナミックIPプールを使う:IPプールを使用して NAT します。こちらを指定した場合は使用する IP プールを指定します。本記事のシナリオではこちらを選択します
  • プロトコル:NAT 対象のプロトコルを限定することができます。本記事のシナリオではすべてのプロトコルを対象とするため「いずれか」を選択します
  • コメント:必要な場合はコメントを入力します
  • このポリシーを有効化:デフォルトの有効化のままとします

上の画像の設定例では、宛先アドレスを厳密に 192.168.1.10/32 に限定していますが、wan1 へ抜ける通信を全て送信元 NAT したい場合は宛先アドレスに「all」を指定することで実現できます。

STEP
設定確認

NAT ポリシーリストに追加されたことを確認します。

以上で NAT ポリシーの設定は完了です。

CLI で NAT ポリシーを設定する場合はconfig firewall central-snat-mapで設定します。

config firewall central-snat-map
    edit 1
        set uuid 1bb46630-4671-51ef-a038-87c9e9ad9ea6
        set srcintf "internal1"
        set dstintf "wan1"
        set orig-addr "10.1.1.33/32"
        set dst-addr "192.168.1.10/32"
        set nat-ippool "Pool_192.168.179.33"
    next
end

NAT ポリシーの適用順序の調整

NAT ポリシーにはファイアウォールポリシーと同様に適用順序があります。必要に応じて適用順序を調整してください。ポリシー一覧画面で対象ポリシーの ID 欄をドラッグすることで位置を変更できます。

CLI で適用順を変更する場合は、config firewall central-snat-map内で以下コマンドを実行します。

  • move <edit番号A> after <edit番号B>
    • <edit番号A>のポリシーを<edit番号B>のポリシーの後に移動します
  • move <edit番号A> before <edit番号B>
    • <edit番号A>のポリシーを<edit番号B>のポリシーの前に移動します

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

対象通信を許可するファイアウォールポリシーを設定します。特に注意点はありませんが、送信元は変換前のアドレスを指定します。

動作確認

実際に通信を行い動作確認します。

図:検証構成

通信を発生させた後get system session listでセッション情報を確認します。

FortiGate-60F # get system session list
PROTO   EXPIRE SOURCE           SOURCE-NAT       DESTINATION      DESTINATION-NAT
icmp    21     10.1.1.33:1      192.168.179.33:1 192.168.1.10:8   -

上記の通り送信元 NAT されていることが分かります。

トラフィックログからも NAT されていることが分かります。

セントラル NAT での宛先 NAT 設定方法

セントラル NAT で宛先 NAT を設定するためには、バーチャル IP を設定します。

想定シナリオ

以下の構成にて、端末B から 192.168.179.33 宛に通信した際に宛先を端末A のアドレスである 10.1.1.33 に NAT します。

図:検証構成

バーチャル IP の設定

STEP
バーチャル IP 作成画面の表示

GUI 左側メニューから「ポリシー&オブジェクト > DNATとバーチャルIP」画面を表示し、「バーチャルIP」タブが選択されていることを確認して「新規作成」をクリックします。

STEP
バーチャル IP 設定

以下画面にて各項目を設定して「OK」をクリックします。

  • 名前:任意のバーチャルIP名を入力します
  • コメント:必要な場合はコメントを入力します
  • カラー:GUI でのアイコンの色です。必要な場合は変更します
  • ステータス:デフォルトの有効のままとします
  • インターフェース:NAT する通信を着信するインターフェースを指定します
  • タイプ:「スタティックNAT」を選択します
  • 送信元インターフェースフィルタ:送信元インターフェースでフィルタしたい場合は有効化します
  • 外部IPアドレス/範囲:変換前のアドレスを入力します
  • マップ>IPv4アドレス/範囲:変換後のアドレスを入力します
  • オプションのフィルタ:送信元アドレス・ポートでフィルタしたい場合のみ有効化します
  • ポートフォワード:ポートフォワーディングしたい場合のみ有効化します
STEP
設定確認

バーチャル IP リストに追加されたことを確認します。

以上でバーチャル IP 設定は完了です。

宛先 NAT のために必要な設定は以上です。

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

対象通信を許可するファイアウォールポリシーを設定します。注意点として、宛先は変換後のアドレスを指定します。

セントラル NAT 無効時は宛先 NAT のために宛先にバーチャル IP を指定しますが、セントラル NAT 有効時は宛先にバーチャル IP を指定することはできません。

動作確認

実際に通信を行い動作確認します。

図:検証構成

通信を発生させた後get system session listでセッション情報を確認します。

FortiGate-60F # get system session list
PROTO   EXPIRE SOURCE           SOURCE-NAT       DESTINATION      DESTINATION-NAT
icmp    55     192.168.1.10:4   -                192.168.179.33:8 10.1.1.33:4

上記の通り宛先 NAT されていることが分かります。

トラフィックログからも NAT されていることが分かります。

セントラル NAT での双方向 NAT の設定方法

双方向 NAT とは、送信元 NAT により変換された後の NAT IP に対して宛先側から通信(新規セッション)を開始した場合に、宛先変換が行われる NAT のことです。

図:双方向 NAT

例えば Cisco ルータや ASA のスタティック NAT や、Palo Alto の「双方向」オプションを有効にしたスタティック NAT は、一つの NAT 設定で双方向 NAT になるため比較的設定が容易です。

一方、FortiGate で双方向 NAT(のような動作)を実現するためには「送信元 NAT」と「宛先 NAT」の2つの設定を行う必要があります。設定方法としては、上で説明している送信元 NAT と宛先 NAT を同時に設定します。

セントラル NAT での Twice NAT の設定方法

Twice NAT とは、ある通信に対して送信元と宛先の両方を変換するような NAT のことです。

想定シナリオ

以下の構成にて、端末A から 端末B に通信する際に送信元アドレスを 10.1.1.33 から 192.168.179.33 に NAT します。同時に端末A が 10.1.1.10 宛に通信した際に宛先を端末B のアドレスである 192.168.1.10 に NAT します。

図:検証構成

送信元 NAT 用 IP プール設定および NAT ポリシー設定

これらの設定方法は上の「セントラル NAT での送信元 NAT の設定方法」で説明している方法と全く同じです。

なお Twice NAT の場合、NAT ポリシーで指定する宛先アドレスは変換後の宛先アドレスとします。(上記想定シナリオの場合は変換後宛先である 192.168.1.10)

宛先 NAT 用バーチャル IP 設定

宛先 NAT 用バーチャル IP は以下のように設定します。

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

対象通信を許可するファイアウォールポリシーを設定します。

  • 送信元変換前のアドレスを指定します
  • 宛先変換後のアドレスを指定します

動作確認

実際に通信を行い動作確認します。

通信を発生させた後get system session listでセッション情報を確認します。

FortiGate-60F # get system session list
PROTO   EXPIRE SOURCE           SOURCE-NAT       DESTINATION      DESTINATION-NAT
icmp    57     10.1.1.33:1      192.168.179.33:1 10.1.1.10:8      192.168.1.10:1

上記の通り送信元・宛先の両方が NAT されていることが分かります。

トラフィックログからも NAT されていることが分かります。

参考資料

あわせて読みたい
あわせて読みたい
あわせて読みたい
Technical Tip: How to use VIP's External IP Address for Source NAT when Central NAT is Enabled Description This article demonstrates how a VIP's external IP address can be used to perform Source NAT (SNAT) when Central-NAT is enabled. The use of Virtual I...
あわせて読みたい
Weird behavior central SNAT / DNAT VIP Since I come frome cisco, the way I have to configure NAT in Fortigate is new to me. I have a working configuration but some settings don't make sense to me... ...
あわせて読みたい
Bi-directional DNAT on FortiGate Firewalls I am a BIG supporter of Central NAT.  I believe it is in-line with the present day firewall platforms.  Even if you use Policy NAT (the original way on FortiOS)...

【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです

Amazon アフィリエイトリンク

以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。

note メンバーシップへの参加もお待ちしています!

note(ノート)
陰の構築者たちのメンバーシップ|シェイド@陰の構築者 ネットワーク設計構築をする人に役立つメンバーシップです。 独自ブログ(https://shadowgarden.org/)にてネットワークエンジニア向け情報を発信しており、その活動を応援...

【アフィリエイト】おすすめ WordPress テーマ【SWELL

当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。

また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。

技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。

レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次