成都seo博客

蔡江博客

站長如何抵御頻發的DDOS攻擊?

作者:choi 日期:2020-03-18 23:56 瀏覽:

  2016年5月,不法黑客針對全球范圍內的多家銀行網站發動了一系列的DDoS攻擊。導致約旦、韓國以及摩納哥等央行網絡系統陷入了半小時的癱瘓狀態,無法進行正常工作。

  2016年11月,俄羅斯五家主流銀行遭遇長達兩天的DDoS攻擊。來自30個國家2.4萬臺計算機構成的僵尸網絡持續不斷發動強大的DDOS攻擊。

  2017年4月初,江蘇省某網絡公司服務器頻繁遭到DDoS流量攻擊,導致掛載在服務器上的多個網站無法正常運營,損失嚴重。

  2018年3月,Github遭受了迄今為止記錄的最大的DDoS攻擊。攻擊者通過公共互聯網發送小字節的基于UDP的數據包請求到配置錯誤的memcached服務器,作為回應,memcached服務器通過向Github發送大量不成比例的響應,形成巨大規模的DDoS攻擊。

  2019年9月初,北京市公安局網絡安全保衛總隊(以下簡稱“網安總隊”)發起了針對“分布式拒絕服務攻擊”類違法犯罪的全國性專項打擊行動。三個月內,網安總隊在全國范圍內共抓獲違法犯罪嫌疑人379名,清理在京被控主機7268臺。

  ……

  什么是DDOS攻擊?

  舉個例子,我開了一家飯店,這家飯店可以容納100人同時就餐,我的一個競爭對手在對門也開了一家飯店,競爭對手雇傭了300人來這個飯店坐著不吃不喝,導致飯店滿滿當當無法正常營業,這在計算機中的表現就是分布式拒絕服務。在計算機系統中它利用網絡協議和操作系統的一些缺陷,采用欺騙和偽裝的策略來進行網絡攻擊,使網站服務器充斥大量要求回復的信息,消耗網絡帶寬或系統資源,導致網絡或系統不勝負荷以至于癱瘓而停止提供正常的網絡服務。

  分布式拒絕服務攻擊(英文意思是Distributed Denial of Service,簡稱DDoS)是指處于不同位置的多個攻擊者同時向一個或數個目標發動攻擊,或者一個攻擊者控制了位于不同位置的多臺機器并利用這些機器對受害者同時實施攻擊。

  在進行攻擊的時候,可以對源IP地址進行偽造,通常攻擊者會在發起DDOS 攻擊之前就控制著成千上萬個存在漏洞的計算機,這些計算機我們稱之為“肉雞”,入侵者通過這些“肉雞”向目標機器在相同時間內發起并發請求,導致目標機器的系統資源瞬間被打滿,無法正常對外提供服務。

  與DoS攻擊由單臺主機發起攻擊相比較,分布式拒絕服務攻擊DDoS是借助數百、甚至數千臺被入侵后安裝了攻擊進程的主機同時發起的集團行為。

  攻擊方式

  SYN Flood攻擊

  SYN Flood 攻擊是當前網絡上最為常見的DDoS攻擊,它利用了TCP協議實現上的一個缺陷。通過向網絡服務所在端口發送大量的偽造源地址的攻擊報文,就可能造成目標服務器中的半開連接隊列被占滿,從而阻止其他合法用戶進行訪問。

  眾所周知,TCP要建立連接,需要進行三次握手,通信的雙方最少得經過3次成功的信息交換才能進入連接全開狀態(Full-Open)。一個正常的連接建立需要如下步驟:

  首先,客戶端向服務器發送SYN數據包,以便啟動連接;

  服務器響應該初始包與SYN / ACK包,以確認通信;

  最后,客戶端返回ACK數據包以確認從服務器接收到的數據包。完成這個數據包發送和接收序列后,TCP連接打開并能發送和接收數據。

  攻擊者利用TCP握手這一機制,在接收到初始SYN數據包之后,服務器將用一個或多個SYN / ACK數據包進行響應,并等待握手中的最后一步。這是它的工作原理:

  攻擊者向目標服務器發送大量SYN數據包,通常會使用欺騙性的IP地址。

  服務器響應每個連接請求,并留下開放端口準備好接收響應。

  服務器等待從未到達的最終ACK數據包時,攻擊者繼續發送更多的SYN數據包。每個新的SYN數據包的到達導致服務器暫時維持新的開放端口連接一段時間,一旦所有可用端口被使用,服務器就無法正常工作。

  當服務器斷開連接但連接另一端的機器沒有連接時,連接被認為是半開的。在這種類型的DDoS攻擊中,目標服務器不斷離開打開的連接,等待每個連接超時,然后端口再次可用。結果是這種攻擊可以被認為是“半開攻擊”。

  UDP Flood攻擊

  UDP Flood 是日漸猖厥的流量型DDoS攻擊,原理也很簡單。常見的情況是利用大量UDP小包沖擊DNS服務器或Radius認證服務器、流媒體視頻服務器。由于UDP協議是一種無連接的服務,在UDP Flood攻擊中,攻擊者可發送大量偽造源IP地址的小UDP包。

  ICMP Flood攻擊

  ICMP Flood攻擊屬于流量型的攻擊方式,是利用大的流量給服務器帶來較大的負載,影響服務器的正常服務。由于目前很多防火墻直接過濾ICMP報文。因此ICMP Flood出現的頻度較低。

  Connection Flood攻擊

  Connection Flood是典型的利用小流量沖擊大帶寬網絡服務的攻擊方式,這種攻擊的原理是利用真實的IP地址向服務器發起大量的連接。并且建立連接之后很長時間不釋放,占用服務器的資源,造成服務器上殘余連接(WAIT狀態)過多,效率降低,甚至資源耗盡,無法響應其他客戶所發起的鏈接。

  HTTP Get攻擊

  這種攻擊主要是針對存在ASP、JSP、PHP、CGI等腳本程序,特征是和服務器建立正常的TCP連接,并不斷的向腳本程序提交查詢、列表等大量耗費數據庫資源的調用。這種攻擊的特點是可以繞過普通的防火墻防護,可通過Proxy代理實施攻擊,缺點是攻擊靜態頁面的網站效果不佳,會暴露攻擊者的lP地址。

  UDP DNS Query Flood攻擊

  UDP DNS Query Flood攻擊采用的方法是向被攻擊的服務器發送大量的域名解析請求,通常請求解析的域名是隨機生成或者是網絡世界上根本不存在的域名。域名解析的過程給服務器帶來了很大的負載,每秒鐘域名解析請求超過一定的數星就會造成DNS服務器解析域名超時。

  DDOS 的防范

  通過 Linux 自帶防火墻防范攻擊

  以 DDOS SYN Flood 攻擊為例,我們可以通過系統自帶的iptables 防火墻來進行防護。

  第一種方式是禁止攻擊來源IP,但是通常攻擊源都不只一個IP,這種方式防護比較弱。

  $ iptables -I INPUT -s 192.168.0.2 -p tcp -j REJECT

  第二鐘方式是 限制syn并發的次數以及同一個IP 新建連接數的數量。

  限制 syn 并發數為每秒 1 次

  $ iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT

  限制單個 IP 在 60 秒新建立的連接數為 10

  $ iptables -I INPUT -p tcp –dport 80 –syn -m recent –name SYN_FLOOD –update –seconds 60 –hitcount 10 -j REJECT

  但是如果攻擊源特別多,其實還是很難阻擋。SYN Flood 會導致 SYN_RECV 狀態的連接急劇增大,可以通過調整半連接容量大小,例如調整為 1024

  $ sysctl -w net.ipv4.tcp_max_syn_backlog=1024

  net.ipv4.tcp_max_syn_backlog = 1024

  另外,每個SYN_RECV 如果失敗,內核還會自動重試,默認是 5次,可以修改為1次。

  $ sysctl -w net.ipv4.tcp_synack_retries=1

  net.ipv4.tcp_synack_retries = 1

  此外,TCP SYN Cookies 是一種專門防御 SYN Flood 攻擊的方法,其原理是基于連接信息(包括源地址、源端口、目的地址、目的端口等)以及一個加密種子(如系統啟動時間),計算出一個哈希值(SHA1),這個哈希值稱為 cookie。

  這個 cookie 就被用作序列號,來應答 SYN+ACK 包,并釋放連接狀態。當客戶端發送完三次握手的最后一次 ACK 后,服務器就會再次計算這個哈希值,確認是上次返回的 SYN+ACK 的返回包,才會進入 TCP 的連接狀態。因而,開啟 SYN Cookies 后,就不需要維護半開連接狀態了,進而也就沒有了半連接數的限制。

  注意開啟 TCP syncookies 后,內核選項 net.ipv4.tcp_max_syn_backlog 也就無效了??梢酝ㄟ^下面的方式開啟:

  $ sysctl -w net.ipv4.tcp_syncookies=1

  net.ipv4.tcp_syncookies = 1

  優化網絡相關的內核參數

  當遭遇攻擊時,請求數會較大,你可能會看到大量處于TIME. WAIT狀態的連接。

  linux查看tcp的狀態命令:

  netstat -nat查看TCP各個狀態的數量;

  lsof -i:port 可以檢測到打開套接字的狀況;

  sar -n SOCK 查看tcp創建的連接數;

  tcpdump -iany tcp port 6000 對tcp端口為6000的進行抓包。

  [[email protected] ~]

  # netstat -ant

  Active Internet connections (servers and established)

  Proto Recv-Q Send-Q Local Address Foreign Address State

  tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0: LISTEN

  tcp 0 0 192.168.10.58:22 13.136.182.140:23107 TIME_WAIT

  tcp 0 48 192.168.10.58:22 13.136.182.140:61282 TIME_WAIT

  tcp6 0 0 :::22 ::: LISTEN tcp6 0 0 ::1:25 ::: LISTEN

  TCP狀態及其描述:

  狀態 描述

  LISTEN 等待來自遠程TCP應用程序的請求

  SYN_SENT 發送連接請求后等待來自遠程端點的確認。TCP第一次握手后客戶端所處的狀態

  SYN-RECEIVED 該端點已經接收到連接請求并發送確認。該端點正在等待最終確認。TCP第二次握手后服務端所處的狀態

  ESTABLISHED 代表連接已經建立起來了。這是連接數據傳輸階段的正常狀態

  FIN_WAIT_1 等待來自遠程TCP的終止連接請求或終止請求的確認

  FIN_WAIT_2 在此端點發送終止連接請求后,等待來自遠程TCP的連接終止請求

  CLOSE_WAIT 該端點已經收到來自遠程端點的關閉請求,此TCP正在等待本地應用程序的連接終止請求

  CLOSING 等待來自遠程TCP的連接終止請求確認

  LAST_ACK 等待先前發送到遠程TCP的連接終止請求的確認

  TIME_WAIT 等待足夠的時間來確保遠程TCP接收到其連接終止請求的確認

  它們會占用大量內存和端口資源。這時,我們可以優化與TIME_ WAIT狀態相關的內核選項,比如采取下面幾種措施:

  增大處于 TIME_WAIT 狀態的連接數量 net.ipv4.tcp_max_tw_buckets ,并增大連接跟蹤表的大小 net.netfilter.nf_conntrack_max。

  減小 net.ipv4.tcp_fin_timeout 和 net.netfilter.nf_conntrack_tcp_timeout_time_wait ,讓系統盡快釋放它們所占用的資源。

  開啟端口復用 net.ipv4.tcp_tw_reuse。這樣,被 TIME_WAIT 狀態占用的端口,還能用到新建的連接中。

  增大本地端口的范圍 net.ipv4.ip_local_port_range。這樣就可以支持更多連接,提高整體的并發能力。

  增加最大文件描述符的數量。你可以使用fs.nr_open 和 fs.file-max ,分別增大進程和系統的最大文件描述符數;或在應用程序的 systemd 配置文件中,配置 LimitNOFILE ,設置應用程序的最大文件描述符數。

  通過專業的流量清洗系統來防范DDOS攻擊

  流量清洗服務是一種針對對其發起的DOS/DDOS攻擊的監控、告警和防護的一種網絡安全服務。在不影響正常業務的前提下,清洗掉異常流量。它會分析和過濾異常流量,將異常的攻擊流量阻擋在門外,從而為正常的請求提供服務。

  一般這類系統由專門的服務商提供,大多數會提供10 Gpbs~100Gpbs 的防護能力。


