【注意】FortiGate RAM 2GB以下の小型モデルで ver.7.4.4からProxy機能廃止、ver.7.6.0からSSL-VPN機能廃止 被害者が散見しています> Membership

FortiGate 送信元アドレス変換 (送信元 NAT,NAPT) 設定ガイド

目次

本記事について

本記事では、Fortinet 社のファイアウォール製品である FortiGate について、送信元アドレス変換(送信元 NAT,NAPT)をするための設定方法を説明します。

本記事ではセントラル NAT 無効の場合(デフォルト)について説明しています。セントラル NAT が有効時の NAT 設定方法についてはこちらの記事を確認してください。

動作確認環境

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

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

想定するシナリオ

FortiGate の internal1 インターフェースの先に内部ネットワークが存在し、wan1 インターフェースの先にルータを挟んで外部ネットワークが存在しています(以下図参照)。ルータは内部ネットワークへのルートを持っていないため、内部ネットワークから外部ネットワークへの通信については FortiGate にて送信元アドレス変換(送信元 NAT)を行います。このとき、変換後のアドレスは FortiGate ~ ルータ間のセグメントである 192.168.179.0/24 内のアドレスにすることとします。

なお、内部ネットワークには複数の端末が存在するため、一つの変換後アドレスを複数の端末で共有するために送信元ポートも同時に変換する NAPT を行うこととします。

FortiGate では送信元 NAPT を行う方法として以下の2つの方法があります。

2つの NAPT 構成方法
  • FortiGate の発信インターフェースのアドレスを使用する方法
  • IPプールで定義したアドレスを使用する方法

以下ではそれぞれの設定方法について説明します。

インターフェースアドレスを使用した送信元 NAPT 設定方法

FortiGate では内部ネットワークから外部ネットワークへの通信について送信元 NAPT を行います。変換後のアドレスについては対象通信の発信インターフェースである wan1 のアドレスとします。

FortiGate で NAT/NAPT をする場合は対象通信を許可するファイアウォールポリシーの設定の中で NAT/NAPT の設定を行います。

GUI で設定する場合

ファイアウォールポリシーの送信元、宛先等の基本項目は通常のファイアウォールポリシーの設定と同じように設定します。

NAT/NAPT の設定は「ファイアウォール/ネットワークオプション」欄の項目で行います。

  • NAT」を有効にします
    • これにより送信元 NAT が有効になります
  • IPプール設定」では「発信インターフェースアドレスを使用」を選択します
    • これにより発信インターフェースのアドレスに変換されます
  • 送信元ポートの保持」は無効とします
    • これを有効にすると送信元ポートは変換されません。つまり純粋な NAT になります

NAT/NAPT に関する設定は以上です。
その他の項目は通常のファイアウォールポリシーの設定と同様に設定します。

CLI で設定する場合

ファイアウォールポリシーのコンフィグはconfig firewall policyです。

config firewall policy
    edit 1
        set name "intarlna1_to_wan1"
        set uuid 09ae617a-f3ec-51ee-f6f3-17ef31928d9a
        set srcintf "internal1"
        set dstintf "wan1"
        set action accept
        set srcaddr "10.1.1.0/24"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set nat enable
    next
end

発信インターフェースのアドレスへの送信元 NAT/NAPT を行うためには対象ポリシー設定でset nat enableを設定します。

config firewall policy
    edit 1
        set nat enable
    next
end

送信元ポートの保持」はfixedportで設定します。

#送信元ポートを保持する(変換しない)場合
config firewall policy
    edit 1
        set fixedport enable
    next
end

#送信元ポートを保持しない場合
config firewall policy
    edit 1
        set fixedport disable
    next
end

セッションテーブルの確認

送信元 NAPT する通信を発生させた後、FortiGate のセッションテーブルを確認してみます。

get system session listでセッションテーブルを確認できます。

FortiGate-60F # get system session list
PROTO   EXPIRE SOURCE           SOURCE-NAT       DESTINATION      DESTINATION-NAT
tcp     3596   10.1.1.124:57199 192.168.179.21:57199 183.79.219.124:443 -
tcp     3597   10.1.1.124:57203 192.168.179.21:57203 183.79.219.252:443 -
tcp     3598   10.1.1.124:57211 192.168.179.21:57211 183.79.249.252:443 -
tcp     3598   10.1.1.124:57209 192.168.179.21:57209 183.79.249.252:443 -

変換前後の送信元アドレス・ポートが確認できます。上の出力例では送信元ポートは変換されていませんが、多くの端末からの通信が発生する状況では送信元ポートも変換される場合があります。

IPプールを使用した送信元 NAPT 設定方法

FortiGate では内部ネットワークから外部ネットワークへの通信について送信元 NAPT を行います。変換後のアドレスについては指定したIPプールのアドレスとします。

FortiGate で NAT/NAPT をする場合は対象通信を許可するファイアウォールポリシーの設定の中で NAT/NAPT の設定を行います。

GUI で設定する場合

IPプールの設定

