很多時候我們會遇到服務(wù)器遭受 cc 或 syn 等攻擊,如果發(fā)現(xiàn)自己的網(wǎng)站訪問異常緩慢且流量異常??梢允褂孟到y(tǒng)內(nèi)置 netstat 命令 簡單判斷一下服務(wù)器是否被攻擊。常用的 netstat 命令
創(chuàng)新互聯(lián)是專業(yè)的濠江網(wǎng)站建設(shè)公司,濠江接單;提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行濠江網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
該命令將顯示所有活動的網(wǎng)絡(luò)連接。
查看同時連接到哪個服務(wù)器 IP 比較多,cc 攻擊用。使用雙網(wǎng)卡或多網(wǎng)卡可用。
查看哪些 IP 連接到服務(wù)器連接多,可以查看連接異常 IP。
顯示所有 80 端口的網(wǎng)絡(luò)連接并排序。這里的 80 端口是 http 端口,所以可以用來監(jiān)控 web 服務(wù)。如果看到同一個 IP 有大量連接的話就可以判定單點流量攻擊了。
這個命令可以查找出當(dāng)前服務(wù)器有多少個活動的 SYNC_REC 連接。正常來說這個值很小,最好小于 5。 當(dāng)有 Dos 攻擊或的時候,這個值相當(dāng)?shù)母?。但是有些并發(fā)很高的服務(wù)器,這個值確實是很高,因此很高并不能說明一定被攻擊。
列出所有連接過的 IP 地址。
列出所有發(fā)送 SYN_REC 連接節(jié)點的 IP 地址。
使用 netstat 命令計算每個主機(jī)連接到本機(jī)的連接數(shù)。
列出所有連接到本機(jī)的 UDP 或者 TCP 連接的 IP 數(shù)量。
檢查 ESTABLISHED 連接并且列出每個 IP 地址的連接數(shù)量。
列出所有連接到本機(jī) 80 端口的 IP 地址和其連接數(shù)。80 端口一般是用來處理 HTTP 網(wǎng)頁請求。
顯示連接 80 端口前 10 的 ip,并顯示每個 IP 的連接數(shù)。這里的 80 端口是 http 端口,所以可以用來監(jiān)控 web 服務(wù)。如果看到同一個 IP 有大量連接的話就可以判定單點流量攻擊了。
以下幾種方法檢測linux服務(wù)器是否被攻擊:\x0d\x0a1、檢查系統(tǒng)密碼文件 \x0d\x0a首先從明顯的入手,查看一下passwd文件,ls _l /etc/passwd查看文件修改的日期。 \x0d\x0a2、查看一下進(jìn)程,看看有沒有奇怪的進(jìn)程 \x0d\x0a\x0d\x0a重點查看進(jìn)程:ps _aef | grep inetd inetd是UNIX系統(tǒng)的守護(hù)進(jìn)程,正常的inetd的pid都比較靠前,如果看到輸出了一個類似inetd _s \x0d\x0a/tmp/.xxx之類的進(jìn)程,著重看inetd \x0d\x0a_s后面的內(nèi)容。在正常情況下,LINUX系統(tǒng)中的inetd服務(wù)后面是沒有-s參數(shù)的,當(dāng)然也沒有用inetd去啟動某個文件;而solaris系統(tǒng)中\(zhòng)x0d\x0a也僅僅是inetd \x0d\x0a_s,同樣沒有用inetd去啟動某個特定的文件;如果使用ps命令看到inetd啟動了某個文件,而自己又沒有用inetd啟動這個文件,那就說明已經(jīng)有人入侵了系統(tǒng),并且以root權(quán)限起了一個簡單的后門。\x0d\x0a3、檢查系統(tǒng)守護(hù)進(jìn)程 \x0d\x0a檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep _v “^#”,輸出的信息就是這臺機(jī)器所開啟的遠(yuǎn)程服務(wù)。 \x0d\x0a一般入侵者可以通過直接替換in.xxx程序來創(chuàng)建一個后門,比如用/bin/sh 替換掉in.telnetd,然后重新啟動inetd服務(wù),那么telnet到服務(wù)器上的所有用戶將不用輸入用戶名和密碼而直接獲得一個rootshell。\x0d\x0a4、檢查網(wǎng)絡(luò)連接和監(jiān)聽端口 \x0d\x0a輸入netstat -an,列出本機(jī)所有的連接和監(jiān)聽的端口,查看有沒有非法連接。 \x0d\x0a輸入netstat _rn,查看本機(jī)的路由、網(wǎng)關(guān)設(shè)置是否正確。 \x0d\x0a輸入 ifconfig _a,查看網(wǎng)卡設(shè)置。 \x0d\x0a5、檢查系統(tǒng)日志 \x0d\x0a命令last | \x0d\x0amore查看在正常情況下登錄到本機(jī)的所有用戶的歷史記錄。但last命令依賴于syslog進(jìn)程,這已經(jīng)成為入侵者攻擊的重要目標(biāo)。入侵者通常會停止系\x0d\x0a統(tǒng)的syslog,查看系統(tǒng)syslog進(jìn)程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執(zhí)行的,如果發(fā)現(xiàn)\x0d\x0asyslog被非法動過,那說明有重大的入侵事件。 \x0d\x0a在linux下輸入ls _al /var/log \x0d\x0a檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。 \x0d\x0a6、檢查系統(tǒng)中的core文件 \x0d\x0a通過發(fā)送畸形請求來攻擊服務(wù)器的某一服務(wù)來入侵系統(tǒng)是一種常規(guī)的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說并不能\x0d\x0a100%保證成功入侵系統(tǒng),而且通常會在服務(wù)器相應(yīng)目錄下產(chǎn)生core文件,全局查找系統(tǒng)中的core文件,輸入find / -name core \x0d\x0a_exec ls _l {} \; 依據(jù)core所在的目錄、查詢core文件來判斷是否有入侵行為。\x0d\x0a7、檢查系統(tǒng)文件完整性 \x0d\x0a檢查文件的完整性有多種方法,通常通過輸入ls _l \x0d\x0a文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經(jīng)被替換了就比較麻煩。在LINUX下可以用rpm _V \x0d\x0a`rpm _qf 文件名` \x0d\x0a來查詢,查詢的結(jié)果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這里不一一贅述,可以man \x0d\x0arpm來獲得更多的格式。
服務(wù)器出現(xiàn)緩慢的狀況可能由很多事情導(dǎo)致,比如錯誤的配置,腳本和差的硬件。但是有時候它可能因為有人對你的服務(wù)器用DoS或者DDoS進(jìn)行洪水攻擊。
如何在Linux上使用netstat命令查證DDOS攻擊
DoS攻擊或者DDoS攻擊是試圖讓機(jī)器或者網(wǎng)絡(luò)資源不可用的攻擊。這種攻擊的攻擊目標(biāo)網(wǎng)站或者服務(wù)通常是托管在高防服務(wù)器比如銀行,信用卡支付網(wǎng)管,甚至根域名服務(wù)器,DOS攻擊的實施通常迫使目標(biāo)重啟計算機(jī)或者消耗資源,使他們不再提供服務(wù)或者妨礙用戶,訪客訪問。
在這篇小文章中,你可以知道在受到攻擊之后如何在終端中使用netstat命令檢查你的服務(wù)器。
一些例子和解釋
netstat -na顯示所有連接到服務(wù)器的活躍的網(wǎng)絡(luò)連接netstat -an | grep :80 | sort只顯示連接到80段口的活躍的網(wǎng)絡(luò)連接,80是http端口,這對于web服務(wù)器非常有用,并且對結(jié)果排序.對于你從許多的連接中找出單個發(fā)動洪水攻擊IP非常有用netstat -n -p|grep SYN_REC | wc -l這個命令對于在服務(wù)器上找出活躍的SYNC_REC非常有用,數(shù)量應(yīng)該很低,最好少于5.在dos攻擊和郵件炸彈,這個數(shù)字可能非常高.然而值通常依賴于系統(tǒng),所以高的值可能平分給另外的服務(wù)器.netstat -n -p | grep SYN_REC | sort -u列出所有包含的IP地址而不僅僅是計數(shù).netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'列出所有不同的IP地址節(jié)點發(fā)送SYN_REC的連接狀態(tài)netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n使用netstat命令來計算每個IP地址對服務(wù)器的連接數(shù)量netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n列出使用tcp和udp連接到服務(wù)器的數(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
如何緩解DDoS攻擊
當(dāng)你發(fā)現(xiàn)攻擊你服務(wù)器的IP你可以使用下面的命令來關(guān)閉他們的連接:
iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
請注意你必須用你使用netstat命令找到的IP數(shù)替換$IPADRESS
在完成以上的命令,使用下面的命令殺掉所有httpd連接,清除你的系統(tǒng),然后重啟httpd服務(wù)。
killall -KILL httpd service httpd start #For Red Hat systems /etc/init/d/apache2 restar
Linux系統(tǒng)用netstat命令查看DDOS攻擊具體命令用法如下:
代碼如下:netstat -na
顯示所有連接到服務(wù)器的活躍的網(wǎng)絡(luò)連接
代碼如下:netstat -an | grep :80 | sort
只顯示連接到80段口的活躍的網(wǎng)絡(luò)連接,80是http端口,這對于web服務(wù)器非常有用,并且對結(jié)果排序.對于你從許多的連接中找出單個發(fā)動洪水攻擊IP非常有用
代碼如下:netstat -n -p|grep SYN_REC | wc -l
這個命令對于在服務(wù)器上找出活躍的SYNC_REC非常有用,數(shù)量應(yīng)該很低,最好少于5.
在dos攻擊和郵件炸彈,這個數(shù)字可能非常高.然而值通常依賴于系統(tǒng),所以高的值可能平分給另外的服務(wù)器.
代碼如下:netstat -n -p | grep SYN_REC | sort -u
列出所有包含的IP地址而不僅僅是計數(shù).
代碼如下:netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出所有不同的IP地址節(jié)點發(fā)送SYN_REC的連接狀態(tài)
代碼如下:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
使用netstat命令來計算每個IP地址對服務(wù)器的連接數(shù)量
代碼如下:netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出使用tcp和udp連接到服務(wù)器的數(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
如何緩解ddos攻擊
當(dāng)你發(fā)現(xiàn)攻擊你服務(wù)器的IP你可以使用下面的命令來關(guān)閉他們的連接:
代碼如下:iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
請注意你必須用你使用netstat命令找到的IP數(shù)替換$IPADRESS