拒絕 ICMP 類型 3 程式碼 4 流量 - 好還是壞?
調查到遠端辦公室的慢速 VPN 連接(Cisco ASA IPSec),我注意到我們的防火牆上有很多訪問規則匹配:
Denied ICMP type=3, code=4 from *ip_address* on interface outside
我注意到到遠端站點的跟踪路由包含相同的 IP 地址,位於我們的 ISP 和遠端站點使用的 ISP 之間。
在說之前我也看到了一條消息
No matching connection for ICMP error mesage: icmp src outside *ip_address* dst identity:*firewall_outside_ip_address* (type 3, code 4) on outside interface. Original IP payload: protocol 50 src *firewall_outside_ip_address* dst *remote_site_ip_address*
思科認為這可能是攻擊的徵兆,但我不這麼認為。
協議 50 是 ESP,它是 IPSec 的一部分。遠端站點使用遠端端的 Cisco ASA 5505 和總部的 ASA 5510 通過 IPSec VPN 連接到總部。
ICMP type=3, code=4 表示需要分片且未設置分片。
對於 IPSec ESP 數據包,設置 Don’t Fragment 是正常的。
我認為正在發生的事情是數據包離開我們的 ASA 5510,預設 MTU 為 1500。當它使用ip_address到達路由器時,路由器無法將流量傳遞到使用較小 MTU 的下一躍點,因此需要分段。路由器在設置 DF 時發送回 ICMP 數據包,但我們的防火牆阻止了這個,不是因為訪問規則,而是因為出於某種原因,我們的 ASA 5510 沒有期待這個 ICMP 消息。
我試圖弄清楚問題是出在我們 HQ ASA 5510 上的配置(儘管我們還有另外 36 個站點都工作正常)、遠端 ASA 5505(與我們的其他遠端 ASA 5505 統一配置)還是介於兩者之間他們倆。
接下來我該怎麼辦?
更新 這裡要求的是來自 HQ ASA 5510 的 ICMP 線路:
icmp unreachable rate-limit 1 burst-size 1 icmp permit any echo-reply outside icmp permit any time-exceeded outside icmp permit any unreachable outside
嘗試設置
crypto ipsec df-bit clear-df outside
。這不會解決這裡的直接問題,但可以解決它。就直接問題而言 - ASA 似乎沒有意識到 ICMP 數據包需要用作其隧道的路徑 MTU 發現。檢查
PMTUD
顯示的計數器中是否有任何內容show crypto ipsec sa
?
ICMP類型 3程式碼 4 消息是“需要分段但不設置分段”。這意味著您的設備發送的數據包大於向您發送 ICMP 消息的設備的 MTU。通常,數據包可以被分段,但設置了 DF 位。由於您拒絕入站 ICMP 消息,因此 ASA 不會收到未傳遞其數據包的通知。丟棄這些 ICMP 消息通常對性能不利,因為它本質上會導致封包遺失。
Cisco 的ASA 配置指南建議始終允許 ICMP 類型 3 消息,並特別提到如果這些消息被阻止,IPsec 可能會出現問題。您可以使用以下命令配置 ASA 報告此錯誤以允許它們:
icmp permit any unreachable outside
這只會影響發往 ASA 本身的 ICMP 不可達。如果您還需要允許它們通過ASA 訪問內部主機,則需要使用外部介面上的訪問列表來執行此操作。