DoS***是一個永恆的問題,雖然專業廠商的防火牆,負載均衡類的網關設備能比較有效的防禦DoS***,但***們更傾向於x86+GNU/Linux的組合,原因很簡單:足夠的廉價。
在linux內核3.13裏終於加入了SYNPROXY的新功能,這個模塊是一個基於鏈接跟蹤的netfilter擴展,主要乾的工作就是把來自客戶端的初始SYN包標記成UNTRACKED然後直接導入iptables的"SYNPROXY"的動作(類似ACCEPT,NFQUEUE和DROP),這時內核會扮演網關設備的角色繼續跟客戶端進行TCP的常規握手流程,SYNPROXY會等到最終的ACK(三次握手)的cookie被驗證合法後纔會開始讓包真正的進入目標端。
開發者Jesper Dangaard Brouer的數據表明SYNPROXY對於對抗SYN FLOOD DOS***是非常有效的,筆者今天也在Debian和SLES-12-beta2對SYNPROXY進行了DoS測試,大致結果是在使用hping3和metasploit進行測試,開啓SYNPROXY後ksoftirq佔用會從8%降低到3%以內。