中小網(wǎng)站如何才能對(duì)付惡意DoS攻擊
DoS(Denial of Service)是一種利用合理的服務(wù)請(qǐng)求占用過(guò)多的服務(wù)資源,從而使合法用戶無(wú)法得到服務(wù)響應(yīng)的網(wǎng)絡(luò)攻擊行為。
被DoS攻擊時(shí)的現(xiàn)象大致有:
被攻擊主機(jī)上有大量等待的TCP連接;
被攻擊主機(jī)的系統(tǒng)資源被大量占用,造成系統(tǒng)停頓;
網(wǎng)絡(luò)中充斥著大量的無(wú)用的數(shù)據(jù)包,源地址為假地址;
高流量無(wú)用數(shù)據(jù)使得網(wǎng)絡(luò)擁塞,受害主機(jī)無(wú)法正常與外界通訊;
利用受害主機(jī)提供的服務(wù)或傳輸協(xié)議上的缺陷,反復(fù)高速地發(fā)出特定的服務(wù)請(qǐng)求,使受害主機(jī)無(wú)法及時(shí)處理所有正常請(qǐng)求;
嚴(yán)重時(shí)會(huì)造成系統(tǒng)死機(jī)。
到目前為止,防范DoS特別是DDoS攻擊仍比較困難,但仍然可以采取一些措施以降低其產(chǎn)生的危害。對(duì)于中小型網(wǎng)站來(lái)說(shuō),可以從以下幾個(gè)方面進(jìn)行防范:
主機(jī)設(shè)置:
即加固操作系統(tǒng),對(duì)各種操作系統(tǒng)參數(shù)進(jìn)行設(shè)置以加強(qiáng)系統(tǒng)的穩(wěn)固性。重新編譯或設(shè)置Linux以及各種BSD系統(tǒng)、Solaris和Windows等操作系統(tǒng)內(nèi)核中的某些參數(shù),可在一定程度上提高系統(tǒng)的抗攻擊能力。
例如,對(duì)于DoS攻擊的典型種類—SYN Flood,它利用TCP/IP協(xié)議漏洞發(fā)送大量偽造的TCP連接請(qǐng)求,以造成網(wǎng)絡(luò)無(wú)法連接用戶服務(wù)或使操作系統(tǒng)癱瘓。該攻擊過(guò)程涉及到系統(tǒng)的一些參數(shù):可等待的數(shù)據(jù)包的鏈接數(shù)和超時(shí)等待數(shù)據(jù)包的時(shí)間長(zhǎng)度。因此,可進(jìn)行如下設(shè)置:
關(guān)閉不必要的服務(wù);
將數(shù)據(jù)包的連接數(shù)從缺省值128或512修改為2048或更大,以加長(zhǎng)每次處理數(shù)據(jù)包隊(duì)列的長(zhǎng)度,以緩解和消化更多數(shù)據(jù)包的連接;
將連接超時(shí)時(shí)間設(shè)置得較短,以保證正常數(shù)據(jù)包的連接,屏蔽非法攻擊包;
及時(shí)更新系統(tǒng)、安裝補(bǔ)丁。
防火墻設(shè)置:
仍以SYN Flood為例,可在防火墻上進(jìn)行如下設(shè)置:
禁止對(duì)主機(jī)非開放服務(wù)的訪問(wèn);
限制同時(shí)打開的數(shù)據(jù)包最大連接數(shù);
限制特定IP地址的訪問(wèn);
啟用防火墻的防DDoS的屬性;
嚴(yán)格限制對(duì)外開放的服務(wù)器的向外訪問(wèn),以防止自己的服務(wù)器被當(dāng)做工具攻擊他人。
此外,還可以采取如下方法:
Random Drop算法。當(dāng)流量達(dá)到一定的閥值時(shí),按照算法規(guī)則丟棄后續(xù)報(bào)文,以保持主機(jī)的處理能力。其不足是會(huì)誤丟正常的數(shù)據(jù)包,特別是在大流量數(shù)據(jù)包的攻擊下,正常數(shù)據(jù)包猶如九牛一毛,容易隨非法數(shù)據(jù)包被拒之網(wǎng)外;
SYN Cookie算法,采用6次握手技術(shù)以降低受攻擊率。其不足是依據(jù)列表查詢,當(dāng)數(shù)據(jù)流量增大時(shí),列表急劇膨脹,計(jì)算量隨之提升,容易造成響應(yīng)延遲乃至系統(tǒng)癱瘓。
由于DoS攻擊種類較多,而防火墻只能抵擋有限的幾種。
路由器設(shè)置:
以Cisco路由器為例,可采取如下方法:
Cisco Express Forwarding(CEF);
使用Unicast reverse-path;
訪問(wèn)控制列表(ACL)過(guò)濾;
設(shè)置數(shù)據(jù)包流量速率;
升級(jí)版本過(guò)低的IOS;
為路由器建立log server。
其中,使用CEF和Unicast設(shè)置時(shí)要特別注意,使用不當(dāng)會(huì)造成路由器工作效率嚴(yán)重下降。升級(jí)IOS也應(yīng)謹(jǐn)慎。
路由器是網(wǎng)絡(luò)的核心設(shè)備,需要慎重設(shè)置,最好修改后,先不保存,以觀成效。Cisco路由器有兩種配置,startup config和running config,修改的時(shí)候改變的是running config,可以讓這個(gè)配置先運(yùn)行一段時(shí)間,認(rèn)為可行后再保存配置到startup config;如果不滿意想恢復(fù)到原來(lái)的配置,用copy start run即可。
不論防火墻還是路由器都是到外界的接口設(shè)備,在進(jìn)行防DDoS設(shè)置的同時(shí),要權(quán)衡可能相應(yīng)犧牲的正常業(yè)務(wù)的代價(jià),謹(jǐn)慎行事。
利用負(fù)載均衡技術(shù):
就是把應(yīng)用業(yè)務(wù)分布到幾臺(tái)不同的服務(wù)器上,甚至不同的地點(diǎn)。采用循環(huán)DNS服務(wù)或者硬件路由器技術(shù),將進(jìn)入系統(tǒng)的請(qǐng)求分流到多臺(tái)服務(wù)器上。這種方法要求投資比較大,相應(yīng)的維護(hù)費(fèi)用也高,中型網(wǎng)站如果有條件可以考慮。
以上方法對(duì)流量小、針對(duì)性強(qiáng)、結(jié)構(gòu)簡(jiǎn)單的DoS攻擊進(jìn)行防范還是很有效的。而對(duì)于DDoS攻擊,則需要能夠應(yīng)對(duì)大流量的防范措施和技術(shù),需要能夠綜合多種算法、集多種網(wǎng)絡(luò)設(shè)備功能的集成技術(shù)。
近年來(lái),國(guó)內(nèi)外也出現(xiàn)了一些運(yùn)用此類集成技術(shù)的產(chǎn)品,如Captus IPS 4000、Mazu Enforcer、Top Layer Attack Mitigator以及國(guó)內(nèi)的綠盟黑洞、東方龍馬終結(jié)者等,能夠有效地抵擋SYN Flood、UDP Flood、ICMP Flood和Stream Flood等大流量DDoS的攻擊,個(gè)別還具有路由和交換的網(wǎng)絡(luò)功能。對(duì)于有能力的網(wǎng)站來(lái)說(shuō),直接采用這些產(chǎn)品是防范DDoS攻擊較為便利的方法。但不論國(guó)外還是國(guó)內(nèi)的產(chǎn)品,其技術(shù)應(yīng)用的可靠性、可用性等仍有待于進(jìn)一步提高,如提高設(shè)備自身的高可用性、處理速率和效率以及功能的集成性等。
最后,介紹兩個(gè)當(dāng)網(wǎng)站遭受DoS攻擊導(dǎo)致系統(tǒng)無(wú)響應(yīng)后快速恢復(fù)服務(wù)的應(yīng)急辦法:
如有富余的IP資源,可以更換一個(gè)新的IP地址,將網(wǎng)站域名指向該新IP;
停用80端口,使用如81或其它端口提供HTTP服務(wù),將網(wǎng)站域名指向IP:81。
【編輯推薦】