題:
防火牆阻止ICMP是個壞主意嗎?
Justin Ethier
2012-10-17 06:57:15 UTC
view on stackexchange narkive permalink

這個問題的靈感來自這個答案,其中部分指出:

通用防火牆清單文件通過刪除我原本不允許的所有內容(除此之外) ICMP。請不要關閉ICMP。

但是,允許ICMP防火牆確實是一個好習慣嗎?安全隱患是什麼?在某些情況下應關閉ICMP嗎?

我敢肯定還有很多其他原因,但是有一個原因-這使遠程管理成為噩夢。
這是“除非您是網絡之神,並且真的知道您在做什麼,否則請不要搞亂它”。
IMO,此規則適用於整個防火牆,而不僅僅是ICMP。
另請參閱:[停止破壞Internet!](http://serverfault.com/a/84981/6800)
RFC 4890:http://www.ietf.org/rfc/rfc4890.txt和RFC草案:https://datatracker.ietf.org/doc/draft-ietf-opsec-icmp-filtering/history/ ...兩者均提供有關如何同時過濾ICMPv4和ICMPv6數據包的詳細建議。
我使用iptables阻止了本地網絡的所有傳入流量,以避免未經授權訪問計算機上運行的服務。但是有時候我注意到登錄到GitHub之類的網站時被凍結了(例如第一次登錄使用乾淨的Firefox配置文件)。Wireshark顯示的ICMP數據包帶有消息“目的地不可達(需要分段)”。看來問題出在我的防火牆規則阻止了路由器所需要的ICMP,因為它在允許ICMP時是固定的。
五 答案:
Scott Pack
2012-10-17 08:08:09 UTC
view on stackexchange narkive permalink

與其他IP協議相比,ICMP很小,但是它確實提供了許多不同的功能。 ICMP的核心是IP的調試,故障排除和錯誤報告機制。這使其具有不可思議的價值,因此需要大量的考慮才能將其關閉。就像將 > / dev / null 2>&1 粘貼到所有cron條目的末尾一樣。我真的在談論ping和traceroute。轉換為3種類型

  • 0-迴聲應答(ping請求)
  • 8-迴聲請求(ping請求)
  • 11-超出時間

這是16種中的3種。讓我們看一下其他一些可用的ICMP類型。

  • 4-源猝滅(由路由器發送)要求主機減慢其傳輸速度)
  • 3-無法到達目的地(包括16種不同類型的消息,從報告碎片問題到防火牆報告端口已關閉)

兩者對於保持非惡意主機在網絡上正常運行而言都是無價的。實際上,有兩種(可能更多,但對我來說最明顯)是非常好的情況,您不想想要限制ICMP。

  • 路徑MTU發現-我們結合使用“不要分段”標誌和類型3代碼4(“目標無法到達-需要分段,並且設置了DF標誌”)來確定主機之間路徑上的最小MTU。這樣,我們就可以避免傳輸過程中出現碎片。
  • Active Directory要求客戶端ping域控制器以拉低GPO。他們使用ping來確定“最接近的”控制器,如果沒有響應,則假定沒有一個控制器足夠接近。因此不會發生政策更新。

這並不是說我們必須讓所有事物都開放給全世界看。使用ICMP可以進行偵查 ,這通常是封鎖的原因。可以使用ping來確定主機是否確實在運行,或者可以使用超時(作為跟踪路由的一部分)來規劃網絡體系結構,也可以使用Rory禁止重定向(類型5代碼0)來更改主機的默認路由。 / p>

考慮到所有這些,我的建議是,一如既往,對您的保護採取審慎周到的方法。整體上阻止ICMP可能不是最好的主意,但選擇要阻止的對象並往返於其中可能會為您提供所需的信息。

