本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate について、送信元アドレス変換(送信元 NAT,NAPT)をするための設定方法を説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.3
想定するシナリオ
FortiGate の internal1 インターフェースの先に内部ネットワークが存在し、wan1 インターフェースの先にルータを挟んで外部ネットワークが存在しています(以下図参照)。ルータは内部ネットワークへのルートを持っていないため、内部ネットワークから外部ネットワークへの通信については FortiGate にて送信元アドレス変換(送信元 NAT)を行います。このとき、変換後のアドレスは FortiGate ~ ルータ間のセグメントである 192.168.179.0/24 内のアドレスにすることとします。
なお、内部ネットワークには複数の端末が存在するため、一つの変換後アドレスを複数の端末で共有するために送信元ポートも同時に変換する NAPT を行うこととします。
FortiGate では送信元 NAPT を行う方法として以下の2つの方法があります。
- 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プールを設定します。
GUI の左側のメニューから「ポリシー&オブジェクト > IPプール」をクリックします。
IPプール画面で「新規作成」をクリックします。
IPプール設定画面が表示されるため各項目を設定します。
- 「名前」には任意のIPプール名を入力します
- コメントは必要な場合のみ入力します
- 「タイプ」については今回複数の端末がアドレスを共有するため「オーバーロード」にします
- 「外部IP範囲」では NAT で変換後のアドレス範囲を指定します
- 「<開始アドレス>-<末尾アドレス>」の形式で指定します
- 今回の例では 192.168.179.100 のみなので「192.168.179.100-192.168.179.100」と指定します
- NAT64 は OFF にします
- ARP リプライは ON にします
以上の設定ができたら「OK」をクリックします。
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 | ー |
タイプ | type | overload |
外部IP範囲(開始アドレス) | startip | ー |
外部IP範囲(末尾アドレス) | endip | ー |
NAT64 | nat64 | disable |
ARP リプライ | arp-reply | enable |
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
特別な要件が無い限りはstartip
とendip
のみ明示的に設定し、その他はデフォルトで問題ありません。
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 enable
とset 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 の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- 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 のインストールも簡単にできます。
コメント