您的位置: 新闻资讯 > 行业动态 > 正文

CentOS服务器DDoS攻击检测全攻略:从基础命令到专业工具(图文)


来源:mozhe 2025-09-05

一、快速判断:基础命令检测异常连接



在 CentOS 系统中,借助一些基础命令,能快速判断是否遭受 DDoS 攻击。这些命令就像网络安全的 “侦察兵”,帮助我们从网络连接的细节中发现异常。

(一)查看活跃 IP 连接列表


在排查 DDoS 攻击时,查看活跃 IP 连接列表是非常关键的一步。在 CentOS 系统中,我们可以通过一系列命令组合来实现这一目的。具体命令如下:

 
netstat -anp | grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -r -n
这条命令看起来复杂,实则每一步都有其作用。netstat -anp用于显示系统所有的网络连接,包括 TCP 和 UDP 连接,并展示对应的进程信息。grep 'tcp\|udp'则是筛选出 TCP 和 UDP 相关的连接信息,确保我们关注的是网络连接数据 。awk '{print $5}'从前面的输出结果中提取出第 5 列数据,这一列通常包含了连接的目标 IP 和端口信息。cut -d: -f1进一步处理,通过冒号作为分隔符,提取出 IP 地址部分,去除端口信息,让我们专注于 IP 的分析。sort对提取出的 IP 地址进行排序,uniq -c统计每个 IP 出现的次数,最后sort -r -n按照出现次数从高到低进行倒序排列。
通过这样的命令组合,我们可以获取到连接到服务器的 IP 及其连接频次的列表。例如,在正常情况下,我们可能会看到一些常见的 IP,如服务器自身的管理 IP,以及一些固定合作伙伴的 IP 有较为稳定的连接次数。但如果出现 DDoS 攻击,在这个列表中就会出现异常情况。比如,短时间内会有大量不同的 IP 高频连接,或者单个 IP 的连接数异常激增。假设我们看到某个 IP 在几分钟内连接次数达到了数千次,远远超出正常业务访问的频率,这就需要我们高度警惕,它极有可能是 DDoS 攻击的源头或者是攻击的一部分。

(二)监控指定端口活跃连接数


对于 DDoS 攻击的检测,监控指定端口的活跃连接数也是一种非常有效的手段,特别是 HTTP 服务常用的 80 端口。我们可以使用以下命令来实现:

 
netstat -n | grep :80 | wc -l
这条命令可以统计出当前与 80 端口建立的总活跃连接数。netstat -n以数字形式显示网络连接的地址和端口,避免 DNS 解析带来的时间开销,提高命令执行效率。grep :80筛选出与 80 端口相关的连接信息,确保我们关注的是 HTTP 服务端口。wc -l则对筛选后的结果进行行数统计,得出总活跃连接数。
在正常业务情况下,一个网站的 80 端口活跃连接数会在一个相对稳定的范围内波动。比如,一个小型企业网站,其 80 端口的总活跃连接数可能通常在几十到几百之间。然而,当遭受 DDoS 攻击时,这个数字会急剧上升。如果总连接数持续超过 500,就需要引起我们的高度重视,服务器很可能正在遭受攻击。
除了总活跃连接数,我们还需要关注 SYN 半开连接数,因为这对于检测同步攻击(SYN Flood 攻击)至关重要。可以使用以下命令来统计:

 
netstat -n | grep :80 | grep SYN | wc -l
在这条命令中,增加了grep SYN,用于进一步筛选出处于 SYN 状态的连接,也就是 SYN 半开连接。在 TCP 连接建立的三次握手过程中,当客户端发送 SYN 包到服务器,服务器返回 SYN + ACK 包后,此时的连接就处于 SYN 半开状态,等待客户端的 ACK 包完成连接建立。正常情况下,SYN 半开连接数应该是较少的。但在 SYN Flood 攻击中,攻击者会大量发送 SYN 包,却不完成后续的握手过程,导致服务器的 SYN 半开连接队列被填满,无法正常处理其他合法的连接请求。如果 SYN 连接数超过 100,服务器极有可能正遭受同步攻击。