小細節:雖然ICMP在IPv4中是可選的,但IPv6要求它正常運行。 ICMP的角色已發生很大變化。輕量級有關它的信息:http://blogs.cisco.com/security/icmp-and-security-in-ipv6/
@Mike哦,可以肯定,我猜不清楚,但是我在特別談論v4。 IPv6是一種與眾不同的野獸,我們在設計和保護v6網絡時確實需要將其視為完全不同的協議。
+1“ * ...或Rory禁止... *”我實際上大笑了。
-1
Source Quench已被正式棄用([RFC 6633](http://tools.ietf.org/html/rfc6633))。而且幾十年來幾乎沒有在互聯網上見過。
ICMP重定向也被很好地放棄了,但是有時會發生。它提供了一個很好的例子,說明了ICMP用戶的情況。鏈接的RFC很有趣,但也很新。自該版本發布以來,我希望正在使用的大量網絡堆棧尚未更新。
[RFC 5927第6.2節](http://tools.ietf.org/html/rfc5927#section-6.2)指出,自2005年或更早以來,Source Quench已從許多操作系統中刪除,這是基於其對擁塞控制的無用性及其潛在用於減少吞吐量的盲目攻擊。
僅供參考:不要阻塞對IPv6的ping請求,因為該請求用於仍來自使用Teredo來訪問IPv6網絡的IPv4網絡上的人的傳入連接
來自@Mike's註釋的Cisco文檔已存檔在https://web.archive.org/web/20190907224403/https://blogs.cisco.com/security/icmp-and-security-in-ipv6
tylerl
2012-10-17 07:52:58 UTC
view on stackexchange narkive permalink

ICMP存在是有原因的,並非所有原因都是 ping 。這是“元”協議,用於傳達有關網絡本身的控制消息。請查看Wikipedia上的 ICMP,以更好地了解其含義和用途。

其他ICMP消息還包括目標主機無法訪問,需要分段,擁塞控制,超出了TTL,IP協議錯誤以及許多其他錯誤。

網絡將在沒有ICMP的情況下運行-面對丟包現象的抵禦能力是IP的核心優勢之一-但運行速度會更慢,效率低下,並且沒有這些信號的好處來幫助您診斷和解決問題。

ICMP的安全性問題往往是比較模糊的“信息披露”問題。例如。如果您的路由器將ICMP消息發送回某人,則表明某人知道您有一台路由器。攻擊者可能知道自己擁有路由器是您擔心的事情,或更可能不是。但是,為了以防萬一,出於安全考慮,安全性研究往往傾向於保持沉默,以防萬一。

有時,操作系統中存在與ICMP相關的“死亡之ping”樣式漏洞。當前,在任何主流操作系統中都不存在。但是,為了以防萬一,出於安全考慮,安全倡導者再次犯錯。

您錯了,但我同意您的看法,即普通用戶/管理員不應阻止ICMP。 ICMP存在多個關鍵的安全問題。主要問題是控制級反饋(ttl-exceed)不僅由目的地發送,而且也由中間躍點發送,它可用於基於特徵(初始TTL,IP標誌以及更重要的IP)的設備指紋識別ICMP消息的ID)。此外,ICMP消息還可以作為防火牆遍歷的反饋,結合TCP窗口檢查防火牆,您可以執行序列號推斷攻擊。
brandizzle
2016-07-17 10:05:44 UTC
view on stackexchange narkive permalink

老實說,過濾掉路由器級和軟件防火牆級的某些出站ICMP作為額外的安全層是明智的。

與停止DoS或DDoS無關,但是惡意人員仍然在試圖破壞網絡之前,請使用ICMP嘗試獲取盡可能多的網絡信息。

我並不是說他們僅使用ICMP,但這是他們使用的少數幾種數據包類型之一,具體取決於如果您打開閘門,它們可以在很短的時間內獲得大量信息。

花一些時間去Google上查找有關NMAP和其他一些程序如何將ICMP用作信息的信息收集信息的資源,然後根據您認為對保護自己和網絡所必需的條件來進行過濾。

如果有可能,請建立一個內部測試網絡(我個人購買了一個備用wifi路由器,便宜的一台,並有一台輔助計算機作為防火牆來測試我的所有路由器/ ipchains /軟件防火牆設置b在我為家庭和僱用我以保護其網絡的任何客戶而在整個主要網絡中使用它們之前。

我強烈鼓勵人們嘗試對端口掃描以及如何自行突破防火牆進行一些研究。網絡,以便他們可以更好地保護自己和所幫助的任何家庭。

以下是我曾經使用並推薦給朋友的一些資源。 Sans Information Security如何使用ICMP進行偵察

還有

InfoSec Institute ICMP攻擊

某些攻擊不再可行,但存在新的攻擊形式Smurf之所以仍然有效,是因為程序員能夠重新編碼原始攻擊並改變其工作方式和使用資源。

Dig around和google是您與Stack Exchange和duckduckgo搜索引擎一起的朋友對於google可能會謹慎過濾並運用您的智慧的資源而言,真是太好了!

我從事個人計算機技術已有22年,並且是10年來的網絡安全專家,目前正在參加ECH和CPTS的學習,完成這些課程後,我將在攻讀進攻性安全課程。

希望這將有幫助,其他人會發現這些信息非常有用,因為我可以還原我對此系統所做的備份,並且在此問題上找到其他鏈接和資源,我將更新此答案。

Tapio Haapala
2016-08-17 02:44:34 UTC
view on stackexchange narkive permalink

阻止ICMP不僅無用,而且在大多數情況下也是有害的。如果您不確定自己在做什麼,特別是為什麼,則有幾個原因為什麼您不應該阻止ICMP。是的,icmp ping可以幫助其他人“分析”您的網絡。但是說實話,如果您有任何打開的tcp服務,您將被看到。如果您只是丟包,就會看到。如果您以錯誤的方式回應,將會看到您。因此,如果您認為必須將我們的重要服務器隱藏在網絡中,因為這樣會使它們更加安全,那麼您的主機將成為更明亮的目標。只有無數種方法可以解決該問題,從而破壞mtu路徑發現,擁塞控制等,甚至使服務器脫穎而出。因此,如果您沒有足夠的理由這樣做,請不要在icmp中阻塞icmp,然後請仔細閱讀並閱讀icmp協議規範,以便您了解自己的所作所為和原因。是的,如果不確定您是否有舊內核,最好在網絡邊緣阻止icmp重定向。但是另一方面,更新服務器和其他主機(解決實際問題)比將它們隱藏在總是有人會發現您的錯誤的地毯下更好。

lone
2020-02-25 18:21:06 UTC
view on stackexchange narkive permalink
從協議結構中可以看出,這一切都取決於使用它的區域,並且由於防火牆能夠根據類型和代碼參數進行操作,因此您可以決定要通過什麼防火牆以及不通過什麼防火牆。,如果防火牆接收到ICMP Echo請求,並且讓您知道目標主機是否處於活動狀態也沒有問題,則防火牆還必須能夠讓Echo Reply通過。但是請注意:ICMP數據包必須經過DPI處理,即它們必須與數據包的規範一致:如果ICMP數據包通過傳入/傳出防火牆,並且網絡中的一台或多台主機上存在惡意軟件,則這些主機可以從C&C服務器獲取命令並進行滲透信息,一般來說,在邊界路由器上使用它並不明智,但是對於內部網絡診斷,是的。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...