- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
论CC攻击之防范.doc
论CC攻击之防范
摘 要:文章以一次被攻击经历为例,详细描述了如何发现CC攻击和对CC攻击进行基本的防范。
关键词:CC攻击;防范;bash iptables
CC攻击,全名是Challenge Collapsar攻击,是DDOS(分布式拒绝服务)的一种,是利用TCP/IP协议三次握手规则发起的针对服务器的攻击。
1 背景介绍
近日,某web服务器出现了典型的被攻击的症状:网络和系统正常的情况下,打开网页延迟很高;远程登录服务器时,建立连接等待时间长。
服务器是CentOS系统,独立IP接入互联网,因为是测试机,所以前端没有防护设备。上面安装了http服务。
2 攻击类型确认
面对攻击,首先得确定攻击类型,以对症下药。
首先查看资源使用情况。经检查,内存、CPU使用率很低,显然,资源使用率不是延迟高的原因;然后,修改http端口号,发现访问速度恢复正常。输入命令: ps -ef | grep apache | wc,结果显示:277 2450 41582,原因找到!数字277意思是有277个apache进程。而低并发网站,进程数应为10个左右。因此,初步断定为DDOS攻击。考虑到资源利用率低,猜测是CC攻击。
为了验证猜测,输入命令:netstat -ant | awk /^tcp/ {c[$NF] ++} END { for(s in c) print s,c[s];},显示结果如下:
(略)
SYN_RECV 254
(略)
这里,SYN_RECV连接数为254个。我们知道,建立TCP/IP连接,有三次握手: 一是(SYN_SEND),C到S的syn包发送,等待S回复;二是(SYN_RECV),S到C的syn/ack数据发送,等待C回复;三是(ESTABLISHED),C确认ACK给服务器,链接成功。
3 攻击防范策略
CC攻击非常常见,而且没有“简单而廉价的”处理方式。主要原因是无法简单有效地判断一个连接是否是CC攻击。如果把ACK连接时间长的杀掉,有可能导致误杀。通常做法是使用专业设备,由前置设备进行判断连接的有效性。
当然,上述是商业化的解决方案,作为学习之用,应对低强度CC攻击,可考虑下面手段:
第一步:应用层面上的防范,采用mod_evasive模块。Mod_evasive是Apache通用的防DDOS攻击的扩展模块。它不能防御DDOS,但可缓解服务器压力。安装过程可参考网上资料。
默认配置下,模块会在/tmp目录下形成日志。如:来自的CC攻击有99次,就会生成一个名为的文件,内容是99。
第二步:防火墙层面的防范,可利用iptables命令配置,这个网上也有很多描述,就不再详细描述。可参考第四步的命令。
第三步:系统层面关于SYN的设置,Linux内核提供了若干SYN相关的配置,用命令: sysctl -a | grep syn 看到相关的参数,修改这些参数即可。详细参数介绍可以参考网上介绍。为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
第四步:使用bash命令,自动添加黑名单。
建立一个目录,用于存放我们的bash文件和log文件。
首先:创建iptables.rule文件,添加以下内容(精选部分):
Vim iptables.rule
#!/bin/bash
(省略部分前期配置)
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED -j ACCEPT
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# Keep connect established
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD
文档评论(0)