什么是CC攻击?如何通过链接数和端口检查cc攻击的网站?
·

CC攻击(Challenge Collapsar) 是一种常见的应用层DDoS攻击,攻击者通过模拟大量用户对目标网站发送合法的 HTTP 请求,占用服务器资源,导致服务器无法响应正常用户的请求。以下是详细介绍 CC 攻击的原理以及如何通过链接数和端口检查受攻击的网站。
1. 什么是 CC 攻击?
1.1 CC 攻击的原理
- 目标:让服务器资源耗尽(如 CPU、内存、带宽等),无法处理正常用户的请求。
- 攻击方式:
- 攻击者通过代理 IP 或僵尸网络,模拟大量不同的客户端向目标网站发起 HTTP 请求。
- 请求通常针对动态页面(如 PHP、ASP、JSP),因为这些页面需要服务器计算、查询数据库等,消耗更多资源。
- 特点:
- 请求是合法的 HTTP 请求,但短时间内数量巨大。
- 通常会访问特定 URL(如登录页面、搜索接口等)。
- 流量集中在 80 或 443 端口(HTTP/HTTPS)。
1.2 CC 攻击的危害
- 服务器资源被大量占用,导致正常用户访问延迟甚至无法访问。
- 可能引发服务宕机,特别是对并发处理能力较弱的服务器。
- 给企业带来经济损失和品牌信誉下降。
2. 如何通过链接数和端口检查 CC 攻击的网站?
2.1 检查链接数和端口的工具
以下工具可以帮助你查看服务器的连接数和端口活动,从而判断是否遭受 CC 攻击:
- netstat:显示服务器的网络连接情况。
- ss:类似 netstat,但性能更高。
- iftop:实时监控网络流量。
- tcpdump:抓取网络数据包进行深入分析。
2.2 使用 netstat 检查链接数
(1) 查看所有连接
运行以下命令查看当前服务器的网络连接:
bash
netstat -anp | grep :80
- 解释:
-a:显示所有连接(包括监听和非监听)。-n:以数字形式显示地址和端口。-p:显示进程信息。grep :80:过滤出 80 端口(HTTP)的连接。
(2) 统计每个 IP 的连接数
通过以下命令统计每个 IP 的连接数量:
bash
netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
-
解释:
awk '{print $5}':提取目标 IP 地址。cut -d: -f1:去除端口号,只显示 IP。sort | uniq -c:统计每个 IP 的连接数。sort -nr:按连接数从高到低排序。
-
结果分析:
- 如果单个 IP 的连接数异常高(如超过 50 或 100),可能是 CC 攻击。
- 示例输出:
bash
上述 IP 可能是攻击来源。150 192.168.1.100 120 192.168.1.101 110 10.0.0.1
(3) 查看并发连接数
统计服务器的总连接数:
bash
netstat -an | grep :80 | wc -l
- 如果连接数超过服务器的正常负载(如 500 或 1000),可能是 CC 攻击。
2.3 使用 ss 检查链接数
ss 是 netstat 的替代工具,速度更快,信息更详细。
(1) 查看 80 端口的连接
bash
ss -ant | grep :80
- 解释:
-a:显示所有连接。-n:以数字形式显示地址和端口。-t:仅显示 TCP 连接。
(2) 统计每个 IP 的连接数
bash
ss -ant | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
- 输出结果与
netstat类似,显示每个 IP 的连接数。
2.4 使用 iftop 检查实时流量
iftop 是一个实时流量监控工具,可用于检查流量的来源 IP。
(1) 安装 iftop
在 CentOS 或 Ubuntu 上安装:
bash
yum install iftop -y # CentOS
apt install iftop -y # Ubuntu
(2) 运行 iftop
运行以下命令查看实时流量:
bash
iftop -i eth0
- 解释:
-i eth0:指定网络接口(替换为你的服务器网卡名称,如ens33)。
- 结果分析:
- 上下箭头分别表示入站和出站流量。
- 如果某些 IP 的流量异常高,可能是攻击来源。
2.5 使用 tcpdump 抓包分析
(1) 抓取 80 端口的流量
bash
tcpdump -i eth0 port 80 -w cc_attack.pcap
- 解释:
-i eth0:监听网络接口。port 80:仅抓取 HTTP 流量。-w cc_attack.pcap:保存流量到文件。
(2) 分析数据包
使用 Wireshark 或其他工具打开 cc_attack.pcap,检查以下内容:
- 是否有大量重复的请求。
- 是否有某些 IP 的请求数量异常高。
3. 如何防御 CC 攻击?
3.1 基于 IP 的限制
- 使用 iptables 限制连接数
- 限制单个 IP 的最大连接数:
bash
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP - 限制每秒的新连接数:
bash
iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/second --limit-burst 30 -j ACCEPT
- 使用 Fail2Ban 自动封禁恶意 IP
-
安装 Fail2Ban:
bash
apt install fail2ban -y # Ubuntu yum install fail2ban -y # CentOS -
配置规则:
编辑/etc/fail2ban/jail.local:ini
[nginx-cc] enabled = true port = http,https logpath = /var/log/nginx/access.log maxretry = 20 bantime = 600
3.2 配置 Web 服务器限制
- Nginx 限速
- 编辑 Nginx 配置文件:
nginx
http { limit_req_zone $binary_remote_addr zone=cc_zone:10m rate=10r/s; server { location / { limit_req zone=cc_zone burst=20 nodelay; } } }
- Apache 限速
-
启用
mod_evasive模块:bash
apt install libapache2-mod-evasive # Ubuntu yum install mod_evasive # CentOS -
配置
/etc/apache2/mods-enabled/evasive.conf:ini
DOSHashTableSize 3097 DOSPageCount 20 DOSSiteCount 100 DOSBlockingPeriod 10
3.3 使用 CDN 和 WAF
- CDN(如 Cloudflare):
- 隐藏真实服务器 IP。
- 过滤恶意流量。
- Web 应用防火墙(WAF):
- 部署如阿里云 WAF、腾讯云 WAF,检测并阻止恶意请求。
4. 总结
- CC 攻击原理:通过大量模拟的合法请求耗尽服务器资源。
- 检测方法:
- 使用
netstat或ss查看端口连接数。 - 使用
iftop或tcpdump检测异常流量。
- 使用
- 防御措施:
- 配置防火墙限制连接数。
- 使用 Web 服务器限速策略。
- 部署 CDN 和 WAF 进行流量清洗。
通过以上方法,可以有效检测和防御 CC 攻击,保护网站的稳定运行。
更多推荐



所有评论(0)