二、精准定位:识别攻击特征与异常流量


在初步判断服务器可能遭受 DDoS 攻击后,接下来需要更精准地定位攻击,识别其特征与异常流量。这一步就像是医生对病人进行深入检查,只有明确病因,才能对症下药。

(一)区分 DDoS 攻击类型


DDoS 攻击类型多样,主要可分为流量型攻击和连接型攻击,不同类型的攻击有不同的特征和应对方法。
  1. 流量型攻击
流量型攻击是 DDoS 攻击中较为常见的一种,其特点是通过向目标服务器发送大量的网络流量,使服务器的带宽资源被耗尽,从而无法正常提供服务。在检测流量型攻击时,我们可以通过观察服务器的带宽利用率来判断。正常情况下,服务器的带宽利用率会保持在一个相对稳定的范围内,例如在业务高峰期可能会达到 60% - 70%,但不会持续长时间接近满负载。然而,当遭受流量型 DDoS 攻击时,带宽利用率会突然飙升,甚至达到满负载状态,并且持续时间较长,远远高于正常的业务峰值。
为了更直观地查看服务器的网络流量情况,我们可以使用一些工具,如 nload 或 iftop。nload 是一个实时监控网络流量和带宽使用的控制台应用程序,它使用两个图表可视化地展示接收和发送的流量,并提供诸如数据交换总量、最小 / 最大网络带宽使用量等附加信息。安装 nload 非常简单,在 CentOS 系统中,我们可以使用以下命令进行安装:

 
yum install nload -y
安装完成后,直接在终端输入nload命令,即可打开 nload 界面,实时查看网络流量情况。在 nload 界面中,我们可以看到 TX(发送流量)和 RX(接收流量)的实时数据,以及流量的变化趋势。
iftop 也是一个常用的网络流量监控工具,它可以监听指定接口上的网络流量,反向解析 IP,显示端口信息等,并显示一对主机对当前带宽使用情况的表格。安装 iftop 的命令如下:

 
yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar -zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
运行 iftop 命令时,可以通过指定参数来监控特定的网络接口,例如iftop -i eth0表示监控 eth0 接口的网络流量。在 iftop 的界面中,我们可以清晰地看到每个连接的源 IP 和目标 IP,以及它们之间的流量传输情况。通过这些信息,我们可以快速定位到异常流量的来源,判断是否存在流量型 DDoS 攻击。
  1. 连接型攻击
连接型攻击主要是通过向目标服务器发起大量的连接请求,耗尽服务器的连接资源,使其无法处理正常的连接请求。在这类攻击中,攻击者常常利用海量的半开连接来达到目的。所谓半开连接,是指在 TCP 三次握手过程中,客户端发送了 SYN 包,服务器返回了 SYN + ACK 包,但客户端并没有回复 ACK 包,导致连接处于一种中间状态,即半开连接。正常情况下,服务器上的 SYN 连接数是相对稳定的,且数量较少。但在遭受连接型 DDoS 攻击时,SYN 连接数会急剧增加。
我们在前面已经介绍过如何使用netstat -n | grep :80 | grep SYN | wc -l命令来统计指定端口(如 80 端口)的 SYN 半开连接数。攻击者会利用工具或者恶意程序,不断地向服务器发送 SYN 包,却不完成后续的握手过程,导致服务器的 SYN 连接队列被填满。当 SYN 连接数持续过高时,服务器将无法正常处理其他合法的连接请求,从而导致服务不可用。所以,密切关注 SYN 连接数的变化,是检测连接型 DDoS 攻击的关键。

(二)排查木马与恶意进程


在 DDoS 攻击中,除了外部的攻击流量和连接请求,服务器内部也可能存在被植入的木马或恶意进程,它们可能会协助攻击者进行攻击,或者自身就会消耗大量的系统资源,导致服务器性能下降。因此,排查木马与恶意进程也是应对 DDoS 攻击的重要环节。
  1. 进入安全模式
