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