當網路連線經過防火牆失敗時,日誌(通常在 Fortinet 叫 Traffic Log,Cisco ASA 叫 Connection/Packet Log)會揭示封包在哪個環節被阻止或錯誤處理。
要檢查的內容 | 關鍵日誌欄位/訊息 | 意義與故障排除方向 |
---|---|---|
最終決策 | Action: Deny 或 Action: Drop |
問題: 流量被阻擋。排查: 檢查 Policy ID 是否匹配到一條意料之外的 Deny 規則,或根本沒有匹配到任何 Allow 規則。 |
匹配規則 | Policy ID: 15 或 Rule: Allow_Web_Access |
問題: 流量被放行,但仍有問題。排查: 確保匹配到的 Policy 是你預期的那條,若匹配錯誤,檢查 Policy 順序 是否導致流量被錯誤的規則優先處理。 |
來源/目的介面 | Source Zone/Interface: Internal 或 Destination Zone/Interface: WAN |
問題: 流量在 Zone/介面層面被錯誤處理。排查: 檢查 Policy 是否涵蓋了正確的進出 Zone,特別是 Inter-Zone (區間) 流量。 |
流量服務 | Service: TCP/80 或 Application: HTTP |
問題: 流量被錯誤的服務定義阻擋。排查: 確認 Policy 中定義的服務(如 Port 80, 443)與實際流量埠號是否一致。 |
安全檢查 | Reason: Virus Found 或 Action: Block (IPS) |
問題: 流量被 UTM/NGFW 功能(如入侵防禦或防病毒)阻止。排查: 暫時關閉或調整相關安全設定以排除故障,然後逐步縮小範圍。 |
要檢查的內容 | 關鍵日誌欄位/訊息 | 意義與故障排除方向 |
---|---|---|
SNAT 轉換結果 | Original Src: 192.168.1.10 -> Translated Src: X.X.X.X |
排查 SNAT (內部連外部): 檢查內部 IP 是否成功轉換為正確的外部 IP。如果轉換錯誤或未發生,外部伺服器可能因路由問題而無法回傳流量。 |
DNAT 轉換結果 | Original Dst: X.X.X.X -> Translated Dst: 10.0.0.5 |
排查 DNAT (外部連內部): 檢查外部公有 IP 是否正確映射到內部的伺服器私有 IP。如果映射失敗,連線將無法到達內部伺服器。 |
埠號耗盡 | Reason: Port Exhaustion 或 PAT resources unavailable |
問題: 服務流量過大,導致 SNAT 埠號耗盡。排查: 檢查是否需要增加可用的 SNAT IP 地址數量,或增加 PAT (Port Address Translation) 的埠號範圍。 |
要檢查的內容 | 關鍵指令/日誌訊息 | 意義與故障排除方向 |
---|---|---|
連線狀態 | show session 或 show conn ,尋找 State: FIN_WAIT 或 State: TIME_WAIT |
問題: 連線在邏輯上沒有被及時清除。排查: 檢查 Session 的 Timeout 時間設定,避免連線過早被清除或無謂地佔用資源。 |
資源限制 | Reason: Max Session Reached 或 State Table Full |
問題: 防火牆的連線總數達到硬體限制。排查: 可能是遭受了 DDoS 攻擊或連線數量遠超預期,需清理不活躍連線或考慮設備升級。 |
非同步路由 | ASIC: Offload Disabled (Asymmetric Route) |
問題: 流量的去程和回程經過了不同的路徑/防火牆。排查: 有狀態的防火牆無法找到回程的 Session,從而阻擋合法流量。解決: 必須修正路由,確保流量對稱。 |
總結: 在防火牆排查中,請務必遵循「從上到下」的原則:
1.確認日誌有記錄到該流量。(否則可能是路由或實體層問題)
2.確認日誌中的 Action 是 Allow。(若為 Deny,找出匹配的 Policy ID)
3.確認 NAT 轉換的結果正確。
4.檢查 Session Table 是否已建立且狀態正常。