ファイアウォールが通信を遮断する原因とルール見直し方法【実務者向けチェックリスト】

  • URLをコピーしました!

ファイアウォール(FW)が通信をブロックする原因は多岐にわたり、設定漏れやポリシー衝突、不適切なゾーン設定などが典型です。本記事では、「通信が通らない時に最初に見るべきポイント」から実際のログの読み方正常化するための対処手順まで、現場対応に必要な内容を完全網羅します。

目次

■ よくある原因一覧(まずここだけチェック)

  • 許可ルールがない(明示的または暗黙的に拒否されている)
  • 送信元/宛先IPが誤っている(NAT後のアドレス含む)
  • ポート番号の誤り(TCP/UDPの違い含む)
  • ゾーン(セキュリティレベル)の設定ミス
  • NAT設定の不足により外部通信できない
  • ステートフルインスペクションでセッションが破棄されている
  • IPS/アプリ制御がブロックしている
  • ルーティングが不正でFWに届いていない

■ Step1:ファイアウォールログで「遮断理由」を確認する

まずは必ずログを確認します。FWは通常、拒否理由を詳細に記録しています。

▼ Cisco ASA の例

%ASA-4-106023: Deny tcp src inside:192.168.1.10/55932 dst outside:8.8.8.8/53 by access-group "OUTBOUND"

読み解き方:

  • inside → outside の通信が拒否
  • 理由:access-group OUTBOUND(ACL)でブロックされた

▼ FortiGate の例

date=2025-01-01 time=12:00 action=deny src=192.168.1.10 dst=8.8.8.8 service=DNS proto=17 policyid=0 msg="policy deny"

policyid=0 → 暗黙deny を意味します。

■ Step2:ACL/ポリシーが正しいか確認する

通信が「許可」されているかを ACL から確認します。

▼ Cisco 系 FW/Router

show access-lists

実行例

Extended IP access list OUTBOUND
    10 permit tcp any any eq 443
    20 permit udp any any eq 53
    30 deny   ip any any log

誤り例:実は 80/TCP が必要なのに記述がない。

修正例

access-list OUTBOUND line 15 permit tcp any any eq 80

■ Step3:送信元/宛先IP が正しいか(NAT後含む)

ファイアウォールは NAT 後の IP を評価するため、NATミスがあると必ずブロックされます。

▼ NATの変換状態を確認

Cisco ASA

show nat detail
show xlate

典型的な問題例

  • NAT ルールの順序が正しくない
  • Manual NAT が Auto NAT を上書きしてしまっている
  • アウトバウンド NAT が足りないため外に出られない

■ Step4:ポート番号・プロトコルの誤りをチェック

TCP / UDP の違いによるミスは非常に多いです。

例:DNS は UDP 53 だけでなく TCP 53 も必要

permit udp any any eq 53
permit tcp any any eq 53

→ TCP 53 を許可しておらず DNS が断続的に失敗する のはよくあるトラブル。

■ Step5:ゾーン設定(L3FW)を確認する

ゾーンベースのファイアウォールでは、ゾーン間を許可しなければ通信は通りません。

▼ Cisco ZBF の例

show zone-pair security
show policy-map type inspect zone-pair

よくある落とし穴:

  • inside → outside は許可したが、戻り(outside → inside)が許可されていない
  • ポリシーの方向が逆

■ Step6:IPS・アプリ制御がブロックしていないか

FW単体ではなく、統合セキュリティの場合は IPS/URLフィルタが原因のことも多いです。

例:FortiGate のログ

action=blocked attack="HTTP.Invalid.Hostname"

→ ACL ではなく IPS が遮断しているため、ポリシーを修正しても解決しません。

■ Step7:そもそもファイアウォールにパケットが届いているか

通信が FW まで到達していなければ、原因はルーティングまたは L2 トラブルです。

diag sniffer packet any 'host 192.168.1.10' 4

・FortiGate の sniffer ・ASA の packet-tracer などを使って確認できます。

■ 具体的なトラブル事例(現場例)

◆ 事例1:外部DNSへ名前解決できない

原因:TCP 53 の許可漏れ

%ASA-4-106023: Deny tcp ...

対処:

access-list OUTBOUND permit tcp any any eq 53

◆ 事例2:Webアクセスできない

原因:NAT の変換ミス

show xlate
(no matches)

対処:NATルールの追加

nat (inside,outside) after-auto source dynamic any interface

◆ 事事例3:サーバ間通信が一方向だけ通らない

原因:返り通信のゾーンポリシーが未設定

対処:zone-pair の逆方向を作成

zone-pair security OUTSIDE-TO-INSIDE source outside destination inside
 service-policy type inspect OUTSIDE-IN-POLICY

■ まとめ:FWトラブル時の最短解決チェックリスト

  1. ログで拒否理由を確認する
  2. ACL/ポリシーに許可ルールがあるか確認
  3. NATの変換状態が正しいか
  4. ポート番号/TCP/UDP の確認
  5. ゾーン設定(方向ミスを含む)を確認
  6. IPS/アプリ制御の影響を確認
  7. パケットが FW に届いているか確認

これらを順にチェックすることで、ファイアウォールが通信を遮断する問題はほぼ確実に特定できます。

目次