Linux 系統如何透過 netstat 命令檢視連線數判斷攻擊

蠟筆小新發表於2019-02-20

# 很多時候我們會遇到伺服器遭受cc或syn等攻擊,如果發現自己的網站訪問異常緩慢且流量異常。可以使用系統內建netstat命令 簡單判斷一下伺服器是否被攻擊。常用的netstat命令

該命令將顯示所有活動的網路連線。

#netstat -na

檢視同時連線到哪個伺服器IP比較多,cc攻擊用。使用雙網路卡或多網路卡可用。

# netstat -an|awk  '{print $4}'|sort|uniq -c|sort -nr|head

檢視哪些IP連線到伺服器連線多,可以檢視連線異常IP。

#netstat -an|awk -F: '{print $2}'|sort|uniq -c|sort -nr|head

顯示所有80埠的網路連線並排序。這裡的80埠是http埠,所以可以用來監控web服務。如果看到同一個IP有大量連線的話就可以判定單點流量攻擊了。

#netstat -an | grep :80 | sort    

這個命令可以查詢出當前伺服器有多少個活動的 SYNC_REC 連線。正常來說這個值很小,最好小於5。 當有Dos攻擊或的時候,這個值相當的高。但是有些併發很高的伺服器,這個值確實是很高,因此很高並不能說明一定被攻擊。

#netstat -n -p|grep SYN_REC | wc -l   

列出所有連線過的IP地址。

#netstat -n -p | grep SYN_REC | sort -u   

列出所有傳送SYN_REC連線節點的IP地址。

#netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

使用netstat命令計算每個主機連線到本機的連線數。

#netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 

列出所有連線到本機的UDP或者TCP連線的IP數量。

#netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n  

檢查 ESTABLISHED 連線並且列出每個IP地址的連線數量。

#netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr 

列出所有連線到本機80埠的IP地址和其連線數。80埠一般是用來處理HTTP網頁請求。

#netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1  

顯示連線80 埠前10的ip,並顯示每個IP的連線數。這裡的80埠是http埠,所以可以用來監控web服務。如果看到同一個IP有大量連線的話就可以判定單點流量攻擊了。

#netstat -antp | awk '$4 ~ /:80$/ {print $4" "$5}' | awk '{print $2}'|awk -F : {'print $1'} | uniq -c | sort -nr | head -n 10
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章