当怀疑服务器存在木马或恶意进程时,首先需要进入安全模式。在 CentOS 系统中,重启服务器时,在硬件自检之后系统启动之前,按 F8 键,即可进入启动选项菜单,选择安全模式进入系统。进入安全模式后,系统会只加载最基本的驱动程序和服务,并且会切断网络连接,这样可以避免恶意进程与外部攻击者进行通信,同时也可以防止攻击的持续进行。
  1. 检查自启动项
进入安全模式后,接下来需要检查系统的自启动项,因为木马或恶意进程常常会将自己添加到自启动项中,以便在系统启动时自动运行。在 CentOS 系统中,我们可以通过注册表或系统配置工具来检查自启动项。对于 CentOS 7 及以上版本,常用的工具是 systemctl。使用以下命令可以查看系统中所有服务的开机启动状态:

 
systemctl list-unit-files
在输出结果中,enabled 表示该服务开机自启动,disabled 表示该服务开机不启动。我们需要仔细检查这些自启动项,查看是否有可疑的服务。例如,如果发现一个名为random_service的服务,其描述信息模糊,且不是系统正常运行所必需的服务,那么就需要进一步检查它是否为恶意程序。
另外,我们还可以通过查看一些特定的配置文件来检查自启动项。例如,在/etc/rc.d/rc.local文件中,可能会包含一些自定义的自启动脚本。我们需要检查这些脚本的内容,确保它们是安全的。还有win.ini文件,在这个文件中,如果发现load=或shell=后面跟着的不是系统文件路径,而是一些可疑的路径,那么就有可能是恶意程序。比如load=c:\windows\system32\malicious.exe,这就明显是一个异常的自启动项,我们需要将其删除。
  1. 终止恶意进程
检查完自启动项后,如果发现了可疑的进程,就需要终止这些进程。在 CentOS 系统中,我们可以使用 top 或 htop 工具来定位占用 CPU 或内存过高的异常进程。top 是一个预装在大多数 Linux 系统中的实时监控工具,可以显示系统中所有进程的资源使用情况。通过执行top命令,进入 top 界面后,默认情况下,top 会按照 CPU 使用率降序排列进程列表。我们可以通过观察%CPU列,找到占用 CPU 最高的进程。如果发现某个进程的 CPU 使用率持续过高,且进程名称或命令看起来可疑,那么它很可能是一个恶意进程。
htop 是 top 的增强版本,提供了更友好的交互式界面和更多的可视化特性。如果系统未安装 htop,可以通过包管理器进行安装,在 CentOS 系统中,使用以下命令安装:

 
yum install htop -y
启动 htop 后,可以直接看到按 CPU 使用率排序的进程列表。与 top 类似,htop 默认也会按照 CPU 使用率降序排列进程。此外,htop 还提供了颜色编码和鼠标支持,使得操作更加直观。在 htop 界面中,我们可以使用方向键选择目标进程,按 F9 键可以直接向选定进程发送 SIGKILL 信号终止它。
当使用 top 或 htop 定位到可疑进程后,我们还可以使用lsof -p 进程号命令来确认该进程所打开的文件路径。例如,lsof -p 1234(其中 1234 是进程号),通过这个命令,我们可以查看该进程所关联的文件和网络连接等信息。如果发现该进程正在访问一些可疑的文件路径,或者与外部一些恶意 IP 进行通信,那么就可以确定它是一个恶意进程,然后使用kill -9 进程号命令来强制终止它。

三、即时响应:手动封禁与临时防御


在确认遭受 DDoS 攻击后,需要立即采取行动,进行手动封禁与临时防御,以减轻攻击对服务器的影响。这一步就像是在战场上,面对敌人的进攻,迅速构筑防线,进行反击。

(一)快速阻断单个攻击 IP


当确定某个 IP 是攻击源时,快速阻断该 IP 的访问是首要任务。在 CentOS 系统中,我们可以通过多种方式实现这一目的。
  1. 路由层封禁
