防火墻防止DDOS SYN Flood原理詳細(xì)介紹

    DoS(Denial of Service拒絕服務(wù))和DDoS(Distributed Denial of Service分布式拒絕服務(wù))攻擊是大型網(wǎng)站和網(wǎng)絡(luò)服務(wù)器的安全威脅之一。2000年2月,Yahoo、亞馬遜、CNN被攻擊等事例,曾被刻在重大安全事件的歷史中。SYN Flood由于其攻擊效果好,已經(jīng)成為目前最流行的DoS和DDoS攻擊手段。 SYNFlood利用TCP協(xié)議缺陷,發(fā)送了大量偽造的TCP連接請(qǐng)求,使得被攻擊方資源耗盡,無(wú)法及時(shí)回應(yīng)或處理正常的服務(wù)請(qǐng)求。一個(gè)正常的TCP連接需要三次握手,首先客戶端發(fā)送一個(gè)包含SYN標(biāo)志的數(shù)據(jù)包,其后服務(wù)器返回一個(gè)SYN/ACK的應(yīng)答包,表示客戶端的請(qǐng)求被接受,最后客戶端再返回一個(gè)確認(rèn)包ACK,這樣才完成TCP連接。在服務(wù)器端發(fā)送應(yīng)答包,如果客戶端不發(fā)出確認(rèn),服務(wù)器會(huì)等待到超時(shí),期間這些半連接狀態(tài)都保存在一個(gè)空間有限的緩存隊(duì)列中;如果大量的SYN包發(fā)到服務(wù)器端后沒(méi)有應(yīng)答,就會(huì)使服務(wù)器端的TCP資源迅速耗盡,導(dǎo)致正常的連接不能進(jìn)入,甚至?xí)䦟?dǎo)致服務(wù)器的系統(tǒng)崩潰。


    防火墻通常用于保護(hù)內(nèi)部網(wǎng)絡(luò)不受外部網(wǎng)絡(luò)的非授權(quán)訪問(wèn),它位于客戶端和服務(wù)器之間,因此利用防火墻來(lái)阻止DoS攻擊能有效地保護(hù)內(nèi)部的服務(wù)器。針對(duì)SYN Flood,防火墻通常有三種防護(hù)方式:SYN網(wǎng)關(guān)、被動(dòng)式SYN網(wǎng)關(guān)和SYN中繼。


    SYN網(wǎng)關(guān)防火墻收到客戶端的SYN包時(shí),直接轉(zhuǎn)發(fā)給服務(wù)器;防火墻收到服務(wù)器的SYN/ACK包后,一方面將SYN/ACK包轉(zhuǎn)發(fā)給客戶端,另一方面以客戶端的名義給服務(wù)器回送一個(gè)ACK包,完成TCP的三次握手,讓服務(wù)器端由半連接狀態(tài)進(jìn)入連接狀態(tài)。當(dāng)客戶端真正的ACK包到達(dá)時(shí),有數(shù)據(jù)則轉(zhuǎn)發(fā)給服務(wù)器,否則丟棄該包。由于服務(wù)器能承受連接狀態(tài)要比半連接狀態(tài)高得多,所以這種方法能有效地減輕對(duì)服務(wù)器的攻擊。


    被動(dòng)式SYN網(wǎng)關(guān)設(shè)置防火墻的SYN請(qǐng)求超時(shí)參數(shù),讓它遠(yuǎn)小于服務(wù)器的超時(shí)期限。防火墻負(fù)責(zé)轉(zhuǎn)發(fā)客戶端發(fā)往服務(wù)器的SYN包,服務(wù)器發(fā)往客戶端的SYN/ACK包、以及客戶端發(fā)往服務(wù)器的ACK包。這樣,如果客戶端在防火墻計(jì)時(shí)器到期時(shí)還沒(méi)發(fā)送ACK包,防火墻則往服務(wù)器發(fā)送RST包,以使服務(wù)器從隊(duì)列中刪去該半連接。由于防火墻的超時(shí)參數(shù)遠(yuǎn)小于服務(wù)器的超時(shí)期限,因此這樣能有效防止SYN Flood攻擊。


    SYN中繼防火墻在收到客戶端的SYN包后,并不向服務(wù)器轉(zhuǎn)發(fā)而是記錄該狀態(tài)信息然后主動(dòng)給客戶端回送SYN/ACK包,如果收到客戶端的ACK包,表明是正常訪問(wèn),由防火墻向服務(wù)器發(fā)送SYN包并完成三次握手。這樣由防火墻做為代理來(lái)實(shí)現(xiàn)客戶端和服務(wù)器端的連接,可以完全過(guò)濾不可用連接發(fā)往服務(wù)器。

 

北大青鳥(niǎo)網(wǎng)上報(bào)名
北大青鳥(niǎo)招生簡(jiǎn)章