FortiGateで通信が通らない時の一次切り分け手法|ポリシー確認・debug flow・sniffer・ログ解析の実践ガイド

FortiGate通信問題

はじめに

FortiGate通信障害の一次切り分けフロー >FortiGateを用いるネットワーク環境で通信が通らない場合、原因は複数考えられます。正しい一次切り分けを行うことで、問題の特定を迅速に行い、業務の継続性を高めることが可能です。本記事では、ポリシー確認、ログの分析、接続チェック、デバッグ方法など具体的な手順を踏まえて、通信障害の解消へと導く方法を解説します。

FortiGate通信切り分けの5ステップ
FortiGate 通信切り分けフローチャート

ポリシー設定の確認

ステップ1:ファイアウォールポリシーの確認 >通信問題の根源は多くの場合、ファイアウォールポリシーに関連しています。以下のポイントに基づいて、ポリシー設定を詳細に確認しましょう。

  • インバウンドとアウトバウンドのポリシー:特定の通信が正しい方向(発信・受信)で許可されているかを確認します。特に、デフォルトで拒否される設定になっている場合があります。
  • サービスの指定:特定のアプリケーションやサービスが必要なポートについても再確認し、不足があれば追加を検討します。
  • IPアドレスの指定:送信元・送信先デバイスのIPアドレスが正しく設定されているか、特にサブネットマスクに誤りがないかチェックします。

ポリシー確認に使用するコマンド:

show firewall policy

これで現在のポリシーのリストと状態が表示されます。ポリシーが正しい場合、次にログの確認に進みます。

ログのチェック

あわせて読みたい関連記事

FortiGateのトラブルシューティングをさらに深めたい方は、以下の記事も参考にしてください。

ステップ2:トラフィックログの確認

>トラフィックログは、どのトラフィックが正常に通過し、どれが拒否されているのかを確認するための重要な手段です。次の点を特に注意深く確認してください。

  • トラフィックログの有効化:トラフィックログが有効になっているかを確認。無効の場合、設定変更を行い再確認します。
  • 拒否されたトラフィックの分析:エラーメッセージを通じて、通信が拒否されている理由を特定。具体的には、「deny」や「drop」のエントリを見つけ、その理由を解析します。

ログの確認に使用するコマンド:

diag log filter clear
diag log read

特定の時間帯やトラフィックに基づくフィルタリングも活用し、目的の情報に絞った分析を行います。

接続の確認

ポリシーやログに問題がなければ、次に物理的な接続を確認します。以下の手順を実施します。

  • インターフェースの状態確認:特にインターフェースが「up」状態であるか確認し、関連するケーブルやスイッチもチェックします。
  • 他デバイスとの通信確認:他のデバイスとのpingテストを行い、接続の問題を特定します。

確認コマンド:

get system status
get system interface

デバッグの活用

問題が特定できない場合、デバッグ機能を利用して複雑なトラフィックの流れを確認します。この手法は特に重要です。

  • 特定IPアドレスのトラフィックを追跡:疑わしいトラフィックを細かくチェックし、通常の流れとは異なる動きを特定します。
  • トラフィックの流れをリアルタイムで確認:トラブルシューティングの際には、リアルタイムで状況把握を行います。

デバッグコマンド:

diag debug enable
diag debug flow filter addr 
diag debug flow trace start 100

デバッグ後は必ず無効にすることを忘れずに。

リセットと再確認

すべての確認後に問題が解決しない場合、設定をリセットし、再設定することも選択肢です。

  • 設定のバックアップ:変更前に現設定のバックアップを取り、元に戻せるようにします。
  • ポリシーの再設定:一旦全ポリシーを削除し、新たに設定してみてください。この場合、段階ごとに確認しながら進めることが重要です。

設定の再確認後に再度ログをチェックすることで、根本的な原因を把握する手助けになります。

まとめ

FortiGateでの通信問題は、ポリシーの再確認、トラフィックログの分析、接続確認、そしてデバッグというステップを踏むことで特定可能です。これらの手法を活用し、効率的にネットワークのトラブルを解決しましょう。特に初期設定の確認や物理接続に関する注意点は、特に見逃しやすいので注意が必要です。

よくある原因パターンと対処の優先順位

FortiGateで通信が通らない場合、現場での経験上、以下のパターンに該当するケースが大半です。原因を効率的に切り分けるために、発生頻度の高い順に確認していくことをおすすめします。

1. ポリシーの設定漏れ・順序の問題

最も多い原因がポリシー関連です。FortiGateはポリシーを上から順に評価するため、意図したポリシーより上位に広範なdenyポリシーがあると通信がブロックされます。diag firewall policy listでポリシーの評価順序を確認し、該当するポリシーIDを特定しましょう。

2. NATの設定ミス

SNAT・DNATの設定が正しくない場合、ポリシーで許可されていても通信が成立しません。特にVIP(Virtual IP)を使用している場合、送信元・宛先の変換が想定通りに動作しているか、diag firewall iprope lookupコマンドで確認します。

3. ルーティングの問題

戻りの経路が存在しないケースも見落としがちです。get router info routing-table allで経路情報を確認し、通信先からの戻りパケットが正しくFortiGateを経由するかを検証してください。非対称ルーティングが発生している場合は、セッションが確立できず通信不可となります。

4. UTM機能によるブロック

IPS、アンチウイルス、Webフィルタなどのセキュリティプロファイルが通信をブロックしている場合があります。一時的にUTMプロファイルを外して通信テストを行い、UTMが原因かどうかを切り分けます。

まとめ

FortiGateで通信が通らない場合の一次切り分けは、ポリシー確認→ログ分析→接続チェック→デバッグの順に進めるのが基本です。多くの場合、ポリシーの設定漏れやNATの設定ミスが原因であるため、まずはこの2点を重点的に確認しましょう。デバッグコマンドは強力なツールですが、本番環境では負荷がかかるため、使用後は必ずdiag debug disableで無効化することを忘れないでください。日頃からログの監視体制を整え、障害発生時に素早く対応できる準備をしておくことが重要です。

よくある質問(FAQ)

Q. FortiGateで通信が通らない場合、最初に何を確認すべき?

まずファイアウォールポリシーを確認し、該当通信を許可するポリシーが存在するか確認します。次にトラフィックログでdenyされていないかチェックし、ポリシーに問題がなければ diagnose debug flow でパケットの処理状況をリアルタイムで追跡します。

Q. debug flowコマンドの使い方は?

diagnose debug flow filter addr [対象IP] でフィルタを設定し、diagnose debug flow show function-name enable → diagnose debug enable で有効化します。パケットがどのポリシーにマッチし、どこで破棄されているかが表示されます。終了時は diagnose debug disable で必ず無効化してください。

Q. FortiGateのsnifferコマンドでパケットキャプチャするには?

diagnose sniffer packet [インターフェース名] “[フィルタ]” [詳細レベル] [パケット数] でキャプチャできます。例:diagnose sniffer packet any “host 192.168.1.1 and port 443” 4 100 で全インターフェースの該当通信を100パケット取得します。詳細レベル4はタイムスタンプ付きで実用的です。