本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate におけるファイアウォールポリシーの設定方法について説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.3
ファイアウォールポリシーとは
ファイアウォールでは、以下のような情報を指定して指定の通信について許可または拒否するよう設定を行います。この設定は「ファイアウォールポリシー」と呼ばれます。短縮して単に「ポリシー」と呼ばれることが多いです。
- 送信元情報
- 送信元インターフェース
- 送信元アドレス
- 宛先情報
- インターフェース
- 宛先アドレス
- 宛先ポート番号(サービス)
- アクション
- 許可または拒否
通信許可のポリシー設定を追加することを「ポート開放」や「穴あけ」と表現する人もいます。
ファイアウォールポリシー設定の準備
ファイアウォールポリシーでは送信元アドレスや宛先アドレス、サービス(宛先ポート番号)を指定しますが、これらの指定にはあらかじめ作成されているアドレスオブジェクトやサービスオブジェクトを指定します。このためファイアウォールポリシーの設定で使用する各オブジェクトを先に作成しておく必要があります。
アドレスオブジェクト及びサービスオブジェクトの設定方法については以下の記事にまとめているため必要に応じて参照してください。
ファイアウォールポリシーの設定方法
GUI でのファイアウォールポリシー設定方法
GUI にログインし左側のメニューから「ポリシー&オブジェクト > ファイアウォールポリシー」をクリックします。
表示された画面の左上にある「新規作成」をクリックします。
ファイアウォールポリシー設定画面が表示されるため各項目を設定します。
- 「名前」には任意のポリシー名を入力します。
- 「着信インターフェース」では対象通信が着信するインターフェースを指定します
- 「発信インターフェース」では対象通信の出口となるインターフェースを指定します
- 「送信元」では対象通信の送信元アドレスをアドレスオブジェクトで指定します
- 「Security posture tag」は ZTNA 機能に関わる設定です。通常は設定する必要はありません
- 「宛先」では対象通信の宛先アドレスをアドレスオブジェクトで指定します
- 「スケジュール」ではこのポリシーの有効化スケジュールを設定します。通常は「always」を設定し常に有効とします
- 「サービス」では対象通信のサービスをサービスオブジェクトで指定します
- 「アクション」では対象通信を許可するのか拒否するのかを指定します
続きの項目も設定していきます。
- 「NAT」は送信元アドレス変換です。必要な場合は有効にします
- 「IPプール」設定では NAT での変換先アドレスを設定します
- 「発信インターフェースアドレスを使用」の場合は FortiGate のインターフェースのアドレスに変換されます
- 「ダイナミックIPプールを使う」の場合はあらかじめ作成しておいたIPプールを使用します
- 「送信元ポートの保持」は NAT の際に送信元ポートを変換したくない場合に有効化します
- 「プロトコルオプション」ではプロトコル固有の処理をしたいときに設定します。通常はデフォルトのままにします
- セキュリティプロファイル欄の各項目は UTM 機能に該当します。使用したい機能があれば有効化し、該当機能のプロファイルを指定します。ファイアウォール機能のみ使用する場合は無効のままで問題ありません
更に続きの項目を設定します。
- 「許可トラフィックをログ」を有効にするとこのポリシーで許可された通信に関するログが保存されます
- 「セキュリティイベント」を選択すると UTM 機能に関するログのみが保存されます
- 「すべてのセッション」を選択すると通常のトラフィックログが保存されます
- コメントを設定したい場合はコメント欄に入力します
- 「Enable this policy」はこのポリシーの有効・無効の設定です。通常は有効とします
異常が設定できたら画面下部の④「OK」をクリックして設定を確定します。
ファイアウォールポリシー画面に戻ります。設定したポリシーがリストに追加されていることを確認します。
以上でファイアウォールポリシーの設定は完了です。
CLI でのファイアウォールポリシー設定方法
CLI でファイアウォールポリシーを設定する場合はconfig firewall policy
で設定します。
ファイアウォールポリシーのコンフィグは以下のようにedit
項目で表されます。
config firewall policy
edit 1
set name "SamplePolicy"
set uuid 0668e1b6-eb72-51ee-a1b6-a08087e65cb0
set srcintf "internal1"
set dstintf "wan1"
set action accept
set srcaddr "10.10.11.0/24" "10.10.12.0/24"
set dstaddr "all"
set schedule "always"
set service "Web Access"
set nat enable
next
end
edit ID とポリシー名の設定
ファイアウォールポリシーのedit
の ID は 1 以上の整数値となります。新規にポリシーを設定する場合は未使用の ID を選んで設定する必要があります。またポリシー名はedit
内のset name
で設定します。
config firewall policy
edit 1
set name "SamplePolicy"
next
end
インターフェース、送信元、宛先、サービス、スケジュール、アクション
GUI 項目名 | CLI 項目名 | デフォルト値(CLI) |
---|---|---|
着信インターフェース | srcintf | ー |
発信インターフェース | dstintf | ー |
送信元 | srcaddr | ー |
宛先 | dstaddr | ー |
スケジュール | schedule | ー |
サービス | service | ー |
アクション | action | deny |
config firewall policy
edit 1
set srcintf "internal1"
set dstintf "wan1"
set srcaddr "10.10.11.0/24" "10.10.12.0/24"
set dstaddr "all"
set schedule "always"
set service "Web Access"
set action accept
next
end
送信元アドレスやサービスなどで複数の値を設定する場合は上記コンフィグ例のset srcaddr "10.10.11.0/24" "10.10.12.0/24"
のように値を半角スペース区切りで指定します。
NAT の設定
NAT を有効にし、「発信インターフェースアドレスを使用」(FortiGate のインターフェースアドレスに変換) とする場合は単にset nat enable
にするだけでOKです。
config firewall policy
edit 1
set nat enable
next
end
IPプールを使用する場合は追加でset ippool enable
を設定し、さらにset poolname
で使用するプールを指定します。
config firewall policy
edit 1
set nat enable
set ippool enable
set poolname mypool
next
end
ロギングオプションの設定
ログ設定はset logtraffic
で行います。値の選択肢は以下の3つです。
all
:すべてのセッションutm
:セキュリティイベントdisable
:ロギング無効
config firewall policy
edit 1
set logtraffic all
next
end
ポリシーの有効化・無効化
ポリシーの有効化・無効化はset status <enable|disable>
で行います。
config firewall policy
edit 1
set status enable
next
end
CLI でのファイアウォールポリシー設定については以上です。
ファイアウォールポリシーの適用順序に注意
ファイアウォールポリシーには適用順序があります。
FortiGate に通信が着信したとき FortiGate はファイアウォールポリシーを設定に基づいた順番で一つずつ評価していき、一番最初に条件に合ったポリシーに基づいて通信の許可、拒否が決定されます。
例えば、拒否ポリシーの後に許可ポリシーがある場合、本当は許可したい通信が先に評価される拒否ポリシーで拒否されてしまうといったことも起こり得るため注意が必要です。
ファイアウォールポリシーの適用順序の確認
ファイアウォールポリシーの適用順は手動で順番の変更を行わない限りは設定した順に適用されますが、GUI のファイアウォールポリシー画面のインターフェースペアビュー(デフォルトの画面)では順番の変更が行われているかどうかは判断できません。
現在のポリシーの適用順がどうなっているかは GUI ではポリシー画面の「シーケンス別」画面で確認できます。ファイアウォールポリシー画面の右上の「インターフェースペアビュー」をクリックし、さらに「シーケンス別」をクリックします。
すると以下のような画面表示となります。このシーケンス別の画面で表示されている上から下の順でポリシーが適用されます。
CLI でファイアウォールポリシーの適用順を確認する場合は、config firewall policy
のコンフィグの中でのedit
項目の並び順で確認できます。上に表示されるポリシーから下に向かって適用されます。
config firewall policy
edit 1
set ...
...
next
edit 2
set ...
...
next
edit 3
set ...
...
next
edit 4
set ...
...
next
edit 5
set ...
...
next
end
ファイアウォールポリシーの適用順の変更方法
ファイアウォールポリシーの適用順は変更することができます。
ポリシーの適用順を確認できるシーケンス別の画面にて、各ポリシーの ID 欄をドラッグするとポリシーの位置を上下に移動することができます。これによりポリシーの適用順を変更できます。
CLI でポリシーの適用順を変更する場合は、config firewall policy
内で以下コマンドを実行します。
move <edit番号A> after <edit番号B>
<edit番号A>
のポリシーを<edit番号B>
のポリシーの後に移動します
move <edit番号A> before <edit番号B>
<edit番号A>
のポリシーを<edit番号B>
のポリシーの前に移動します
FortiGate-60F # config firewall policy
FortiGate-60F (policy) # move 1 after 3
FortiGate-60F (policy) # move 5 before 2
FortiGate-60F (policy) # end
FortiGate-60F #
暗黙の拒否ポリシー
FortiGate では一番最後に適用されるポリシーとして「暗黙の拒否」ポリシーが存在し、このポリシーは消したり設定変更したりすることができません。(ただしログ保存設定のみは可能です。)
暗黙の拒否ポリシーにより、どのファイアウォールポリシーにも合致しなかった通信については拒否されます。
以上です。
【おすすめ】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 のインストールも簡単にできます。
コメント