週五下班比較早,我正在家裏面玩吃雞遊戲,正在瘋狂的跑毒,這時候坐在旁邊刷着抖音的女友問了我一個奇怪的問題。nginx
分佈式拒絕服務(DDoS:Distributed Denial of Service)攻擊,是指攻擊者利用大量「肉雞」對攻擊目標發動大量的正常或非正常請求、耗盡目標主機資源或網絡資源,從而使被攻擊的主機不能爲正經常使用戶提供服務。web
在介紹DDoS以前,須要先簡單介紹一下什麼是DoS。apache
DoS(拒絕服務,Denial of Service)就是利用合理的服務請求來佔用過多的服務資源,從而使合法用戶沒法獲得服務的響應。這是早期很是基本的網絡攻擊方式。安全
舉一個簡單的例子,小王開了一家商店,店面不大,加上小王一共有三個服務員。因爲他們這裏物美價廉,工做人員的態度又比較友善,因此慢慢的生意愈來愈好。服務器
可是,這家店所在的小鎮上有一個惡霸,惡霸看到小王的店很賺錢,想要經過一些下做的手段謀取私利。因而他裝扮成普通的顧客,在小王的店裏有一搭無一搭的總和店員攀談,問問這個多少錢,問問那個怎麼賣,還時不時的給店員提供一些虛假信息,好比哪裏缺貨了之類的信息。使店員們都被他搞的團團轉。網絡
因爲惡霸是裝做普通顧客的,小王和店員們又不能完全不理他,因此就要分出一些精力來服務他,可是因爲店內的服務員有限。這樣一來,不少其餘的顧客就可能受到了冷落。負載均衡
對於網站來講,其實也是同樣的,網站就像是小王的商店同樣。對於一個網站來講,他是要搭建在服務器上面的,而因爲硬件資源有限,因此服務能力也是有限的。若是有人頻繁訪問或者長時間佔用資源,就會致使其餘用戶的體驗有所降低。分佈式
這種,利用合理的服務請求來佔用過多的服務資源,從而使合法用戶沒法獲得服務的響應的行爲,就是DoS攻擊。優化
在信息安全的三要素——保密性、完整性和可用性中,DoS針對的目標正是可用性。該攻擊方式利用目標系統網絡服務功能缺陷或者直接消耗其系統資源,使得該目標系統沒法提供正常的服務。網站
若是隻是一個惡霸的話,只要可以識別出來,而後阻止他進入店鋪就好了。
隨着惡霸被發現以後,他也想了一個辦法,此次他再也不本身一我的跑去店裏搗亂了,而是糾集了一羣無賴,而這些無賴天天都換,店鋪裏面的服務員根本識別不出來到底誰是惡霸派來的。
無賴們扮做普通客戶一直擁擠在商場,賴着不走,真正的購物者卻沒法進入;或者老是和營業員有一搭沒一搭的東扯西扯,讓工做人員不能正常服務客戶;也能夠爲商鋪的經營者提供虛假信息,商鋪的上上下下忙成一團以後卻發現都是一場空,最終跑了真正的大客戶,損失慘重。一個無賴去胡鬧,就是 DoS攻擊,而一羣無賴去胡鬧,就是 DDoS攻擊。
當服務器被DDos攻擊時,通常會出現如下現象:
被攻擊主機上有大量等待的TCP鏈接;
網絡中充斥着大量的無用的數據包;
受害主機沒法正常和外界通信;
受害主機沒法處理全部正常請求;嚴重時會形成系統死機。
對於用戶來講,在常見的現象就是網站沒法訪問。
爲了對抗 DDoS攻擊,你須要對攻擊時發生了什麼有一個清楚的理解。簡單來說,DDoS 攻擊能夠經過利用服務器上的漏洞,或者消耗服務器上的資源(例如 內存、硬盤等等)來達到目的。
通常來講,能夠用如下辦法防範:
一、若是能夠識別出攻擊源,如機器IP等,能夠在防火牆服務器上放置一份 ACL(訪問控制列表) 來阻斷這些來自這些 IP 的訪問。
二、對於帶寬消耗型攻擊,最有效的辦法那就是增長帶寬。
三、提升服務器的服務能力,增長負載均衡,多地部署等。
四、優化資源使用提升 web server 的負載能力。例如,使用 apache 能夠安裝 apachebooster 插件,該插件與 varnish 和 nginx 集成,能夠應對突增的流量和內存佔用。
五、使用高可擴展性的 DNS 設備來保護針對 DNS 的 DDOS 攻擊。能夠考慮購買 Cloudfair 的商業解決方案,它能夠提供針對 DNS 或 TCP/IP3 到7層的 DDOS 攻擊保護。
六、啓用路由器或防火牆的反IP欺騙功能。
七、付費,使用第三方的服務來保護你的網站。
八、監控網絡和 web 的流量。時刻觀察流量變化
九、保護好 DNS 避免 DNS 放大攻擊。
對於網絡攻擊,沒有任何辦法完全阻止和避免 ,只能盡最大努力不斷提升黑客攻擊成本。
參考資料:https://www.oschina.net/translate/15-ways-to-stop-ddos-attacks-in-network