文章來源:未知
文章標題:站長如何抵御頻發的DDOS攻擊?
本文地址:http://www.5837392.live/seo/11193.html
相關文章
操作TF-IDF算法提升關鍵詞排名 操作TF-IDF算法提升關鍵詞排名

很多做SEO的朋友應該都傳聞過TF-IDF算法,網上大部門的介紹都是圍繞算法的公式和介紹,他們文章雖然很專業,但對付SEO優化

淺析詞頻位置加權排序算法 淺析詞頻位置加權排序算法

詞頻位置加權排序算法:是一種通過關鍵詞出現的位置和頻率進行排序的方法,它是搜索引擎最基礎的排序算法之一。當用戶

百度颶風算法3.0,針對跨領域采集及站群問題 百度颶風算法3.0,針對跨領域采集及站群問題

百度站長平臺在2019年8月8日這天發布了颶風算法3.0,本次算法的更新主要為了維護健康的移動生態,保障用戶體驗,包管優質

刷百度相關參數詳解,刷相關搜索的實現方法 刷百度相關參數詳解,刷相關搜索的實現方法

百度相關搜索詞可以為我們帶來精準的流量,同時也可以為我們引流,因此需要做相關詞的人很多,今天就來聊聊關于如何刷

淺談:個人的影視站怎么做SEO優化 淺談:個人的影視站怎么做SEO優化

