一、為何要ddos ?
隨著internet 網際網路絡頻寬的增加和多種ddos 黑客工具的不斷發布,ddos 拒絕服務攻擊的實施越來越容易,ddos 攻擊事件正在成上公升趨勢。出 於商業競爭、打擊報復和網路敲詐等多種因素,導致很多idc 託管機房、商業站點、遊戲伺服器、聊天網路等網路服務商長期以來一直被ddos 攻擊所困擾,隨 之而來的是客戶投訴、同虛擬主機使用者受牽連、法律糾紛、商業損失等一系列問題,因此,解決ddos 攻擊問題成為網路服務商必須考慮的頭等大事。
二、什麼是ddos ?
ddos 是英文distributed denial of service
的縮寫,意即「分布式拒絕服務」 ,那麼什麼又是拒絕服務(denial of service )呢?可以這麼理解,凡是能導致合法使用者不能夠訪問正常網路服務的行為都算是拒絕服務攻擊。也就是說拒絕服務攻擊的目的非常明確,就是要阻 止合法使用者對正常網路資源的訪問,從而達成攻擊者不可告人的目的。雖然同樣是拒絕服務攻擊,但是ddos 和dos 還是有所不同,ddos 的攻擊策略側重於 通過很多「 殭屍主機」 (被攻擊者入侵過或可間接利用的主機)向受害主機傳送大量看似合法的網路包,從而造成網路阻塞或伺服器資源耗盡而導致拒絕服務,分布 式拒絕服務攻擊一旦被實施,攻擊網路包就會猶如洪水般湧向受害主機,從而把合法使用者的網路包淹沒,導致合法使用者無法正常訪問伺服器的網路資源,因此,拒絕 服務攻擊又被稱之為「 洪水式攻擊」 ,常見的ddos 攻擊手段有syn flood 、ack flood 、udp flood 、icmp flood 、tcp flood 、connections flood 、script flood 、proxy flood 等;而dos 則側重於通過對主機特定漏洞的利用攻擊導致網路棧失效、系統崩潰、主機宕機而無法提供正常的網路服務功能,從而造成拒絕服務,常見 的dos 攻擊手段有teardrop 、land 、jolt 、igmp nuker 、boink 、smurf 、bonk 、oob 等。就這兩種拒絕服務攻擊而言,危害較大的主要是ddos 攻擊,原因是很難防範,至於dos 攻擊, 通過給主機伺服器打補丁或安裝防火牆軟體就可以很好地防範,後文會詳細介紹怎麼對付ddos 攻擊。
三、被ddos 了嗎?
ddos 的表現形式主要有兩種,一種為流量攻擊,主要是針對網路頻寬的攻擊,即大量攻擊包導致網路頻寬被阻塞,合法網路包被虛假的攻擊包淹沒而無法到達主 機;另一種為資源耗盡攻擊,主要是針對伺服器主機的攻擊,即通過大量攻擊包導致主機的記憶體被耗盡或cpu 被核心及應用程式佔完而造成無法提供網路服務。
如何判斷**是否遭受了流量攻擊呢?可通過ping 命令來測試,若發現ping 超時或丟包嚴重( 假定平時是正常的) ,則可能遭受了流量攻擊,此時若發現和 你的主機接在同一交換機上的伺服器也訪問不了了,基本可以確定是遭受了流量攻擊。當然,這樣測試的前提是你到伺服器主機之間的icmp 協議沒有被路由器和 防火牆等裝置遮蔽,否則可採取telnet 主機伺服器的網路服務埠來測試,效果是一樣的。不過有一點可以肯定,假如平時ping 你的主機伺服器和接在同 一交換機上的主機伺服器都是正常的,突然都ping 不通了或者是嚴重丟包,那麼假如可以排除網路故障因素的話則肯定是遭受了流量攻擊,再乙個流量攻擊的典 型現象是,一旦遭受流量攻擊,會發現用遠端終端連線**伺服器會失敗。
相對於流量攻擊而言,資源耗盡攻擊要容易判斷一些,假如平時ping **主機和訪問**都是正常的,發現突然**訪問非常緩慢或無法訪問了,而ping 還 可以ping 通,則很可能遭受了資源耗盡攻擊,此時若在伺服器上用netstat -na 命令觀察到有大量的syn_received 、time_wait 、fin_wait_1 等狀態存在,而established 很少,則可判定肯定 是遭受了資源耗盡攻擊。還有一種屬於資源耗盡攻擊的現象是,ping 自己的**主機ping 不通或者是丟包嚴重,而ping 與自己的主機在同一交換機上的 伺服器則正常,造成這種原因是**主機遭受攻擊後導致系統核心或某些應用程式cpu 利用率達到100% 無法回應ping 命令,其實頻寬還是有的,否則就ping 不通接在同一交換機上的主機了。
當前主要有三種流行的ddos 攻擊:
1 、syn/ack flood 攻擊:這種攻擊方法是經典最有效的ddos 方法,可通殺各種系統的網路服務,主要是通過向受害主機傳送大量偽造源ip 和源埠的syn 或ack 包,導致主機的快取資源被耗盡或忙於傳送回應包而造成拒絕服務,由於源都是偽造的故追蹤起來比較困難,缺點是實施起來有一定難度,需要高頻寬的殭屍主機支 持。少量的這種攻擊會導致主機伺服器無法訪問,但卻可以ping 的通,在伺服器上用netstat -na 命令會觀察到存在大量的syn_received 狀態,大量的這種攻擊會導致ping 失敗、tcp/ip 棧失效,並會出現系統凝固現象,即不響應鍵 盤和滑鼠。普通防火牆大多無法抵禦此種攻擊。
2 、tcp 全連線攻擊:這種攻擊是為了繞過常規防火牆的檢查而設計的,一般情況下,常規防火牆大多具備過濾teardrop 、land 等dos 攻擊的能 力,但對於正常的tcp 連線是放過的,殊不知很多網路服務程式(如:iis 、apache 等web 伺服器)能接受的tcp 連線數是有限的,一旦有大量的tcp 連線,即便是正常的,也會導致**訪問非常緩慢甚至無法訪問,tcp 全連線攻擊就是通過許多殭屍主機不斷地與受害伺服器建立大量的tcp 連線,直到 伺服器的記憶體等資源被耗盡而被拖跨,從而造成拒絕服務,這種攻擊的特點是可繞過一般防火牆的防護而達到攻擊目的,缺點是需要找很多殭屍主機,並且由於殭屍 主機的ip 是暴露的,因此容易被追蹤。
3 、刷script 指令碼攻擊:這種攻擊主要是針對存在asp 、jsp 、php 、cgi 等指令碼程式,並呼叫mssqlserver 、mysqlserver 、oracle 等資料庫的**系統而設計的,特徵是和伺服器建立正常的tcp 連線,並不斷的向指令碼程式提交查詢、列表等大量耗費數 據庫資源的呼叫,典型的以小博大的攻擊方法。一般來說,提交乙個get 或post 指令對客戶端的耗費和頻寬的占用是幾乎可以忽略的,而伺服器為處理此請求 卻可能要從上萬條記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的資料庫伺服器很少能支援數百個查詢指令同時執行,而這對於客戶端來說卻 是輕而易舉的,因此攻擊者只需通過proxy **向主機伺服器大量遞交查詢指令,只需數分鐘就會把伺服器資源消耗掉而導致拒絕服務,常見的現象就是**慢 如蝸牛、asp 程式失效、php 連線資料庫失敗、資料庫主程式占用cpu 偏高。這種攻擊的特點是可以完全繞過普通的防火牆防護,輕鬆找一些proxy ** 就可實施攻擊,缺點是對付只有靜態頁面的**效果會大打折扣,並且有些proxy 會暴露攻擊者的ip 位址。
四、怎麼抵禦ddos ?
對付ddos 是乙個系統工程,想僅僅依靠某種系統或產品防住ddos 是不現實的,可以肯定的是,完全杜絕ddos 目前是不可能的,但通過適當的措施抵禦90% 的ddos 攻擊是可以做到的,基於攻擊和防禦都有成本開銷的緣故,若通過適當的辦法增強了抵禦ddos 的能力,也就意味著加大了攻擊者的攻擊成本, 那麼絕大多數攻擊者將無法繼續下去而放棄,也就相當於成功的抵禦了ddos 攻擊。以下幾點是防禦ddos 攻擊幾點:
1、採用高效能的網路裝置
首先要保證網路裝置不能成為瓶頸,因此選擇路由器、交換機、硬體防火牆等裝置的時候要盡量選用知名度高、口碑好的產品。再就是假如和網路提供商有特殊關係 或協議的話就更好了,當大量攻擊發生的時候請他們在網路接點處做一下流量限制來對抗某些種類的ddos 攻擊是非常有效的。
2、盡量避免nat 的使用
無論是路由器還是硬體防護牆裝置要盡量避免採用網路位址轉換nat 的使用,因為採用此技術會較大降低網路通訊能力,其實原因很簡單,因為nat 需要對位址來回轉換,轉換過程中需要對網路包的校驗和進行計算,因此浪費了很多cpu 的時間,但有些時候必須使用nat ,那就沒有好辦法了。
3、充足的網路頻寬保證
網路頻寬直接決定了能抗受攻擊的能力,假若僅僅有10m 頻寬的話,無論採取什麼措施都很難對抗現在的synflood 攻擊,當前至少要選擇100m 的共享 頻寬,最好的當然是掛在1000m 的主幹上了。但需要注意的是,主機上的網絡卡是1000m 的並不意味著它的網路頻寬就是千兆的,若把它接在100m 的交換 機上,它的實際頻寬不會超過100m ,再就是接在100m 的頻寬上也不等於就有了百兆的頻寬,因為網路服務商很可能會在交換機上限制實際頻寬為10m ,這 點一定要搞清楚。
4、公升級主機伺服器硬體
在有網路頻寬保證的前提下,請盡量提公升硬體配置,要有效對抗每秒10 萬個syn 攻擊包,伺服器的配置至少應該為:p4 2.4g/ddr512m/scsi-hd ,起關鍵作用的主要是cpu 和記憶體,若有志強雙cpu 的話就用它吧,記憶體一定要選擇ddr 的高速記憶體,硬碟要盡 量選擇scsi 的,別只貪ide **不貴量還足的便宜,否則會付出高昂的效能代價,再就是網絡卡一定要選用3com 或intel 等名牌的,若是realtek 的還是用在自己的pc 上吧。
5、把**做成靜態頁面
6、增強作業系統的tcp/ip 棧
win2000 和win2003 作為伺服器作業系統,本身就具備一定的抵抗ddos 攻擊的能力,只是預設狀態下沒有開啟而已,若開啟的話可抵擋約10000 個syn 攻擊包,若沒有開啟則僅能抵禦數百個,具體怎麼開啟,自己去看微軟的文章吧!《強化tcp/ip 堆疊安全》。
也許有的人會問,那我用的是linux 和freebsd 怎麼辦?很簡單,按照這篇文章去做吧!《syn cookies 》。
7、安裝專業抗ddos 防火牆
8、其他防禦措施
以上幾條對抗ddos 建議,適合絕大多數擁有自己主機的使用者,但假如採取以上措施後仍然不能解決ddos 問題,就有些麻煩了,可能需要更多投資,增加服務 器數量並採用dns 輪巡或負載均衡技術,甚至需要購買七層交換機裝置,從而使得抗ddos 攻擊能力成倍提高,只要投資足夠深入。
什麼是DDOS攻擊及怎麼抵抗DDOS攻擊
一 為何要ddos?隨著internet網際網路絡頻寬的增加和多種ddos黑客工具的不斷發布,ddos拒絕服務攻擊的實施越來越容易,ddos攻擊事件正在成上公升趨勢。出於商業競爭 打擊報復和網路敲詐等多種因素,導致很多idc託管機房 商業站點 遊戲伺服器 聊天網路等網路服務商長期以來一直被ddos攻...
什麼是DDOS攻擊?怎麼抵抗?
一 為何要ddos?隨著internet網際網路絡頻寬的增加和多種ddos黑客工具的不斷發布,ddos拒絕服務攻擊的實施越來越容易,ddos攻擊事件正在成上公升趨勢。出於商業競爭 打擊報復和網路敲詐等多種因素,導致很多idc託管機房 商業站點 遊戲伺服器 聊天網路等網路服務商長期以來一直被ddos攻...
什麼是DDOS攻擊?怎麼防禦?
一 什麼是ddos?ddos是英文distributed denial of service的縮寫,意即 分布式拒絕服務 那麼什麼又是拒絕服務 denial of service 呢?可以這麼理解,凡是能導致合法使用者不能夠訪問正常網路服務的行為都算是拒絕服務攻擊。也就是說拒絕服務攻擊的目的非常明確...