読む前にこの記事のポイントを音声で確認できます。この音声は本記事をもとにAIツール(NotebookLM)で自動生成したもので、発音や言い回しが不自然な箇所や、内容の誤りが含まれる可能性があります。理解の補助としてご利用ください。
ファイアウォールのいちばんの役割は、IP アドレスやポート番号、アプリケーションをもとに、通してよい通信だけを通すことです。FortiGate は初期状態ではすべての転送を拒否し、許可したい通信をファイアウォールポリシーとして追加していきます。
この記事では、FortiGate のファイアウォールポリシーの見方と設定項目、ポリシーを追加したときの順番、名前を付けずにポリシーを作る方法を確認します。検証時の FortiOS は 6.4.3 です。
- ポリシー一覧の2つの表示(インターフェースペアビューとシーケンス別)と、照合の順番
- 新規ポリシーの設定項目と、それぞれの意味
- ポリシーを追加したときの位置と、順番の変え方
- 名前なしでポリシーを作る設定と、ログを見るときの注意点
ファイアウォールポリシーの一覧
ポリシー&オブジェクト ›› ファイアウォールポリシー を開くと、設定されているポリシーの一覧が表示されます。
この記事の画面は、実際の画面ではなく、検証時の画面から見るポイント(設定する項目)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| 名前 | 送信元 | 宛先 | サービス | アクション | NAT | セキュリティプロファイル |
|---|---|---|---|---|---|---|
| 1Internet (port1) → LAN (port2) (1) | ||||||
| Internet_to_LAN | all | DestNAT_3389 | PING RDP SSH | ✔ 許可 | ✔ 有効化済み | SSL no-inspection |
| LAN (port2) → Internet (port1) (2) | ||||||
| Deny_Geo | all | United_States | HTTP HTTPS | ⊘ 拒否 | ||
| LAN_to_Internet | all | all | ALL | ✔ 許可 | NAPT | WEB default SSL certificate-inspection |
| 2暗黙 (1) | ||||||
| 暗黙の拒否 | all | all | ALL | ⊘ 拒否 | ||
| No. | 表示 | 意味 |
|---|---|---|
| 1 | Internet (port1) → LAN (port2) | 着信インターフェースと発信インターフェースの組み合わせごとに、ポリシーがまとめて表示されます。かっこの中はポリシーの数です。 |
| 2 | 暗黙の拒否 | どのポリシーにも一致しなかった通信を拒否する、最初からあるポリシーです。 |
この表示はインターフェースペアビューと呼ばれ、着信インターフェースと発信インターフェースの組み合わせでグループに分けて一覧にします。画面右上の切り替えで、インターフェースペアビュー と シーケンス別 を選べます。
シーケンス別にすると、グループ分けをせずに、照合される順番のまま一覧になります。FortiGate は、この一覧の上から順にポリシーを照合し、最初に一致したポリシーを適用します。それより下のポリシーは見ません。
一覧のいちばん下には、すべてのインターフェースを対象にした「暗黙の拒否」があります。設定したどのポリシーにも一致しなかった通信は、ここですべて拒否されます。
FortiOS 7.0 の管理ガイドでは、着信・発信インターフェースに any や複数のインターフェースを指定したポリシーがあると、一覧は自動でシーケンス別の表示になり、インターフェースペアビューは選べなくなると説明されています。
ポリシーの設定項目
ポリシー&オブジェクト ›› ファイアウォールポリシー で 新規作成 をクリックすると、新規ポリシーの画面が開きます。主な設定項目は次のとおりです。
| 1名前 | |
| 2着信インターフェース | + |
| 発信インターフェース | + |
| 3送信元 | + |
| 宛先 | + |
| スケジュール | always |
| 4サービス | + |
| 5アクション | ◉ 許可○ 拒否 |
| インスペクションモード | ◉ フローベース○ プロキシベース |
| 6NAT | ON |
| IPプール設定 | ◉ 発信インターフェースのアドレスを使用○ ダイナミックIPプールを使う |
| 送信元ポートの保持 | OFF |
| プロトコルオプション | PROT default |
| 7アンチウイルス | OFF |
| Webフィルタ | OFF |
| DNSフィルタ | OFF |
| アプリケーションコントロール | OFF |
| IPS | OFF |
| ファイルフィルタ | OFF |
| SSLインスペクション | no-inspection |
| 8許可トラフィックをログ | ON ◉ セキュリティイベント○ すべてのセッション |
| セッション開始時にログを生成 | OFF |
| パケットをキャプチャ | OFF |
1 名前
ポリシーの名前を入力します。名前は必須で、ほかのポリシーと同じ名前は使えません。名前を付けずに作る方法は、この記事の最後で説明します。
2 着信インターフェースと発信インターフェース
制御したい通信が入ってくるインターフェース(着信)と、出ていくインターフェース(発信)を選びます。LAN からインターネットへの通信なら、着信が LAN 側、発信がインターネット側のインターフェースです。
FortiGate はステートフルインスペクションを行うファイアウォールです。許可した通信をセッションとして記録し、その戻りのパケットはセッションに一致するので自動で許可します。そのため、戻りの通信のために、発信インターフェースから着信インターフェースへの逆向きのポリシーを作る必要はありません。
3 送信元と宛先
制御したい通信の送信元と宛先を、アドレスオブジェクトで選びます。サブネットや IP の範囲のほか、FQDN や国(ジオグラフィ)も指定できます。
参考記事:アドレスオブジェクト(サブネット・IP範囲・FQDN・ジオグラフィ)の設定と動作確認
4 サービス
制御したいプロトコルやポート番号を、サービスオブジェクトで選びます。複数のサービスをまとめたサービスグループも選べます。
5 アクション
一致した通信を通すときは 許可(CLI では accept)、止めるときは 拒否(deny)を選びます。
6 NAT
送信元 NAT を行うときに ON にします。発信インターフェースのアドレスを使用 を選ぶと、送信元の IP アドレスが発信インターフェースの IP アドレスに変換されます。プライベートアドレスの端末からインターネットに出るときによく使う設定です。
参考記事:送信元NATと動作確認
7 セキュリティプロファイル
アンチウイルスや Web フィルタなど、通信の中身を検査する機能をポリシーごとに適用します。各機能の設定は、次の記事で確認しています。
- UTM(アンチウイルス)の設定と動作確認
- UTM(Webフィルタ、URLフィルタ)の設定と動作確認
- DNSフィルタの設定と動作確認
- アプリケーションコントロールの設定と動作確認
- SSLインスペクション(deep-inspection)設定と動作確認
- SSLインスペクション(certificate-inspection)設定と動作確認
8 ロギングオプション
許可トラフィックをログ を ON にすると、このポリシーで処理した通信のトラフィックログが記録されます。記録する範囲は次の2つから選びます。
| 選択肢 | 記録されるログ |
|---|---|
| セキュリティイベント | セキュリティプロファイル(アンチウイルスや Web フィルタなど)が検知したり、反応したりした通信のログだけを記録します。CLI では set logtraffic utm です。 |
| すべてのセッション | このポリシーで処理したすべてのセッションのログを記録します。CLI では set logtraffic all です。 |
トラフィックログは ログ&レポート ›› 転送トラフィック で確認できます。
| 日付 | 送信元 | 宛先 | 結果 | ポリシーID |
|---|---|---|---|---|
| 2021/01/… | (伏せています) | (伏せています) | Deny: ポリシー違反 | LAN_to_Internet (2) |
| 2021/01/… | (伏せています) | (伏せています) | Deny: ポリシー違反 | LAN_to_Internet (2) |
| 2021/01/… | (伏せています) | (伏せています) | Deny: ポリシー違反 | LAN_to_Internet (2) |
| 2021/01/… | (伏せています) | (伏せています) | 1 Deny: ポリシー違反 | 2LAN_to_Internet (2) |
| 2021/01/… | (伏せています) | (伏せています) | Deny: ポリシー違反 | LAN_to_Internet (2) |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | 結果 | 通信が許可されたか、拒否されたかを示します。 |
| 2 | ポリシーID | どのポリシーで処理されたかを示します。ポリシーの名前と、かっこの中に ID が表示されます。 |
暗黙の拒否で拒否された通信は、初期状態ではログに記録されません。記録したい場合は、一覧で暗黙の拒否のポリシーを開き、IPv4違反トラフィックをログ を ON にします。
| 着信インターフェース | any |
| 発信インターフェース | any |
| 送信元 | all |
| 宛先 | all |
| アクション | 拒否 |
| 1IPv4違反トラフィックをログ | ON |
- 暗黙の拒否で変更できるのは、このログの設定だけです。CLI では
config log settingのset fwpolicy-implicit-log enableで同じ設定になります。 - 拒否した通信をすべて記録すると、ログの量が大きく増えることがあります。特定の通信の拒否だけを記録したいときは、その通信を拒否するポリシーを作り、そこでログを有効にする方法もあります。
ポリシーの設定例
設定例として、LAN(port2)からインターネット(port1)に向けて、Microsoft Office 365 宛ての HTTP/HTTPS 通信を許可するポリシーを作ります。送信元 NAT を有効にし、すべてのセッションのログを記録します。
ポリシーを作成する
| 1名前 | Office365-Office365-Access |
| 2着信インターフェース | LAN (port2) |
| 発信インターフェース | Internet (port1) |
| 送信元 | all |
| 3宛先 | Microsoft Office 365 |
| スケジュール | always |
| 4サービス | HTTP HTTPS |
| アクション | ◉ 許可○ 拒否 |
| インスペクションモード | ◉ フローベース○ プロキシベース |
| 5NAT | ON |
| IPプール設定 | ◉ 発信インターフェースのアドレスを使用○ ダイナミックIPプールを使う |
| 送信元ポートの保持 | OFF |
| プロトコルオプション | default |
| 6許可トラフィックをログ | ON ○ セキュリティイベント◉ すべてのセッション |
| No. | 項目 | 設定した内容 |
|---|---|---|
| 1 | 名前 | ほかと重ならない名前を付けます。 |
| 2 | 着信/発信 | LAN (port2) から Internet (port1) へ出ていく通信が対象です。 |
| 3 | 宛先 | Microsoft Office 365 宛ての通信に限ります。 |
| 4 | サービス | HTTP と HTTPS だけを許可します。 |
| 5 | NAT | 送信元を port1 の IP アドレスに変換します。 |
| 6 | ログ | このポリシーで許可したすべてのセッションを記録します。 |
追加された位置を確認する
OK をクリックすると、ポリシーは暗黙の拒否のすぐ上、つまり作ったポリシーの中ではいちばん下に追加されます。シーケンス別の表示で確認します。
| 名前 | From | To | 宛先 | サービス | アクション | NAT |
|---|---|---|---|---|---|---|
| Internet_to_LAN | Internet (port1) | LAN (port2) | DestNAT_3389 | PING RDP SSH | ✔ 許可 | ✔ 有効化済み |
| Deny_Geo | LAN (port2) | Internet (port1) | United_States | HTTP HTTPS | ⊘ 拒否 | |
| LAN_to_Internet | LAN (port2) | Internet (port1) | all | ALL | ✔ 許可 | NAPT |
| 1Office365- | LAN (port2) | Internet (port1) | Microsoft Office 365 | HTTP HTTPS | ✔ 許可 | ✔ 有効化済み |
| 暗黙の拒否 | any | any | all | ALL | ⊘ 拒否 |
ポリシーは上から照合され、一致したポリシーが適用されると、それより下のポリシーは照合されません。図8 の順番のままだと、Office 365 宛ての HTTP/HTTPS 通信は、先に LAN_to_Internet(宛先 all、サービス ALL)に一致します。追加したポリシーの設定を確実に使いたい場合は、順番を上に移す必要があります。
ポリシーの順番を変える
順番を変えるときは、移動したいポリシーを選び、移動先までドラッグ&ドロップします。
| 名前 | From | To | 宛先 | サービス | アクション |
|---|---|---|---|---|---|
| Internet_to_LAN | Internet (port1) | LAN (port2) | DestNAT_3389 | PING RDP SSH | ✔ 許可 |
| 1Office365- | LAN (port2) | Internet (port1) | Microsoft Office 365 | HTTP HTTPS | ✔ 許可 |
| Deny_Geo | LAN (port2) | Internet (port1) | United_States | HTTP HTTPS | ⊘ 拒否 |
| LAN_to_Internet | LAN (port2) | Internet (port1) | all | ALL | ✔ 許可 |
| 暗黙の拒否 | any | any | all | ALL | ⊘ 拒否 |
これで、Office 365 宛ての HTTP/HTTPS 通信は、Deny_Geo や LAN_to_Internet より先に、追加したポリシーで照合されます。
名前なしでポリシーを設定する方法
初期設定では、ポリシーには名前が必須で、名前はほかのポリシーと重ならないようにする必要があります(VDOM ごとに一意)。名前を空のまま保存しようとすると、エラーになります。
| ID | 0 |
| 1名前 | 必須フィールドです。 |
| 着信インターフェース | Internet (port1) |
| 発信インターフェース | Internet (port1) |
| 送信元 | all |
| 送信元をネゲート | OFF |
名前の付け方のルールを決めて管理する方法もありますが、名前が不要な場合は、名前を必須にする設定を外せます。
名前なしポリシーを許可する
システム ›› 表示機能設定 を開き、名前なしポリシー許可 を ON にして 適用 をクリックします。
| ロードバランス | OFF |
| ワイヤレス オープンセキュリティ | OFF |
| 脅威ウェイトトラッキング | ON |
| 差し替えメッセージグループ | OFF |
| 証明書 | ON |
| 複数インターフェースポリシー | OFF |
| 1名前なしポリシー許可 | ON GUIでのポリシー作成時に名前をつける要件を緩和します。 |
CLI では config system settings の set gui-allow-unnamed-policy enable で同じ設定になります。この設定は VDOM ごとです。VDOM を使っている場合は、対象の VDOM で設定します。
名前なしでポリシーを作る
これで名前は必須ではなくなり、名前を空のままポリシーを保存できます。一覧では名前の列が空になります。
| 名前 | From | To | 送信元 | 宛先 | スケジュール |
|---|---|---|---|---|---|
| 1 | Internet (port1) | LAN (port2) | all | DestNAT_3389 | always |
| LAN (port2) | Internet (port1) | all | all | always | |
| 暗黙の拒否 | any | any | all | all | always |
ログとポリシーを ID で対応させる
名前を付けていないので、トラフィックログでは、どのポリシーで処理されたかがポリシー ID だけで記録されます。
| ポリシーID | 送信元 | 宛先 | アプリケーション |
|---|---|---|---|
| 12 | (伏せています) | (伏せています) | DNS |
| 2 | (伏せています) | (伏せています) | DNS |
| 2 | (伏せています) | (伏せています) | DNS |
| 2 | (伏せています) | (伏せています) | DNS |
ログの ID とポリシーを照らし合わせやすいように、ポリシー一覧にも ID の列を表示しておくことをおすすめします。ポリシー一覧の見出しの左端にある歯車(テーブルを設定)をクリックし、名前 のチェックを外して ID にチェックを入れ、適用 をクリックします。
| 全てのカラムを最適に調節 | |
| テーブルをリセット |
| 1☐ 名前 | チェックを外す |
| ☑ From / ☑ To / ☑ 送信元 / ☑ 宛先 | |
| ☑ スケジュール / ☑ サービス / ☑ アクション | |
| ☑ NAT / ☑ セキュリティプロファイル / ☑ ログ / ☑ バイト | |
| ☐ AV / ☐ DNSフィルタ | |
| 2☑ ID | チェックを入れる |
| ☐ IPS |
ID の列はいちばん右に追加されます。見出しをドラッグ&ドロップしていちばん左に移すと、見やすくなります。暗黙の拒否の ID は 0 です。
| ID | From | To | 送信元 | 宛先 | スケジュール |
|---|---|---|---|---|---|
| 1 | Internet (port1) | LAN (port2) | all | DestNAT_3389 | always |
| 12 | LAN (port2) | Internet (port1) | all | all | always |
| 0 | any | any | all | all | always |
図13 のログのポリシー ID 2 は、図15 の ID 2(LAN (port2) → Internet (port1))のポリシーだとすぐにわかります。
うまくいかないとき
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| 追加したポリシーの設定が効かない | 上にある別のポリシーに先に一致している | シーケンス別の表示で順番を見る。ログのポリシー ID が、追加したポリシーになっているか。 |
| 許可したはずの通信が拒否される | どのポリシーにも一致せず、暗黙の拒否で拒否されている | 着信・発信インターフェース、送信元・宛先、サービスが通信と合っているか。ポリシーのルックアップ で一致するポリシーを調べる。 |
| 拒否された通信のログが出ない | 暗黙の拒否のログが OFF(初期状態) | 暗黙の拒否で IPv4違反トラフィックをログ が ON になっているか。 |
| 許可した通信のログが少ない | ログの範囲がセキュリティイベントになっている | すべての通信を記録したい場合は すべてのセッション を選ぶ。 |
まとめ
| 項目 | ポイント |
|---|---|
| 照合の順番 | シーケンス別の一覧の上から順に照合し、最初に一致した1つだけを適用する。 |
| 暗黙の拒否 | どれにも一致しない通信をすべて拒否する。ログは初期状態では記録されない。 |
| 戻りの通信 | ステートフルインスペクションで自動で許可されるので、逆向きのポリシーは不要。 |
| 追加したポリシー | 暗黙の拒否のすぐ上に入る。優先したい場合はドラッグ&ドロップで上に移す。 |
| ログ | セキュリティイベント(UTM が反応した通信)か、すべてのセッションかを選ぶ。 |
| 名前なしポリシー | システム ›› 表示機能設定 で許可できる。ログは ID だけになるので、一覧に ID の列を出しておく。 |
コメント