在路由层进行封禁是一种较为直接有效的方式。以 iptables 为例,这是 Linux 系统中常用的防火墙工具,它通过内核的 Netfilter 框架实现对进出网络的数据包进行过滤、限制和监控。使用以下命令可以在 iptables 中添加规则,封禁指定 IP:

 
iptables -I INPUT -s 攻击IP -j DROP
这条命令中,-I INPUT表示在 INPUT 链中插入一条规则,INPUT 链用于处理进入本机的数据包。-s 攻击IP指定了源 IP 为攻击 IP,也就是我们要封禁的 IP 地址。-j DROP表示对匹配到的数据包采取丢弃操作,即阻止该 IP 的所有数据包进入服务器。
在使用 iptables 封禁 IP 时,还可以结合其他参数进行更精细的控制。比如,使用-p参数指定协议类型,--dport参数指定目标端口。如果只想封禁某个 IP 对特定端口的访问,例如封禁 IP 为192.168.1.100对 80 端口的访问,可以使用以下命令:

 
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 80 -j DROP
这样,该 IP 就无法通过 TCP 协议访问服务器的 80 端口,但仍可以访问其他端口,避免对正常业务造成过多影响。
  1. 验证封禁效果
封禁 IP 后,需要及时验证封禁效果,确保攻击 IP 已被成功阻断。可以使用ping命令或telnet命令进行测试。例如,使用ping命令测试封禁的 IP:

 
ping 攻击IP
如果封禁成功,会显示无法 ping 通的结果,例如:

 
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
From 192.168.1.1 icmp_seq=1 Destination Host Unreachable
这表明服务器已经不再响应该 IP 的 ping 请求,封禁生效。
也可以使用telnet命令测试特定端口的连接情况,例如测试 80 端口:

 
telnet 攻击IP 80
如果封禁成功,会显示连接失败的信息,如:

 
Trying 192.168.1.100...
telnet: connect to address 192.168.1.100: Connection refused
这说明该 IP 无法通过 80 端口连接到服务器,封禁有效。

(二)批量处理与临时限流


若攻击 IP 呈批量小规模特征,如海量不同 IP 短连接,逐一封禁显然效率低下。此时,可通过设置连接速率限制来应对。
在 CentOS 系统中,仍然可以借助 iptables 来实现连接速率限制。例如,限制每个 IP 对服务器 80 端口的连接速率为每秒 5 个连接,可以使用以下命令:

 
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 5 -j REJECT
在这条命令中,-m connlimit表示使用 connlimit 模块,该模块用于限制连接数。--connlimit-above 5表示当连接数超过 5 个时,触发后面的动作。-j REJECT表示对超过限制的连接请求进行拒绝操作,返回拒绝信息给客户端。
在设置连接速率限制时,需根据业务正常连接峰值调整阈值,避免误封合法流量。如果阈值设置过低,可能会导致正常用户的连接请求被拒绝;而设置过高,则可能无法有效防御 DDoS 攻击。因此,需要对业务的正常连接情况有充分的了解,结合实际情况进行合理设置。可以通过对服务器日志的分析,统计一段时间内正常业务的连接数峰值,以此为参考来确定合适的阈值 。同时,在设置后,要密切关注服务器的运行情况,及时调整阈值,确保既能有效防御攻击,又不影响正常业务的开展。

四、长效防御:自动化工具与深度监控


在应对 DDoS 攻击时,仅靠手动封禁和临时防御是远远不够的,还需要建立长效的防御机制。借助自动化工具和深度监控手段,能够实时监测网络状况,及时发现并处理潜在的攻击威胁,为服务器的安全提供持续的保障。

(一)部署 DDoS-Deflate 自动防御工具


DDoS-Deflate 是一款轻量级且功能强大的自动化防御工具,它能够实时监测网络连接,自动识别并封禁异常连接的 IP,为服务器提供了一层有效的防护屏障。
  1. 安装与配置