まず NAPT で使用するIPプールを設定します。

STEP
IPプール画面の表示

GUI の左側のメニューから「ポリシー&オブジェクト > IPプール」をクリックします。

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

IPプール画面で「新規作成」をクリックします。

STEP
IPプールの設定

IPプール設定画面が表示されるため各項目を設定します。

  • 名前」には任意のIPプール名を入力します
  • コメントは必要な場合のみ入力します
  • タイプ」については今回複数の端末がアドレスを共有するため「オーバーロード」にします
  • 外部IP範囲」では NAT で変換後のアドレス範囲を指定します
    • 「<開始アドレス>-<末尾アドレス>」の形式で指定します
    • 今回の例では 192.168.179.100 のみなので「192.168.179.100-192.168.179.100」と指定します
  • NAT64 は OFF にします
  • ARP リプライは ON にします

以上の設定ができたら「OK」をクリックします。

STEP
設定の確認

IPプール画面で設定が追加されたことを確認します。

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

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

ファイアウォールポリシーの送信元、宛先等の基本項目は通常のファイアウォールポリシーの設定と同じように設定します。

NAT/NAPT の設定は「ファイアウォール/ネットワークオプション」欄の項目で行います。

  • NAT」を有効にします
    • これにより送信元 NAT が有効になります
  • IPプール設定」では「ダイナミックIPプールを使う」を選択します。IPプール設定の枠が表示されるため、あらかじめ作成しておいたIPプールを指定します
    • これによりIPプールのアドレスに変換されます
  • 送信元ポートの保持」は無効とします
    • これを有効にすると送信元ポートは変換されません。つまり純粋な NAT になります

NAT/NAPT に関する設定は以上です。
その他の項目は通常のファイアウォールポリシーの設定と同様に設定します。

CLI で設定する場合

IPプールの設定

IPプールのコンフィグはconfig firewall ippoolです。

config firewall ippool
    edit "SNAT-POOL"
        set type overload
        set startip 192.168.179.100
        set endip 192.168.179.100
        set arp-reply enable
        set arp-intf ''
        set associated-interface ''
        set comments ''
        set nat64 disable
    next
end

IPプールの名前はedit項目の ID 値として設定します。

config firewall ippool
    edit "SNAT-POOL"
    next
end

IPプールの設定項目は以下の通りです。

GUI 項目CLI 項目デフォルト値
名前edit ID 値
コメントcomments
タイプtypeoverload
外部IP範囲(開始アドレス)startip
外部IP範囲(末尾アドレス)endip
NAT64nat64disable
ARP リプライarp-replyenable
config firewall ippool
    edit "SNAT-POOL"
        set comments ''
        set type overload
        set startip 192.168.179.100
        set endip 192.168.179.100
        set nat64 disable
        set arp-reply enable
    next
end

特別な要件が無い限りはstartipendipのみ明示的に設定し、その他はデフォルトで問題ありません。

config firewall ippool
    edit "SNAT-POOL"
        set startip 192.168.179.100
        set endip 192.168.179.100
    next
end

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

ファイアウォールポリシーのコンフィグはconfig firewall policyです。

config firewall policy
    edit 1
        set name "intarlna1_to_wan1"
        set uuid 09ae617a-f3ec-51ee-f6f3-17ef31928d9a
        set srcintf "internal1"
        set dstintf "wan1"
        set action accept
        set srcaddr "10.1.1.0/24"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set nat enable
        set ippool enable
        set poolname "SNAT-POOL"
    next
end

IPプールのアドレスへの送信元 NAT/NAPT を行うためには対象ポリシー設定でset nat enableset ippool enableを設定した上で、set poolnameにて使用するIPプールを指定します。

config firewall policy
    edit 1
        set nat enable
        set ippool enable
        set poolname "SNAT-POOL"
    next
end

送信元ポートの保持」はfixedportで設定します。

#送信元ポートを保持する(変換しない)場合
config firewall policy
    edit 1
        set fixedport enable
    next
end

#送信元ポートを保持しない場合
config firewall policy
    edit 1
        set fixedport disable
    next
end

セッションテーブルの確認

送信元 NAPT する通信を発生させた後、FortiGate のセッションテーブルを確認してみます。

get system session listでセッションテーブルを確認できます。

FortiGate-60F # get system session list
PROTO   EXPIRE SOURCE           SOURCE-NAT       DESTINATION      DESTINATION-NAT
tcp     3597   10.1.1.124:57259 192.168.179.100:57259 183.79.248.124:443 -
tcp     3597   10.1.1.124:57255 192.168.179.100:57255 183.79.248.124:443 -
tcp     3598   10.1.1.124:57261 192.168.179.100:57261 183.79.250.123:443 -
tcp     3564   10.1.1.124:57253 192.168.179.100:57253 204.79.197.239:443 -

変換前後の送信元アドレス・ポートが確認できます。IPプールのアドレス 192.168.179.100 に変換されていることが分かります。

以上です。


【おすすめ】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をコピーしました!

コメント

コメントする

目次