本記事について
本記事では、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 の有効化方法
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 ポリシーの設定で使用します。
GUI 左メニューから「ポリシー&オブジェクト > IPプール」画面開き「新規作成」をクリックします。
以下画面にて各項目を設定して「OK」をクリックします。
- 名前:任意のプール名を入力します
- コメント:必要な場合はコメントを入力します
- タイプ:ポート変換を行わないスタティックNATで使用する場合は「1対1」、多対1でポート変換も行う場合は「オーバーロード」を選択します
- 本記事のシナリオでは1対1のスタティックNATを行うため「1対1」を選択しています
- 外部IP範囲:変換後アドレスとなるアドレス範囲を「<先頭IP>-<末尾IP>」の形式で入力します
- 本記事のシナリオでは 192.168.179.33 のみのプールを設定しています
- ARPリプライ:FortiGate がプールアドレスについて ARP 応答するかどうかです。基本的にはデフォルトの有効のままで問題ありません
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 テーブルにポリシーを追加します。
GUI 左メニューから「ポリシー&オブジェクト > セントラルNAT」画面開き「新規作成」をクリックします。
以下画面にて各項目を設定して「OK」をクリックします。
- 着信インターフェース:NAT 対象通信を着信するインターフェースを指定します
- 発信インターフェース:NAT 対象通信を発信するインターフェースを指定します
- 送信元アドレス:NAT 対象となる送信元アドレス(変換前)を指定します
- 宛先アドレス:NAT 対象となる宛先アドレスを指定します
- NAT:デフォルトの有効化のままにします
- IPプール設定:変換後アドレスの指定方式を指定します
- 発信インターフェースアドレスを使用:FortiGate のインターフェースアドレスを使用してNAPT(オーバーロード)します
- ダイナミックIPプールを使う:IPプールを使用して NAT します。こちらを指定した場合は使用する IP プールを指定します。本記事のシナリオではこちらを選択します
- プロトコル:NAT 対象のプロトコルを限定することができます。本記事のシナリオではすべてのプロトコルを対象とするため「いずれか」を選択します
- コメント:必要な場合はコメントを入力します
- このポリシーを有効化:デフォルトの有効化のままとします
上の画像の設定例では、宛先アドレスを厳密に 192.168.1.10/32 に限定していますが、wan1 へ抜ける通信を全て送信元 NAT したい場合は宛先アドレスに「all」を指定することで実現できます。
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 の設定
GUI 左側メニューから「ポリシー&オブジェクト > DNATとバーチャルIP」画面を表示し、「バーチャルIP」タブが選択されていることを確認して「新規作成」をクリックします。
以下画面にて各項目を設定して「OK」をクリックします。
- 名前:任意のバーチャルIP名を入力します
- コメント:必要な場合はコメントを入力します
- カラー:GUI でのアイコンの色です。必要な場合は変更します
- ステータス:デフォルトの有効のままとします
- インターフェース:NAT する通信を着信するインターフェースを指定します
- タイプ:「スタティックNAT」を選択します
- 送信元インターフェースフィルタ:送信元インターフェースでフィルタしたい場合は有効化します
- 外部IPアドレス/範囲:変換前のアドレスを入力します
- マップ>IPv4アドレス/範囲:変換後のアドレスを入力します
- オプションのフィルタ:送信元アドレス・ポートでフィルタしたい場合のみ有効化します
- ポートフォワード:ポートフォワーディングしたい場合のみ有効化します
バーチャル 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 のことです。
例えば 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 されていることが分かります。
参考資料
【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- HA (冗長構成) 設定
- FortiGate HA モードの Active-Passive と Active-Active の違いを解説します
- FortiGate HA(冗長構成)の概要と設定ガイド【詳しく解説】※note記事
- FortiGate HA 構成時のコンフィグ同期の仕様について解説します
- FortiGate HA 構成時の NTP,Syslog,SNMP 等の送信元インターフェースを解説 [ha-direct 設定]
- FortiGate HA 構成時の仮想 MAC アドレスについて解説します
- FortiGate HA ハートビート送信間隔と障害判定しきい値の設定ガイド
- FortiGate HA 構成時のバックアップ及びリストア実施ガイド
- FortiGate HA 構成でのモニタインターフェースダウン時の通信断時間について解説
- FortiGate HA 構成に関するQ&A 【良くありそうな疑問集】
- VDOM (バーチャルドメイン) 設定
- トランスペアレントモード設定
- システム系設定
- 管理者アカウント設定
- 時刻・NTP 設定
- ロギング・Syslog 送信設定
- SNMP 設定
- DHCP サーバ機能設定
- Proxy サーバ機能設定
- アラートメール送信
- ネットワーク系設定
- インターフェース設定
- ルーティング設定
- DNS 設定
- NAT 及び NAPT 設定
- ファイアウォール系設定
- アドレス設定
- サービス設定
- ファイアウォールポリシー設定
- ゾーンを使用したポリシー設定
- VPN 系設定
- Tips
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。
note メンバーシップへの参加もお待ちしています!
【アフィリエイト】おすすめ WordPress テーマ【SWELL】
当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。
また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。
技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。
レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。
コメント