不用防火墻手動對付SYN攻擊的辦法
時間:2010-07-15 22:36:53 整理:佚名 []
一般的SYN Food攻擊是利用特殊的程序,設置TCP的Header,向服務器端不斷地成倍發送只有SYN標志的TCP連接請求。當服務器接收的時候,都認為是沒有建立起來的連接請求,于是為這些請求建立會話,排到緩沖區隊列中。如果你的SYN請求超過了服務器能容納的限度,緩沖區隊列滿,那么服務器就不再接收新的請求了。其他合法用戶的連接都被拒絕掉。此時,服務器已經無法再提供正常的服務了,所以SYN Food攻擊是拒絕服務攻擊。
檢測SYN攻擊:
檢測SYN攻擊非常的方便,當你在服務器上看到大量的半連接狀態時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。我們使用系統自帶的netstat 工具來檢測SYN攻擊:
# netstat -n -p TCP
tcp 0 0 10.11.11.11:23 124.173.152.8:25882 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.15.133.204:2577 SYN_RECV -
tcp 0 0 10.11.11.11:23 127.160.6.129:51748 SYN_RECV -
tcp 0 0 10.11.11.11:23 222.220.13.25:47393 SYN_RECV -
tcp 0 0 10.11.11.11:23 212.200.204.182:60427 SYN_RECV -
tcp 0 0 10.11.11.11:23 232.115.18.38:278 SYN_RECV -
tcp 0 0 10.11.11.11:23 239.116.95.96:5122 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.219.139.207:49162 SYN_RECV -
...
上面是在LINUX系統中看到的,很多連接處于SYN_RECV狀態(在WINDOWS系統中是SYN_RECEIVED狀態),源IP地址都是隨機的,表明這是一種帶有IP欺騙的SYN攻擊。
我們也可以通過下面的命令直接查看在LINUX環境下某個端囗的未連接隊列的條目數:
#netstat -n -p TCP grep SYN_RECV grep :22 wc -l
324
顯示TCP端囗22的未連接數有324個,雖然還遠達不到系統極限,但應該引起管理員的注意。
如何做好設置:
對于SYN Flood攻擊,目前尚沒有很好的監測和防御方法,不過如果系統管理員熟悉攻擊方法和系統架構,通過一系列的設定,也能從一定程度上降低被攻擊系統的負荷,減輕負面的影響。
對于WindowsNT/2000而言,它的SYN攻擊保護機制可以這樣考慮:正常情況下,OS對TCP連接的一些重要參數有一個常規的設置:SYN Timeout時間、SYN-ACK的重試次數、SYN報文從路由器到系統再到Winsock的延時等等。這個常規設置針對系統優化,可以給用戶提供方便快捷的服務;一旦服務器受到攻擊,SYN Half link 的數量超過系統中TCP活動 Half Connction 大連接數的設置,系統將會認為自己受到了SYN Flood攻擊,并將根據攻擊的判斷情況作出反應:減短SYN Timeout時間、減少SYN-ACK的重試次數、自動對緩沖區中的報文進行延時等等措施,力圖將攻擊危害減到 低。如果攻擊繼續,超過了系統允許的 大Half Connection 值,系統已經不能提供正常的服務了,為了保證系統不崩潰,可以將任何超出 大Half Connection 值范圍的SYN報文隨機丟棄,保證系統的穩定性。
被攻擊時如何手動防御:
一般服務器被SYN Flood攻擊時,通過上面所說的 netstat 命令可以看到攻擊者的IP記錄,確定被攻擊以后采取的對應辦法:
以75.156.25.192這個IP為例子,我們用封IP段來對付攻擊:
打開本地安全設置,點“IP安全策略,在本地機器”—>創建IP安全策略—>下一步—>名稱隨便寫,如輸入阻止,然后一直點下一步,出現提示點是,一直到完成,這個時候就創建了一個名為“阻止”的策略了。
下面點“IP安全策略,在本地機器”—>管理IP篩選器表和篩選器操作—>點添加—>名稱添75.156.25(為了識別 好填寫對應的IP段)—>點添加—>下一步—>源地址選擇一個特定的IP子網,IP輸入75.156.25.0 子網掩碼改為255.255.255.0—>下一步—>目標地址選擇我的IP地址—>下一步—>協議類型為任意—>下一步—>完成,全部關閉。
下面點我們開始建立的名為“阻止”的策略,點屬性—>填加—>下一步—>下一步網絡類型選擇所有網絡連接—>下一步—>出現提示點是—>到IP篩選列表,點中我們剛才創建的名為75.156.25的選項—>下一步—>選擇阻止—>下一步到完成、關閉。
后點“阻止”這個策略,右鍵,指派,到這里為止我們就已經阻止了75.156.25開頭的網段了,當然也阻止了75.156.25.192這個IP的攻擊了,如還要封其他IP的攻擊同樣操作即可。
用這個方法可以完全阻止SYN Flood攻擊,麻煩的一點就是要自己手動查看攻擊的代理IP和填加IP策略。

![]() ![]() |
![]() |
關鍵詞:不用防火墻手動對付SYN攻擊的辦法 相關文章