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