CC攻击防御策略详解,效果显著

众所周知CC攻击是DDOS攻击的一种变相攻击模式,攻击者利用网络传输协议中的三次握手漏洞产生大量的无效链接使资源被耗尽,最终导致服务不能正常运行而达到攻击目的。

所以我们要对症下药,我们这片文章采取的策越就是封掉产生过多链接的ip,达到防御目的
这里我们推荐一款防止ddos攻击的软件DDoS-Deflate,安装使用方式如下:

(一)安装DDoS-Deflate

(1)下载安装脚本

wget http://www.inetbase.com/scripts/ddos/install.sh

(2)安装 DDoS-Deflate

./install.sh

…..下面是安装过程,很快….
Installing DOS-Deflate 0.6

Downloading source files………done

Creating cron to run script every minute…..(Default setting)

….下面是发布协议….
….

这样 DDoS-Deflate,就安装好了

(二)配置和使用

(1)了解 DDoS-Deflate 软件的文件分布

DDoS-Deflate 安装好之后,默认全部在 /usr/local/ddos/ 目录下

文件说明:
ddos.conf – DDoS-Deflate 的配置文件,其中配置防止ddos时的各种行为
ddos.sh – DDoS-Deflate 的主程序,使用shell编写的,整个程序的功能模块
ignore.ip.list – 白名单,该文件中的ip超过设定的连接数时,也不被 DDoS-Deflate 阻止
LICENSE – DDoS-Deflate 程序的发布协议

(2)配置 ddos.conf

PROGDIR=”/usr/local/ddos” #目录
PROG=”/usr/local/ddos/ddos.sh” #脚本路径
IGNORE_IP_LIST=”/usr/local/ddos/ignore.ip.list”#白名单
CRON=”/etc/cron.d/ddos.cron” #/计划任务路径 默认是每分钟执行一次ddos.sh
APF=”/etc/apf/apf” //apf防火墙路径
IPT=”/sbin/iptables” //防火墙地址
FREQ=1 #DDoS-Deflate通过linux的计划任务执行,默认为每分钟一次
NO_OF_CONNECTIONS=150 #定义单个IP达到多少连接时规定为这是一次ddos攻击
APF_BAN=0 #这里为 “0”,表示使用iptables,而不是APF
KILL=1 #是否阻止被定义为ddos攻击的ip,“1”为阻止,“0”为不阻止
EMAIL_TO=”[email protected]” #通知邮箱地址
BAN_PERIOD=600 #在黑名单中待多少秒

(3)使用ddos.sh
使用“-h”选项显示该命令的提供的选项和功能简介
因为安装的时候默认就执行了: ./ddos –cron 了,所以我们什么也不需要做了

./ddos.sh -h

OPTIONS:
-h | –help: Show this help screen
-c | –cron: Create cron
job to run this script regularly (default 1 mins)
-k | –kill: Block the offending ip making more
than N connections

(4)测试防ddos攻击效果
NO_OF_CONNECTIONS=3 #这里为了方便测试,设置为3。生产环境下,几十到几百都可以理解为正常,上千肯定就是不正常了,除非是应用内部各个服务器之间的通信
通过一台固定ip的机器ssh连接该服务器,当连接到超过3甚至更多时,不会立刻显示连不上,因为ddos.sh默认一分钟运行一次,当过不到一分钟时,会发现连接掉了,查看部署了防ddos软件的服务器上可以看到iptables的策略中多了:
DROP all – 31.210.16.29.broad.cs.gd.dynamic.163data.com.cn anywhere
说明确实生效了,当10分钟后,iptables上这条策略会被取消的

(5)关于如何查看单个IP的连接数目可以通过如下命令查看,依次排列:
netstat -na|grep ESTABLISHED|awk ‘{print 5}'|awk -F: '{print5}'|awk -F: '{print1}’|sort|uniq -c|sort -r -n
…………..
40 127.0.0.1
1 121.9.252.28
1 173.117.140.69

你可能感兴趣的:(linux)