如何使用netstat命令判斷服務(wù)器是否遭受DDoS攻擊?
一般來說,服務(wù)器非常慢可能原因是多方面的,有可能是配置錯誤,腳本錯誤或者是一些奇詭的硬件。當(dāng)然也有可能是有人對你的服務(wù)器進行 Dos (拒絕服務(wù)攻擊)或者 DDOS (分布式拒絕服務(wù)攻擊)。
Dos攻擊或者DDos攻擊目的是使服務(wù)器或者網(wǎng)絡(luò)資源耗盡,使其他用戶無法使用。一般來說,這種攻擊主要針對重要的網(wǎng)站或服務(wù),比如銀行、信用卡支付網(wǎng)關(guān)甚至是根域名服務(wù)器。
Dos攻擊主要通過強制目標(biāo)主機重啟或大量消耗其主機資源,使得目標(biāo)主機無法提供服務(wù)或者妨害主機和用戶之間的通信的手段,使得主機無法提供正常的服務(wù)的。
在本文中分享如何在終端中使用netstat命令判斷服務(wù)器是否遭受Dos攻擊。
netstat命令的用戶手冊描述其作用是用來顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計、偽連接和組播成員的。
1. 一些例子和解釋
- netstat -na
該命令將顯示所有活動的網(wǎng)絡(luò)連接。
- netstat -an | grep :80 | sort
顯示所有80端口的網(wǎng)絡(luò)連接并排序。這里的80端口是http端口,所以可以用來監(jiān)控web服務(wù)。如果看到同一個IP有大量連接的話就可以判定單點流量攻擊了。
- netstat -n -p|grep SYN_REC | wc -l
這個命令可以查找出當(dāng)前服務(wù)器有多少個活動的 SYNC_REC 連接。正常來說這個值很小,最好小于5。
當(dāng)有Dos攻擊或者郵件炸彈的時候,這個值相當(dāng)?shù)母摺1M管如此,這個值和系統(tǒng)有很大關(guān)系,有的服務(wù)器值就很高,也是正?,F(xiàn)象。
- netstat -n -p | grep SYN_REC | sort -u
列出所有連接過的IP地址。
- netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出所有發(fā)送SYN_REC連接節(jié)點的IP地址。
- netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
使用netstat命令計算每個主機連接到本機的連接數(shù)。
- netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出所有連接到本機的UDP或者TCP連接的IP數(shù)量。
- netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
檢查 ESTABLISHED 連接并且列出每個IP地址的連接數(shù)量。
- netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
列出所有連接到本機80端口的IP地址和其連接數(shù)。80端口一般是用來處理HTTP網(wǎng)頁請求。
2. 如何減少DOS攻擊
一旦你獲得攻擊服務(wù)器的IP地址你就可以使用以下命令拒絕此IP的所有連接。
- iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
注意,你需要將 $IPADRESS 替換成需要拒絕連接的IP地址。
執(zhí)行完以上命令后,使用以下命令結(jié)束所有的httpd連接以清理系統(tǒng)。
- killall -KILL httpd
然后執(zhí)行以下命令重啟httpd服務(wù)。
- service httpd start #RedHat 系統(tǒng)
- /etc/init/d/apache2 restart #Debian 系統(tǒng)