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

![]() ![]() |
![]() |
關(guān)鍵詞:不用防火墻手動(dòng)對(duì)付SYN攻擊的辦法 相關(guān)文章