anthony 寫到:
兩年前的辦法現在怎麼看這種辦法
ipfw add check-state
ipfw add deny tcp from any to any established
ipfw add allow tcp from my-net to any setup keep-state
DDoS會讓ipfw狀態表迅速填滿。
anthony 寫到:
1,增加被攻擊者自己的抵抗力,比如增大允許tcp同時連接進來的包(考驗你的os的穩定性了,solaris和freebsd穩定性都不錯),增加網卡的緩存,比如
網卡緩存如何增加?
anthony 寫到:
net.inet.tcp.delayed_ack=0 //把這個設為0,這樣浪費掉的是電信的帶寬速率而不是你的處理時間。
打垮交換機對於防止[D]DoS恐怕沒有什麼大的好處……
anthony 寫到:
net.inet.tcp.recvspace=65535
上面這兩個值是比較好的最大化web性能的一個比例值(對付ddos來說,也是增加自己承受力的一方面)
對於HTTP而言,sendspace應該大於recvspace。
anthony 寫到:
net.inet.udp.recvspace=65535
net.inet.udp.maxdgram=57344
net.local.stream.recvspace=65535
同上,這些完全要根據應用的性質來。
anthony 寫到:
2。縮減tcp syn等待超時的時間,freebsd的我不太熟悉,不知是不是這個net.inet.tcp.syncache.bucketlimit: 30 //等待30秒?
這種方式有一定效果,一般現在的firewall,比如pix,cisco,checkpoint都是通過減小這個值來加快丟掉那些syn狀態的攻擊包,但是那些低帶寬、高延時的moden用戶可能會犧牲掉。
不是。應該是 net.inet.tcp.msl,單位是ms。目前的網絡上出現幾秒內無法建立連接的用戶,你完全可以把他們丟掉,因為他們打開網頁的時間顯然要超過人的忍耐力。
anthony 寫到:
3。現在有一些高端的硬件產品,比如耀騰的i810e,cisco的11000系列的cdn產品中的一部分。在這方面改進了不少,比如我用過i810e,他有兩個特性,一個是支持每秒(還是每分鐘?忘了)30萬的tcp session連接數,支持七層過濾,當打開七層過濾和tcp代理的時候,i810e會代替你的server與攻擊者完成tcp三次握手的動作,因為一台主機目前好像最多也只能建立65535個tcp連接,還不包括低位1024去掉,系統內核參數限制:
我個人認為所謂七層過濾產品就是互聯網行業的“X白金”。*5:年輕態,健康品!
anthony 寫到:
比如我freebsd上的
net.inet.ip.portrange.lowfirst: 1023
net.inet.ip.portrange.lowlast: 600
net.inet.ip.portrange.first: 1024
net.inet.ip.portrange.hifirst: 49152
net.inet.ip.portrange.hilast: 65535
基本概念錯誤。這個是你主動發起連接時的臨時端口的范圍。
anthony 寫到:
你可以算算看看你的機器最多可有多少個tcp連接,(一個port number可以建立一個tcp連接),
這樣攻擊者就必須制造更多更大流量來沖擊i810e,直到超過i810e的極限為止。
DDoS就是要用大流量來沖擊服務器。流量整形和壓縮有助於分擔服務器負載,但簡單地做連接代理在我看來不會有什麼作用。
anthony 寫到:
還有一個更有趣的特性,就是七層過濾,它可以分析數據包中的內容,看看有沒有請求內容,如果沒有的話,直接drop掉
FreeBSD內核內建了accept_filter(9)機制來實現這種功能。
anthony 寫到:
現在大部分的ddos工具都是僅僅制造一個僅僅能完成tcp三次握手的包(無任何請求無內容)。
這種工具我們一般稱為DoS工具。
anthony 寫到:
這種方案目前是最有效的,但是是最昂貴的,一般都要幾十萬一台,如果攻擊者只是偶爾有興趣時找你玩玩,有點劃不來。
一般這類設備最有用的是流量整形(將多個HTTP短連接請求重整為長連接)和壓縮加速,當然,前提是設備不先被打死並且不把後面的服務器打死。
65535怎麼來的?怎麼看也看不懂麼?
2^16=65536
2^32=4G
DDoS沒有什麼太好的辦法,我只能說點我覺得還算管用的辦法:
0. 改進應用。
攻擊者不用做別的,只要找到你的網頁刷的最慢的一頁去發給幾千個客戶端,服務器立刻應聲而倒。要做的第一件事情是讓應用盡可能健壯。
1. 提高帶寬/增加設備。
這個就不用說了,“抗”DDoS說白了就是拼帶寬和處理能力。
2. 啟用流量整形和負載分散的專用設備或服務器。
將來自用戶的請求重整為長連接,將壓縮/加密用專門的設備/服務器來處理,等等
在內核裡面可以采取的防護措施能夠解決很多問題,但很多DDoS表面上看並不是真正的攻擊,就好比喊來1萬人去一個小銀行,每個人辦理一筆小業務,那麼別的人就別想干事了――解決方法是要麼把喊人的人抓住,要麼再多建一些營業窗口或者把人轉到其他銀行,而不是在銀行門口增加警衛。