SYN attack - 遭遇SYN攻擊 @ H's 筆記本 :: 隨意窩 Xuite日誌
  • 關鍵字
    1. 沒有新回應!
  • 2007-01-03 23:43 SYN attack - 遭遇SYN攻擊
    平均分數:0 顆星    投票人數:0
    我要評分:

    SYN attack - 遭遇SYN攻擊

    曾幾何時,Linux系統還被追捧為安全性較好的系統,很多系統管理員為自己管理的Linux服務器很少被攻擊成功而感到自豪。但步入新的Internet年代,各種各樣的攻擊逐步盯上了Linux,而TCP/IP網絡固有的缺陷也被Cracker大肆利用。

    很不走運,手下管理的多台Linux服務器也遭到了不同類型、不同程度的攻擊,包括SYN攻擊,CLOSE_WAIT攻擊,搶佔資源(如web的連接等)等等。如果是那些少量ip組成的大規模攻擊,一般情況下封ip就能比較好的解決問題了。

    如果是DDOS就更難辦了。這兩天,有2台服務器遇到了大規模的SYN_RECV DDOS攻擊。主要是針對web的,導致了web訪問緩慢並停止服務,甚至機器失去了響應。要對付SYN攻擊,得從多個方面入手,如果是分佈很廣的攻擊,還得從交換機、路由器等更高一級的層次進行杜絕。

    下面是應付這幾天攻擊的基本方法:

    1)SYN cookie
    在linux下以root權限執行:

    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    

    這個方法打開了syncookie功能,但實際效果幾乎感覺不到。

    2)增大backlog
    通過增加backlog的數值,可以一定程度減緩大量SYN請求導致TCP連接阻塞的狀況,一般這個數值系統默認是1024,實驗增加到1280~2048:

    echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_backlog
    

    這樣在強度不是很高的攻擊下,系統響應能力提高了一點。

    3)縮短retries次數
    Linux系統默認的tcp_synack_retries是5次,將這個數值減少可以提高系統響應能力,實驗改為2次:

    echo "2" > /proc/sys/net/ipv4/tcp_synack_retries
    

    修改後,SYN_RECV的數量有了少量減少,系統響應也快了一些。

    4)限制SYN頻率
    上述的幾個方法實際效果並不理想,尤其是DDOS攻擊基本無效,目前比較有效的是對SYN的頻率和次數進行限制,這樣最大限度的控制了單個IP地址發動攻擊的能力。

    例如將SYN請求的次數限制在30次每分鐘,系統默認是5次/秒,顯然太高,同時將burst從默認的5個降低到2個。

    /sbin/iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m \
      limit --limit 30/m --limit-burst 2 -j ACCEPT
    

    注意: 該命令在shell下輸入,'\'符號表示續行。

    進行此操作後,對正常的用戶而言無任何感覺上的差異,而並發的SYN請求量下降了不少,服務響應基本正常了。

    5)封鎖IP/IP段
    對於某些單獨IP的DOS攻擊,封ip簡單有效,方法也非常容易:

    /sbin/iptables -A INPUT -s a.b.c.d -j REJECT
    

    為了大規模快速的封IP地址/段,我寫個小腳本:

    #!/bin/sh
    IPSRC=`cat ip.txt`
    for i in $IPSRC;do
            /sbin/iptables -A INPUT -s $i -j REJECT
    done
    

    在ip.txt裡保存如下格式的ip地址段:

    211.95.208.0/24
    219.78.190.0/24
    4.7.220.0/24
    68.163.195.0/24
    211.162.165.0/24
    ......
    

    結束語

    雖然採取了種種手段,但是攻擊依然沒停止過,上述的方法只是減弱了攻擊的影響,但卻不能徹底解決問題。除了利用IPTables外,還可在應用軟件層做一定的連接頻率,連接數等限制,例如Apache有一個mod_limitipconn模塊就可以實現類似功能。

    Module Limit connection

    H / Xuite日誌 / 回應(0) / 引用(0) / 好文轉寄
    回應