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