伺服器被DDOS攻擊最佳解決方案是什麼?報網警有用么?有沒有試過報網警的?
我給你說點低成本、可以快速部署落地的實戰對抗ddos的手段,那種動輒幾萬幾十萬上百萬的商用方案我就不說了,網上宣傳手冊一大堆,也用不著我說。
首先,一切開始之前的第一步,先了解你具體遇到的是什麼類型的攻擊,然後對症下藥。
一,增加資源配給(被動防禦)
1.通過dns智能分流,將攻擊就流量平均分布到負載集群中的不同節點上,這個方法操作非常簡單,大部分dns服務提供商都提供根據各種邏輯(地理位置、會話cookie等)做出的分流方案,具體設置參見dns服務提供商控制面板。
這個方案適合基於http https協議的短連接服務,不適用於絕大部分基於tcp封裝的長連接服務。
2.使用CDN基礎設施抵禦ddos,這個方案相當於CDN提供商幫你去做前端的負載均衡、節點分流工作,攻擊者打出的流量直接打到CDN基礎設施上。部署操作也十分簡單,cloudflare等cdn提供商的免費方案里就包含了一定的抗ddos能力,只要把你的網站接入cdn即可。
這個方案只適合使用http https的服務,除websocks之外的任何長連接都不適用。
3.自建防禦集群。
先做一個單機節點,使用針對高並發優化的linux(具體優化方法百度搜linux高並發優化),安裝開源防火牆(比如CSF,親測效果不錯),部署完後使用docker AMI等快速鏡像分發技術複製成集群,如果是雲上環境,結合使用彈性集群自動擴張收縮,集群規模從1台到50台自動調整。
防禦集群可以放在最前端,也可以放在負載均衡後面,集群後面是業務伺服器。
這個方案適合各種無法使用CDN的長連接服務,本人用這個方案輕鬆抵禦10G峰值syn flood,成本就是幾台虛機錢,如果配上彈性集群功能,過了峰值自動收縮成單機,成本非常低。
二,包過濾(主動防禦)
HTTP/HTTPS服務沒有任何自己做包過濾的必要。
如果是長連接服務,可以自己做包過濾,方法是自己寫一個埠轉發服務,抓取少量位元組的傳入數據,判斷是否符合你自己正常服務協議的規則,舉個例子,你的協議結構是packet size + service code + crc + packet,這種情況只需要接受最多8個位元組就能知道是否是惡意包,因為絕大部分攻擊者沒那個心思分析你的協議,按照你的協議訂製攻擊包,發送的基本都是垃圾數據,這樣就能把絕大部分的攻擊連接拉黑IP、中斷連接。
這個方案非常原始,但是針對 專門發垃圾數據佔用你服務端資源的攻擊特別有效。
這個方案不適合完成TCP握手之前的攻擊,比如syn flood。
現在的DDoS,基本都是流量型的,我接手的case都是這樣。
很少有CC,CC太容易防禦了,現在的雲供應商,不少都送基礎版WAF。
而且大多數網站都有熔斷、緩存、CDN,CC不一定能找到很消耗資源的請求。
其實最佳方案是錢,很多很多的錢,堆資源,堆到攻擊者無論怎麼攻擊,都打不動,慢慢他就不會自討沒趣了,攻擊是有成本的,無利不起早,沒人會做賠本生意。
治理DDoS要從源頭,比如減少存在漏洞的NTP、DNS伺服器,鏈路上做源地址檢查,避免IP地址欺騙,僅僅靠被攻擊端防護是不可能的。
至於報警,肯定有用,你不報警,警方沒有線索,怎麼抓人?
但是,這個作用不一定立即體現,警方需要時間偵查,需要取證。
DDoS的特點決定了,如果不在攻擊時取證,證據很快就沒了。因此要攻擊者反覆作案,才好抓。對一個被害人,只作案一次,或者隨機尋找被害人的情況,最難抓。
而且調查涉及多方溝通、協調,比如被利用的主機的運營者,被害人,可能涉及多地警方的合作等等。
指望警方減少犯罪分子是可以的,但是指望通過報警拯救你的業務,只能說遠水解不了近渴。
要知道如何防禦DDoS攻擊,需要先了解DDoS攻擊。
DDoS攻擊的定義
DDoS攻擊全稱——分散式拒絕服務攻擊,是網路攻擊中常見的攻擊方式。在進行攻擊的時候,這種方式可以對不同地點的大量計算機進行攻擊,進行攻擊的時候主要是對攻擊的目標發送超過其處理能力的數據包,使攻擊目標出現癱瘓的情況,不能提供正常的服務。
如下圖所示,攻擊者批量入侵電腦(不只是電腦會被入侵,路由器、手機,甚至是攝像頭等物聯網設備也可能會被入侵)並控制,這樣的電腦被稱為「肉雞」(下圖中紅色部分)。然後統一控制向目標發起攻擊,使目標癱瘓。