安装 DDoS-Deflate 的过程并不复杂。首先,通过 SSH 连接到 CentOS 服务器,使用以下命令下载安装脚本:

 
wget http://www.inetbase.com/scripts/ddos/install.sh
下载完成后,为安装脚本添加可执行权限:

 
chmod 0700 install.sh
接着执行安装脚本:

 
./install.sh
在安装过程中,DDoS-Deflate 会自动检测系统是否支持 init.d 脚本,并进行相应的安装配置。安装完成后,其核心配置文件位于/usr/local/ddos/ddos.conf。
在这个配置文件中,包含了众多关键的配置项。例如,FREQ参数用于设置检查 DDoS 攻击的时间间隔,默认值为 1 分钟,可根据实际情况进行调整。DAEMON_FREQ参数则设置了作为守护进程运行时的检测频率,默认是 5 秒间隔,这意味着 DDoS-Deflate 会每 5 秒对网络连接进行一次检查。NO_OF_CONNECTIONS参数定义了判定一个 IP 为异常的连接数阈值,默认值为 150 连接 / IP,当某个 IP 的连接数超过这个阈值时,就会被视为异常 IP,DDoS-Deflate 会通过 iptables 自动封禁该 IP 。
此外,配置文件中还提供了白名单功能,通过IGNORE_IP_LIST参数指定白名单文件路径,例如/usr/local/ddos/ignore.ip.list。在白名单中的 IP 将不会被 DDoS-Deflate 检测和封禁,这对于一些需要特殊处理的 IP,如内部服务器 IP 或合作伙伴的 IP,非常有用。同时,EMAIL_TO参数用于设置当 IP 被屏蔽时接收报警邮件的地址,方便管理员及时了解攻击情况并采取相应措施。

(二)使用 FastNetMon 进行流量深度分析


FastNetMon 是一款基于多种抓包引擎的高性能网络防护工具,它能够对网络流量进行深度分析,快速准确地识别出异常流量,为应对大规模 DDoS 攻击提供了有力的支持。
  1. 实时流量监控
FastNetMon 的实时流量监控功能非常强大,它可以实时监测入站和出站流量,快速定位异常流量的来源 IP。在遭受 DDoS 攻击时,能够在 1 - 2 秒内发现攻击迹象,并及时触发相应的防御措施。
FastNetMon 支持多种触发封禁的条件,除了可以按带宽(Mbps)触发封禁外,还能按数据包速率(PPS)进行触发。例如,在面对 UDP Flood 攻击时,攻击者可能会发送大量的 UDP 数据包,导致网络拥塞。此时,FastNetMon 可以通过设置数据包速率阈值,当检测到某个 IP 的数据包速率超过阈值时,立即对该 IP 进行封禁,从而有效阻止攻击。对于大流量攻击场景,FastNetMon 能够快速响应,通过合理配置,可迅速阻断攻击流量,保护服务器的网络带宽资源。
  1. 历史流量追踪与报警
FastNetMon 不仅能够实时监控流量,还会存储历史流量数据。通过这些历史数据,管理员可以在可视化面板上持续追踪攻击趋势,了解攻击的发展情况和变化规律。例如,通过查看历史流量图表,可以发现攻击流量在一天中的某个时间段出现峰值,从而为后续的防御策略制定提供依据。
在报警方面,FastNetMon 支持设置动态报警阈值。管理员可以根据服务器的正常流量情况,结合业务需求,设置不同的报警阈值。例如,在业务高峰期,适当提高报警阈值,避免因正常流量波动而产生误报警;在业务低谷期,降低报警阈值,以便更敏感地检测到潜在的攻击。当流量超过设定的报警阈值时,FastNetMon 会通过多种方式发送报警信息,如邮件、短信(通过第三方服务)、SNMP 陷阱等,确保管理员能够及时得知网络异常情况,采取相应的处理措施。

五、注意事项与最佳实践

(一)区分正常业务峰值