這幾天有個朋友建了一個電影網站,于是找到表哥,問個人的電影網站怎么做SEO。下面表哥就總結幾點經驗跟大家聊聊,希望

搜索用戶建議專區上線公告 搜索用戶建議專區上線公告

近期,百度搜索資源平臺上線了搜索用戶建議專區,該專區收集展示了搜索用戶在使用您網站時,對網站內容和體驗等方面提

百度APP移動搜索落地頁體驗白皮書5.0 百度APP移動搜索落地頁體驗白皮書5.0

1.導言 2.面向對象 3.名詞解釋 4.落地頁體驗規范 4.1. 信息獲取規范 4.1.1 加載速度 4.2.頁面瀏覽規范 4.2.1 排版布局 4.2.2 字號間

程序員:我終于知道post和get的區別 程序員:我終于知道post和get的區別

IT界知名的程序員曾說:對于那些月薪三萬以下,自稱IT工程師的碼農們,其實我們從來沒有把他們歸為我們IT工程師的隊伍。

企業網站建設如何選擇企業cms建站系統 企業網站建設如何選擇企業cms建站系統

企業網站主要用于向外界展示企業產品和形象,如果網站內容豐富,頁面美觀,用戶體驗好,將會為企業帶來潛在的用戶,現

網站建設之常用CMS系統的SEO優化功能分析 網站建設之常用CMS系統的SEO優化功能分析

小編是CMS建站老司機,有多年的經驗也總結出了不少的優化經驗,現在大部分的網站,尤其是單位性質的網站基本都是采用

  • 精彩推薦
  • 最近發布
分享到:
Copyright © 2016-2021 「蔡江博客」版權所有
蜀ICP備15028159號-6  
網站地圖 | 技術支持:點瑞網絡
多人扑克牌玩法大全 德甲助攻榜 星力捕鱼哪个平台好 股市股票 同乐棋牌下载 英超2019赛程表 4人麻将在线玩 派彩河南481手机版 三码中特免费公开资料 滨化股份股票行情 波克棋牌最新完整版本