分享

統計每一個tcp和udp連接的IP地址和連接數

 用勿龍潛 2012-01-06
 統計每一個tcp和udp連接的IP地址和連接數
 
做系統運維的朋友們肯定會經常遇到DDoS攻擊的情況,說實話,對於這種攻擊很令人無奈,上昂貴的硬件防護設備不可能,即使上了效果也不是100%的好,一般來說誤殺率能低於20%就不錯了,更多情況是各種新型的攻擊數據包導出不窮,大多數乾脆就是正常的HTTP連接,讓服務器無法拒絕。而使用開源免費的防護軟件更是不如人意。在這種情況下只能自己來統計每一個連接進來的IP各自建立了多少個連接來判斷它是不是惡意連接。但這也有一個問題,假如攻擊者同時控制了幾百個甚至上千個肉機,那麼他就可以做到每個攻擊IP只建立較少的連接數即可達到攻擊的目的,對於防護方來說每個IP的連接數都在正常範圍以內。因此針對這種情況,只能輔以查看IP地址歸屬地來人為判斷是否攻擊IP。
1、利用netstat查看每一個連接進來的TCP或UDP連接,並計算每個IP的連接數:
netstat -ntu |grep -E "tcp|udp" |awk '{print $5}' |grep -E "^[1-9]" | cut -d: -f1 | sort | uniq -c | sort -n
我運行的結果如下:
      1 113.25.26.49
      1 118.117.25.71
      1 123.126.50.74
      1 14.110.35.95
      1 192.168.11.7
      1 61.135.249.220
      6 124.90.162.189
     10 127.0.1.1
      第一列是連接數,第二列是連接IP
對於ipv6地址使用以下命令統計:
netstat -ntu |grep -E "tcp|udp" |awk '{print $5}' |grep -E "^.*\:.*\:.*\:" | cut -d: -f1-4 | sort | uniq -c | sort -n
我統計的結果如下:
      1 ::ffff:xxx.xxx.xxx.xxx
      2 ::ffff:119.97.220.90
      2 ::ffff:127.0.0.1
      9 ::ffff:121.52.210.134
     10 ::ffff:127.0.1.1
 
到底每個IP的連接數是多少個才被認為有DDOS攻擊嫌疑呢?這就要靠自己判斷了,比上面的結果可以看到,我們的系統很健康,沒有DDoS攻擊的跡象,我曾經發現過100多個連接的IP,我認為它就是一個攻擊連接,我的定位是超過30個連接就要關注了,超過60個連接就要準備掐斷它,超過100個連接就直接drop,同時禁止它連接。
 
2、利用tcpdump抓包工具來偵測每IP的連接數:
tcpdump -c 10000 -i eth0 -n dst port 80 > /tmp/ddos_ip
cat /tmp/ddos_ip|awk '{print $3}'|cut -d. -f1-4|uniq -c | sort -n
      2 203.208.60.206
      3 203.208.60.206
      5 xxx.xxx.xxx.xxx
解釋一下,-c 10000意思是抓取10000個數據包;-i eth0意思是抓取從網絡接口eth0進來的數據包;-n 意思是不把網絡地址轉換成名字;dst port 80 意思是指定抓取目的端口是80的數據包;> /tmp/ddos_ip 意思是把抓取結果輸出到文件/tmp/ddos_ip中。
第二條命令是查看輸出文件內容,同時統計每個訪問IP的連接數,由於我只指定抓取了10個包,因此統計結果一共只有2+3+5=10個包。
我們還可以用一條命令來達以統計的目的:
tcpdump -c 10 -i eth0 -n dst port 80|awk '{print $3}'|cut -d. -f1-4|uniq -c | sort -n
 
注意如果80端口的連接訪問很稀疏的話,這條命令運行起來很得費些時間,因為它要抓足10000個滿足條件的數據包才會停止,因此要耐心等待。一般網站訪問正常的情況下就不要使用這個方法了。
用tcpdump查看連接到tcp 80端口的連接IP要比netstat詳細得多,也準確得多。正常情況下我一般只用netstat看一下,非正常情況我才會使用tcpdump。
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多