在检测 DDoS 攻击时,准确区分正常业务峰值与异常流量至关重要。不同类型的业务有着不同的流量规律,例如电商平台在促销活动期间,如 “双十一”“618” 等,流量会出现大幅增长;在线教育平台在上课高峰期,也会迎来大量用户访问。如果不了解这些业务时段的正常流量变化,很容易将正常的业务峰值误判为 DDoS 攻击。
以电商平台为例,在促销活动前,我们可以通过分析过往类似活动的数据,了解活动期间流量增长的幅度、持续时间以及流量的波动情况。根据这些数据,合理调整检测阈值。比如,平时网站的日均流量为 10 万 PV,而在促销活动期间,预计流量可能会增长 5 - 10 倍,那么我们在活动期间可以将检测阈值相应提高,避免因正常流量增长而触发误报警。同时,还可以结合流量的增长趋势进行判断,如果流量是在一段时间内逐渐上升,且符合预期的业务增长模式,那么很可能是正常的业务峰值;但如果流量在短时间内突然激增,远远超出预期范围,就需要警惕是否是 DDoS 攻击。

(二)定期备份与快照


定期备份与快照是保障服务器数据安全和业务连续性的重要措施,尤其是在遭受 DDoS 攻击后,可能会对服务器系统和数据造成损坏,此时备份和快照就显得尤为重要。
在 CentOS 系统中,我们可以使用 rsync 命令进行数据备份。rsync 是一个快速、通用的文件复制工具,支持增量备份,能够有效减少备份时间和存储空间的占用。例如,我们可以使用以下命令将重要数据目录/data备份到外部存储设备/backup:

 
rsync -avz --delete /data /backup
其中,-avz参数表示以归档模式传输文件,并保持文件的权限、时间戳等属性,同时进行压缩传输,提高传输效率;--delete参数表示删除目标目录中源目录不存在的文件,确保备份数据与源数据的一致性。
对于云服务器,很多云服务商都提供了云快照功能,如 AWS 的 EBS Snapshot、阿里云的磁盘快照等。云快照是对磁盘数据在某一时刻的完整拷贝,创建速度快,占用存储空间小。通过云快照,我们可以在服务器遭受攻击或出现故障时,快速将系统和数据恢复到快照创建时的状态。建议根据业务重要性和数据更新频率,定期创建云快照,例如每天或每周创建一次。

(三)多层防御结合


面对日益复杂的 DDoS 攻击,单一的防御手段往往难以应对,需要结合基础检测命令、自动化工具以及云服务商的 DDoS 防护服务,形成多层防御体系。
基础检测命令如netstat、lsof等,虽然操作相对繁琐,但能够让我们深入了解服务器的网络连接和进程状态,为发现 DDoS 攻击提供最基本的信息。自动化工具如 DDoS-Deflate 和 FastNetMon,能够实时监测网络流量和连接情况,自动识别并处理异常流量和连接,大大提高了防御的效率和及时性。
云服务商的 DDoS 防护服务则提供了更强大的防护能力,能够应对大规模、高流量的 DDoS 攻击。例如,Cloudflare 是一家知名的 CDN 和 DDoS 防护服务提供商,它通过分布在全球的节点,能够对流量进行清洗和转发,有效抵御各种类型的 DDoS 攻击。阿里云盾也是阿里云提供的一站式安全服务,包括 DDoS 防护、Web 应用防火墙等功能,能够为用户提供全方位的安全防护。
在实际应用中,我们可以将基础检测命令作为日常监控的手段,及时发现潜在的异常;利用自动化工具进行实时监测和初步处理;同时,借助云服务商的 DDoS 防护服务作为最后一道防线,确保在遭受大规模攻击时,服务器仍能保持正常运行。通过这种多层防御结合的方式,能够有效提升服务器的抗 DDoS 攻击能力,保障业务的稳定运行。

总结


面对 DDoS 攻击,CentOS 服务器可通过 “基础命令快速检测→手动封禁即时响应→自动化工具长效防御” 的三层策略有效应对。建议管理员定期演练检测流程,结合业务特性优化工具配置,确保在攻击发生时能快速定位、精准阻断,最大限度减少业务影响。

关于墨者安全
墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和DDoS攻击防御

热门文章

X

7x24 小时

免费技术支持

15625276999


-->