2022-10-06 分類: 網(wǎng)站建設(shè)
常見流量攻擊
服務(wù)器的攻擊分為四類,cc攻擊、syn攻擊、udp攻擊、tcp洪水攻擊。那么當(dāng)被攻擊時(shí)會(huì)出現(xiàn)哪些癥狀呢,我們是如何來判斷服務(wù)器是否被攻擊,屬于哪種攻擊類型?第一種類型:CC類攻擊
CC攻擊是DDoS(分布式拒絕服務(wù))的一種,這種一種比DDOS流氓行為更具有技術(shù)含量的一種攻擊方式,CC攻擊完全模擬正常訪問行為,沒有虛假IP,也沒有大的流量異常,但一樣會(huì)造成您的服務(wù)器無法正常連接,一條ADSL的普通用戶發(fā)起的CC攻擊就可以干掉一臺(tái)高性能的服務(wù)器。
服務(wù)器唄CC攻擊時(shí),會(huì)出現(xiàn)80端口關(guān)閉的現(xiàn)象,即出現(xiàn)丟包和高延遲的現(xiàn)象, 因?yàn)?0端口被大量的垃圾數(shù)據(jù)堵塞導(dǎo)致正常的連接被中止??梢酝ㄟ^在CMD命令窗口輸入命令 netstat -an 來查看,如果看到類似如下大量顯示雷同的連接記錄基本就可以被CC攻擊了:
……
TCP 192.168.1.3:80 192.168.1.6:2205 SYN_RECEIVED 4
A.網(wǎng)站出現(xiàn)service unavailable提示
B.CPU占用率很高C.網(wǎng)絡(luò)連接狀態(tài):netstat –na,若觀察到大量的ESTABLISHED的連接狀態(tài)
單個(gè)IP高達(dá)幾十條甚至上百條
D.外部無法打開網(wǎng)站,軟重啟后短期內(nèi)恢復(fù)正常,幾分鐘后又無法訪問。CC類攻擊檢測
第一條命令:tcpdump -s0 -A -n -i any | grep -o -E '(GET|POST|HEAD) .*'正常的輸出結(jié)果類似于這樣POST /ajax/validator.php HTTP/1.1第二種類型:SYN類攻擊
A.CPU占用很高B.網(wǎng)絡(luò)連接狀態(tài):netstat –na,若觀察到
大量的SYN_RECEIVED的連接狀態(tài) SYN類攻擊檢測netstat -na 顯示所有活動(dòng)的網(wǎng)絡(luò)連接netstat -an | grep :80 | sort 顯示所有80端口的網(wǎng)絡(luò)連接并排序。80端口為http端口netstat -n -p | grep SYN_REC | wc -l 查看當(dāng)前有多少活動(dòng)的SYNC_REC連接,最好值小于5.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é)點(diǎn)的IP地址netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n使用netstat命令計(jì)算每個(gè)主機(jī)連接到本機(jī)的連接數(shù)netstat -anp | grep ‘tcp|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n 列出所有連接到本機(jī)的udp或者tcp連接的數(shù)量netstat -ntu | grep ESTAB | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr 檢查ESTABLISHED 連接并且列出每個(gè)IP地址的連接數(shù)量Netstat -plan|grep :80| awk {‘print $5’} | cut -d: -f1 | sort | uniq -c | sort -nk 1 列出所有連接到本機(jī)80端口的IP地址和其他連接數(shù)
1、利用netstat 工具來檢測查看SYN連接netstat -n -p -t |wc -l防護(hù)SYN類攻擊措施
防范也主要從兩方面入手,一是sysctl的自身的關(guān)于syn方面的配置,二是防火墻策略上。sysctl -w net.ipv4.tcp_syncookies=1 # tcp syncookie,默認(rèn)關(guān)閉sysctl -w net.ipv4.tcp_max_syn_backlog=1280 # syn隊(duì)列,默認(rèn)1024,》 1280可能工作不穩(wěn)定,需要修改內(nèi)核源碼參數(shù)sysctl -w net.ipv4.tcp_synack_retries=2 # syn-ack握手狀態(tài)重試次數(shù),默認(rèn)5,遭受syn-flood攻擊時(shí)改為1或2sysctl -w net.ipv4.tcp_syn_retries=2 # 外向syn握手重試次數(shù),默認(rèn)4
通過下列命令查看。[root@localhost nginx]# sysctl -a|grep synnet.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120net.ipv4.tcp_max_syn_backlog = 1024net.ipv4.tcp_syncookies = 1net.ipv4.tcp_synack_retries = 5net.ipv4.tcp_syn_retries = 5fs.quota.syncs =25
如未受到攻擊,上面的參數(shù)不建議修改。據(jù)說有增加主機(jī)的不穩(wěn)定性的風(fēng)險(xiǎn)。第三種類型:UDP類攻擊
A.觀察網(wǎng)卡狀況 每秒接受大量的數(shù)據(jù)包
B.網(wǎng)絡(luò)狀態(tài):netstat –na TCP信息正常UDP類攻擊檢測
檢測udp端口檢測端口是否打開:nc -zuv ip 端口服務(wù)器監(jiān)聽端口:nc -l -u ip 端口(可以發(fā)送和接受信息)客戶端檢測端口:nc -u ip 端口(可以發(fā)送和接受信息)查看監(jiān)聽的tup端口:ss -ant查看監(jiān)聽的udp端口:ss -anu查看所有協(xié)議端口:ss -ano
第四種類型:TCP洪水攻擊
A.CPU占用很高B.netstat –na,若觀察到大量的ESTABLISHED的連接狀態(tài) 單個(gè)IP高達(dá)幾十條甚至上百條,屬于正常。
查看TCP端口連接數(shù)查看網(wǎng)絡(luò)連接總數(shù)# netstat -an |wc -l查看某個(gè)特定ip的連接數(shù)# netstat -an |grep 8.8.8.8 |wc -l查看連接數(shù)等待time_wait狀態(tài)連接數(shù)# netstat -an |grep TIME_WAIT|wc -l查看建立穩(wěn)定連接數(shù)量# netstat -an |grep ESTABLISHED |wc -l查看不同狀態(tài)的連接數(shù)# netstat -an | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'查看每個(gè)ip跟服務(wù)器建立的連接數(shù)# netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn(PS:正則解析:顯示第5列,-F : 以:分割,顯示列,sort 排序,uniq -c統(tǒng)計(jì)排序過程中的重復(fù)行,sort -rn 按純數(shù)字進(jìn)行逆序排序)查看每個(gè)ip建立的ESTABLISHED/TIME_OUT狀態(tài)的連接數(shù)# netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
以下是我自己用VPS測試的結(jié)果:root:~# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n1 114.226.9.xx1 174.129.237.xx1 58.60.118.xx1 Address1 servers)2 118.26.131.xx3 123.125.1.x
每個(gè)IP幾個(gè)、十幾個(gè)或幾十個(gè)連接數(shù)都還算比較正常,如果像上面成百上千肯定就不正常了。
上述所講到的判斷分析,讓我們能準(zhǔn)確的判斷存在的問題是什么,怎么第一時(shí)間來解決問題。讓我們能更好的維護(hù)我們的網(wǎng)站安全。 TCP洪水攻擊檢測# tail -f /var/log/messagesApr 18 11:21:56 web5 kernel: possible SYN flooding on port 80. Sending cookies.
檢查連接數(shù)增多,并且SYN_RECV 連接特別多:檢查連接數(shù)增多,并且SYN_RECV 連接特別多:# netstat -n awk '/^tcp/ { S[$NF]} END {for(a in S) print a, S[a]}'TIME_WAIT 16855CLOSE_WAIT 21SYN_SENT 99FIN_WAIT1229
根據(jù)經(jīng)驗(yàn),正常時(shí)檢查連接數(shù)如下:# netstat -n awk'/^tcp/ { S[$NF]} END {for(a in S) print a, S[a]}'
根據(jù)netstat查看到的對(duì)方IP特征:# netstat -na grep SYN_RECV more
以下配置,第一段參數(shù)是最重要的,第二段參數(shù)是輔助的,其余參數(shù)是其他作用的:# vi /etc/sysctl.confnet.ipv4.tcp_synack_retries=0#半連接隊(duì)列長度net.ipv4.tcp_max_syn_backlog=200000#系統(tǒng)允許的文件句柄的大數(shù)目,因?yàn)檫B接需要占用文件句柄fs.file-max=819200#用來應(yīng)對(duì)突發(fā)的大并發(fā)connect 請(qǐng)求net.core.somaxconn=65536#大的TCP 數(shù)據(jù)接收緩沖(字節(jié))net.core.rmem_max=1024123000#大的TCP 數(shù)據(jù)發(fā)送緩沖(字節(jié))net.core.wmem_max=16777216#網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時(shí),允許送到隊(duì)列的數(shù)據(jù)包的大數(shù)目net.core.netdev_max_backlog=165536#本機(jī)主動(dòng)連接其他機(jī)器時(shí)的端口分配范圍net.ipv4.ip_local_port_range=1000065535
使配置生效:# sysctl -p注意,以下參數(shù)面對(duì)外網(wǎng)時(shí),不要打開。因?yàn)楦弊饔煤苊黠@,具體原因請(qǐng)google,如果已打開請(qǐng)顯式改為0,然后執(zhí)行sysctl -p關(guān)閉。因?yàn)榻?jīng)過試驗(yàn),大量TIME_WAIT狀態(tài)的連接對(duì)系統(tǒng)沒太大影響:#當(dāng)出現(xiàn) 半連接 隊(duì)列溢出時(shí)向?qū)Ψ桨l(fā)送syncookies,調(diào)大 半連接 隊(duì)列后沒必要net.ipv4.tcp_syncookies=0#TIME_WAIT狀態(tài)的連接重用功能net.ipv4.tcp_tw_reuse=0#時(shí)間戳選項(xiàng),與前面net.ipv4.tcp_tw_reuse參數(shù)配合net.ipv4.tcp_timestamps=0#TIME_WAIT狀態(tài)的連接回收功能net.ipv4.tcp_tw_recycle=0防御TCP洪水攻擊方法通過調(diào)整tcp參數(shù)來防范DDOS攻擊
sysctl -a | grep syn 看到:SYN相關(guān)的配置 net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5tcp_max_syn_backlog是SYN隊(duì)列的長度,tcp_syncookies是一個(gè)開關(guān),是否打開SYN Cookie 功能,該功能可以防止部分SYN攻擊。tcp_synack_retries和tcp_syn_retries定義SYN 的重試次數(shù)。加大SYN隊(duì)列長度可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù),打開SYN Cookie功能可以阻止部分 SYN攻擊,降低重試次數(shù)也有一定效果。
調(diào)整上述設(shè)置的方法是:
增加SYN隊(duì)列長度到2048:sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打開SYN COOKIE功能:sysctl -w net.ipv4.tcp_syncookies=1
降低重試次數(shù):sysctl -w net.ipv4.tcp_synack_retries=3sysctl -w net.ipv4.tcp_syn_retries=3
為了系統(tǒng)重啟動(dòng)時(shí)保持上述配置,可將上述命令加入到/etc/rc.d/rc.local文件中。
防止同步包洪水(Sync Flood)# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
也有人寫作#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT--limit 1/s 限制syn并發(fā)數(shù)每秒1次,可以根據(jù)自己的需要修改
防止各種端口掃描# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping洪水攻擊(Ping of Death)# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT擴(kuò)展 問題1:解決time_wait連接數(shù)大量問題
查詢到time_wait連接數(shù)過多情況下,調(diào)整內(nèi)核參數(shù):/etc/sysctl.conf# vim /etc/sysctl.conf添加以下配置文件:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 300讓配置生效# /sbin/sysctl -p參數(shù)詳解:1.net.ipv4.tcp_syncookies = 1 表示開啟 syn cookies 。當(dāng)出現(xiàn) syn 等待隊(duì)列溢出時(shí),啟用 cookies 來處理,可防范少量 syn ***,默認(rèn)為 0 ,表示關(guān)閉; 2.net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將 time-wait sockets 重新用于新的 tcp 連接,默認(rèn)為 0 ,表示關(guān)閉;3.net.ipv4.tcp_tw_recycle = 1 表示開啟 tcp 連接中 time-wait sockets 的快速回收,默認(rèn)為 0 ,表示關(guān)閉。4.net.ipv4.tcp_fin_timeout 修改系靳默認(rèn)的 timeout 時(shí)間
如果以上配置調(diào)優(yōu)后性能還不理想,可繼續(xù)修改一下配置:# vim /etc/sysctl.confnet.ipv4.tcp_keepalive_time = 1200 #表示當(dāng)keepalive起用的時(shí)候,TCP發(fā)送keepalive消息的頻度。缺省是2小時(shí),改為20分鐘。net.ipv4.ip_local_port_range = 1024 65000 #表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。net.ipv4.tcp_max_syn_backlog = 8192 #表示SYN隊(duì)列的長度,默認(rèn)為1024,加大隊(duì)列長度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。net.ipv4.tcp_max_tw_buckets = 5000 #表示系統(tǒng)同時(shí)保持TIME_WAIT套接字的大數(shù)量,如果超過這個(gè)數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認(rèn)為180000,改為5000。對(duì)于Apache、Nginx等服務(wù)器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字?jǐn)?shù)量,但是對(duì)于 Squid,效果卻不大。此項(xiàng)參數(shù)可以控制TIME_WAIT套接字的大數(shù)量,避免Squid服務(wù)器被大量的TIME_WAIT套接字拖死。 問題2:ESTABLISHED連接數(shù)過大問題
怎么解決請(qǐng)求結(jié)束后依然存在大量ESTABLISHED沒有被釋放
初步推斷是tomcat服務(wù)器回收session時(shí)出了問題,這個(gè)一般都跟服務(wù)器的Timeout設(shè)置有聯(lián)系。
查看tomcat的配置文件 server.xmlCopy<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />*****
檢查配置得出20000毫秒的時(shí)候acceptCount=”100” ,明顯不合理,大連接數(shù)也太小了吧。
所以進(jìn)一步優(yōu)化:CopyconnectionTimeout="20000" 改為 connectionTimeout="100"acceptCount="100"改為acceptCount="5000"DDoS攻擊防御方法
**1. 過濾不必要的服務(wù)和端口:**可以使用Inexpress、Express、Forwarding等工具來過濾不必要的服務(wù)和端口,即在路由器上過濾假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以針對(duì)封包Source IP和Routing Table做比較,并加以過濾。只開放服務(wù)端口成為目前很多服務(wù)器的流行做法,例如WWW服務(wù)器那么只開放80而將其他所有端口關(guān)閉或在防火墻上做阻止策略。 **2. 異常流量的清洗過濾:**通過DDOS硬件防火墻對(duì)異常流量的清洗過濾,通過數(shù)據(jù)包的規(guī)則過濾、數(shù)據(jù)流指紋檢測過濾、及數(shù)據(jù)包內(nèi)容定制過濾等頂尖技術(shù)能準(zhǔn)確判斷外來訪問流量是否正常,進(jìn)一步將異常流量禁止過濾。單臺(tái)負(fù)載每秒可防御800-927萬個(gè)syn攻擊包。
**3. 分布式集群防御:**這是目前網(wǎng)絡(luò)安全界防御大規(guī)模DDOS攻擊的最有效辦法。分布式集群防御的特點(diǎn)是在每個(gè)節(jié)點(diǎn)服務(wù)器配置多個(gè)IP地址(負(fù)載均衡),并且每個(gè)節(jié)點(diǎn)能承受不低于10G的DDOS攻擊,如一個(gè)節(jié)點(diǎn)受攻擊無法提供服務(wù),系統(tǒng)將會(huì)根據(jù)優(yōu)先級(jí)設(shè)置自動(dòng)切換另一個(gè)節(jié)點(diǎn),并將攻擊者的數(shù)據(jù)包全部返回發(fā)送點(diǎn),使攻擊源成為癱瘓狀態(tài),從更為深度的安全防護(hù)角度去影響企業(yè)的安全執(zhí)行決策。
**4. 高防智能DNS解析:**高智能DNS解析系統(tǒng)與DDOS防御系統(tǒng)的好結(jié)合,為企業(yè)提供對(duì)抗新興安全威脅的超級(jí)檢測功能。它顛覆了傳統(tǒng)一個(gè)域名對(duì)應(yīng)一個(gè)鏡像的做法,智能根據(jù)用戶的上網(wǎng)路線將DNS解析請(qǐng)求解析到用戶所屬網(wǎng)絡(luò)的服務(wù)器。同時(shí)智能DNS解析系統(tǒng)還有宕機(jī)檢測功能,隨時(shí)可將癱瘓的服務(wù)器IP智能更換成正常服務(wù)器IP,為企業(yè)的網(wǎng)絡(luò)保持一個(gè)永不宕機(jī)的服務(wù)狀態(tài)。
參考鏈接 :
https://www.cnblogs.com/mydomain/archive/2013/05/14/3079002.html
https://www.cnblogs.com/hello-sky/p/11598954.html
五種簡單CC攻擊解決方案 http://www.anxinidc.com/faq/anquan/126.html
linux檢測及防止DDOS攻擊的技巧(2) http://www.xitongzhijia.net/xtjc/20150608/50328_2.html
TCP洪水攻擊(DDOS)診斷與防護(hù)http://blog.sina.com.cn/s/blog_6f82cb740101j7z0.html
服務(wù)器被ddos攻擊?分析如何防止DDOS攻擊? :https://blog.csdn.net/weixin_34407348/article/details/86013716?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase
DDos攻擊的常見方法及防御方法 https://www.cnblogs.com/larry-luo/p/10208074.html
新聞標(biāo)題:查看服務(wù)器是否被DDOS攻擊的方法
轉(zhuǎn)載來源:http://www.rwnh.cn/news23/202673.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站營銷、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容