戴周成 發表於 2023-5-22 00:00:00

ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?

<p>
        前几天一个朋友的网站突然打不开了,怀疑被DDoS攻击叫我帮忙看一下,经过诊断发现,可能是有人使用作弊手段刷广告,导致流量暴增,服务器机房的人以为被DDoS攻击了赶紧黑洞了服务器,导致网站打不开了。那小编是如何判断服务器是否被DDoS恶意攻击呢?</p>
<p align="center">
        <img title="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" alt="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/44dfe4a3f125539234424ac40e72ea39.jpg" width="539"></p>
<p>
        <strong>诊断</strong></p>
<p>
        遇到怀疑攻击情况,首先要看看服务器上面的情况,首先top一下,看看服务器负载,如果负载不高,那么基本可以判断不是cc类型的攻击,再输入命令</p>
<blockquote>
        <p>
                netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S}'</p>
</blockquote>
<p>
        查看下网络连接的情况,会得到下面这些结果:</p>
<p align="center">
        <img title="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" alt="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/f2e21cfcb61a3ea420a9fc52e0e4ef57.jpg" width="628"></p>
<p>
        TCP/IP协议使用三次握手来建立连接,过程如下:</p>
<p>
        1、第一次握手,客户端发送数据包syn到服务器,并进入SYN_SEND状态,等待回复</p>
<p>
        2、第二次握手,服务器发送数据报syn/ack,给客户机,并进入SYN_RECV状态,等待回复</p>
<p>
        3、第三次握手,客户端发送数据包ACK给客户机,发送完成后,客户端和服务器进入ESTABLISHED状态,链接建立完成</p>
<p>
        如果ESTABLISHED非常地高,那么可能是有人在恶意攻击,进一步判断,可以把下面命令保存为脚本执行一下:</p>
<blockquote>
        <p>
                for i in `netstat -an | grep -i ':80 '|grep 'EST' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 &gt; 50) {print $2}}'`</p>
        <p>
                do</p>
        <p>
                echo $i</p>
        <p>
                echo $i &gt;&gt; /tmp/evilip</p>
        <p>
                done</p>
</blockquote>
<p>
        如果输出了多个结果,那么可能表示有人在企图进行DDOS攻击,想用TCP连接来拖死你的服务器,输出的ip就是发出请求的服务器地址,并且保存在了/tmp/evilip里面。如果没有结果,可以调整一下阈值,把50改成40试一试,对策我们后面再说,这里只讲判断。</p>
<p align="center">
         </p>
<p>
        如果SYN_RECV非常高,那么表示受到了SYN洪水攻击。</p>
<p>
        如果上面的值看不出什么异常的话,我们来抓包分析下,可能并非基于TCP的攻击。抓包命令:</p>
<blockquote>
        <p>
                tcpdump -w tmp.pcap port not 22</p>
</blockquote>
<p>
        抓包感觉差不多了就ctrl+c结束,结果在保存在当前目录下的tmp.pcap文件中,我们可以使用命令</p>
<blockquote>
        <p>
                tcpdump -r tmp.pcap -nnA</p>
</blockquote>
<p>
        来查看,也可以拖回本地用wireshark打开分析等,个人喜好了。如果出现大量的ICMP包或者大量的UDP包,那么可能就是针对性的ICMP洪水以及UDP洪水了。</p>
<p align="center">
        <img title="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" alt="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/6f248255f35f345d09689268952cbda1.jpg" width="640"></p>
<p>
        <strong>TCP连接攻击</strong></p>
<p>
        TCP连接攻击算是比较古老的了,防御起来也相对比较简单,主要是利用大量的TCP连接来消耗系统的网络资源,通常同一个IP会建立数量比较大的TCP连接,并且一直保持。应对方法也比较简单,可以将以下命令保存为脚本,定时ban掉那些傀儡机ip</p>
<blockquote>
        <p>
                for i in `netstat -an | grep -i ':80 '|grep 'EST' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 &gt; 50) {print $2}}'`</p>
        <p>
                do</p>
        <p>
                echo $i</p>
        <p>
                echo $i &gt;&gt; /tmp/banip</p>
        <p>
                /sbin/iptables -A INPUT -p tcp -j DROP -s $i</p>
        <p>
                done</p>
</blockquote>
<p>
        banip文件里面记录了所有被ban的ip地址信息,方面进行反渗透以及证据保存等等。为了更好地加固系统,我们可以使用iptables来限制一下,单个ip的最大连接数。</p>
<blockquote>
        <p>
                iptables -t filter -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT</p>
</blockquote>
<p>
        限制每个ip的连接数为10。如果是大些业务系统的话,需要注意,上面的做法可能导致一些共用IP的用户访问中断。需要谨慎。</p>
<p align="center">
        <img title="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" alt="ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/10e08741142939f2fad3913e376c4a7d.jpg" width="501"></p>
<p>
        <strong>SYN洪水攻击</strong></p>
<p>
        SYN洪水是利用TCP/IP协议的设计缺陷来进行攻击的,采用一些策略以及配置可以适当的降低攻击的影响,但并不能完全消除。</p>
<blockquote>
        <p>
                sysctl -w net.ipv4.tcp_syncookies=1</p>
        <p>
                sysctl -w net.ipv4.tcp_syn_retries = 0</p>
        <p>
                sysctl -w net.ipv4.tcp_max_syn_backlog=2048</p>
</blockquote>
<ul>
<li>
                tcp_syncookies设置为1表示启用syncookie,可以大大降低SYN攻击的影响,但是会带来新的安全缺陷。</li>
        <li>
                tcp_syn_retries 表示syn重试次数,重传次数设置为0,只要收不到客户端的响应,立即丢弃该连接,默认设置为5次。</li>
        <li>
                tcp_max_syn_backlog表示syn等待队列,改小这个值,使得SYN等待队列变短,减少对系统以及网络资源的占用。</li>
</ul>
<p align="center">
         </p>
<p>
        当攻击者的资源非常的多,上面这些方法限制可能就没有什么防护效果了,面对大流量DDoS攻击还是要考虑采用多机负载或者选择墨者安全高防来应对了,一般来说多机负载的成本可能更高,所以大部分人还是选择高防硬防产品来防御。</p>
<p>
        原文地址:https://blog.csdn.net/weixin_28886649/article/details/119402982</p>
頁: [1]
查看完整版本: ddos攻击服务器会显示什么?怎么判断服务器是否被DDoS恶意攻击?