ICMP協(xié)議介紹
ICMP是“Internet Control Message Protocol”(Internet控制消息協(xié)議)的縮寫。它是TCP/IP協(xié)議族的一個子協(xié)議,用于在IP主機、路由器之間傳遞控制消息??刂葡⑹侵妇W絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù),但是對于用戶數(shù)據(jù)的傳遞起著重要的作用。
我們在網絡中經常會使用到ICMP協(xié)議,只不過我們覺察不到而已。比如我們經常使用的用于檢查網絡通不通的Ping命令,這個“Ping”的過程實際上就是ICMP協(xié)議工作的過程。還有其他的網絡命令如跟蹤路由的Tracert命令也是基于ICMP協(xié)議的。
ICMP防護措施介紹:
ICMP最初開發(fā)出來是為了"幫助"網絡,經常被廣域網管理員用作診斷工具。但今天各種各樣的不充分的ICMP被濫用,沒有遵守RFC 792原先制訂的標準,要執(zhí)行一定的策略可以讓它變得安全一些。
入站的ICMP時間標記(Timestamp)和信息請求(Information Request)數(shù)據(jù)包會得到響應,帶有非法或壞參數(shù)的偽造數(shù)據(jù)包也能產生ICMP參數(shù)問題數(shù)據(jù)包,從而允許另外一種形式的主機搜尋。這仍使得站點沒有得到適當保護。
以秘密形式從主方到客戶方發(fā)布命令的一種通用方法,就是使用ICMP Echo應答數(shù)據(jù)包作為載波。 回聲應答本身不能回答,一般不會被防火墻阻塞。
首先,我們必須根據(jù)出站和入站處理整個的"ICMP限制"問題。ICMP回聲很容易驗證遠程機器,但出站的ICMP回聲應該被限制只支持個人或單個服務器/ICMP代理(首選)。
如果我們限制ICMP回聲到一個外部IP地址(通過代理),則我們的ICMP回聲應答只能進入我們網絡中預先定義的主機。
重定向通??梢栽诼酚善髦g找到,而不是在主機之間。防火墻規(guī)則應該加以調整,使得這些類型的ICMP只被允許在需要信息的網際連接所涉及的路由器之間進行。
建議所有對外的傳輸都經過代理,對內的ICMP傳輸回到代理地址的時候要經過防火墻。這至少限制了ICMP超時數(shù)據(jù)包進入一個內部地址,但它可能阻塞超時數(shù)據(jù)包。
當ICMP數(shù)據(jù)包以不正確的參數(shù)發(fā)送時,會導致數(shù)據(jù)包被丟棄,這時就會發(fā)出ICMP參數(shù)出錯數(shù)據(jù)包。主機或路由器丟棄發(fā)送的數(shù)據(jù)包,并向發(fā)送者回送參數(shù)ICMP出錯數(shù)據(jù)包,指出壞的參數(shù)。
總的來說,只有公開地址的服務器(比如Web、電子郵件和FTP服務器)、防火墻、聯(lián)入因特網的路由器有真正的理由使用ICMP與外面的世界對話。如果調整適當,實際上所有使用進站和出站ICMP的隱密通訊通道都會被中止。