本插件能实现在受到cc、压测工具等拒绝服务***时,进行比较有效的防御。实际上,它并不具备阻截能力,它是基于IPtables 防火墙,利用 netstat+过滤规则,与 IPtables防火墙实现联动。在发生恶意拒绝服务***时,本软件会实时分析连接来源的企图。当连接IP 有明显的非正常连接时,插件自动将其加入iptables 防火墙条目进行阻截。同时将***IP 记录到计划解封文件里,当达到预定时间后,插件自动从 IPtables 防火墙中解封对应IP。在基本测试过程中,应付单 IP 并发连接***、cc***等效果明显。但它并不适合于随机伪造 IP 的恶意***,但能对抗轻量DDOS。工具完全由bash shell开发,程序简单易读,方便后期修改。
DDoS-Defender-v2.1.0版的改进以下:
===============================================
1. 编写核心连接分析代码,不再依赖netstat命令;由于高并发连接下使用netstat处理连接数,使CPU占用率高达100%,严重影响系统性能;直接对/proc/net下的连接记录文件进行分析,使高并发连接状态下比netstat速度提高5倍以上,CPU占用率不超过10%。
2. 优化IP审计算法,减少多余的处理而消耗CPU的BUG
3. 优化运行进程的优先级,增强CPU亲和性
4. 将临时数据加载到内存虚拟交换区里,降低磁盘IO
5. 新增邮件通知功能
===============================================
程序安装 :
# tar zxvf DDoS-Defender-v2.1.0.tar.gz
# cd DDoS-Defender-v2.1.0
# ./autoinstall.sh
# /usr/local/DDos/sbin/ddosDer start #启动程序
安装完成后,重新Login终端可直接使用 “ ddosDer start” 命令启动和关闭。
查看监控状态 :
# ddosDer status
程序主要目录介绍 :
+ /usr/local/DDos/sbin #主要程序运行文件夹
-- ddos_daemon #主守护进程
-- ddos_flush # IP自动解锁控制进程
-- ddosDer #启动控制脚本
+ /usr/local/DDos/logs #事件记录
+ /usr/local/DDos/conf #配置文件
+ /usr/local/DDos/lib #功能模块库
-- core_netstat.so #网络连接处理模块(代替netstat)
-- sendmail.so #邮件发送模块
配置文件说明:
------------------------------------------------------------------------------
##### 定义文件夹 PROC_DIR="/usr/local/DDos/" LOGS_FILE="/usr/local/DDos/logs/running.log" TMP_DIR="/dev/shm/tmp" IPT="/sbin/iptables"
### 加载lib模块 CORE_NETSTAT="/usr/local/DDos/lib/core_netstat.so" SENDMAIL_EXE="/usr/local/DDos/lib/sendmail.so" CHECKIPTABLES="/usr/local/DDos/lib/check_iptables.so"
### 计划清理队列 CROND_LIST="/usr/local/DDos/logs/crond_list.dat"
### 白名单 IGNORE_IP="127.0.0.1|0.0.0.0"
### 监控端口 MONT_PORT="80|8080|443"
### 调和模式,0表示只监测,1表示主动防御 KILL=1
### 监控密度,单位为秒 REXEC_TIME=10
### 锁定连接数,该项能确定监控的敏感度,非常重要 NO_OF_CONNECTIONS=100
### 管理员邮箱,空格隔开,EMAIL_ATTACH是否启用附件,0为Off SENDMAIL_ON=1 EMAIL_ATTACH=0 EMAIL_SIGE="运维团队" EMAIL_TO=" "
### 封锁时间 BAN_PERIOD=3600
# tar zxvf DDoS-Defender-v2.1.0.tar.gz
# cd DDoS-Defender-v2.1.0
# ./autoinstall.sh
# /usr/local/DDos/sbin/ddosDer start #启动程序
安装完成后,重新Login终端可直接使用 “ ddosDer start” 命令启动和关闭。
查看监控状态 :
# ddosDer status
程序主要目录介绍 :
+ /usr/local/DDos/sbin #主要程序运行文件夹
-- ddos_daemon #主守护进程
-- ddos_flush # IP自动解锁控制进程
-- ddosDer #启动控制脚本
+ /usr/local/DDos/logs #事件记录
+ /usr/local/DDos/conf #配置文件
+ /usr/local/DDos/lib #功能模块库
-- core_netstat.so #网络连接处理模块(代替netstat)
-- sendmail.so #邮件发送模块
配置文件说明:
------------------------------------------------------------------------------
##### 定义文件夹 PROC_DIR="/usr/local/DDos/" LOGS_FILE="/usr/local/DDos/logs/running.log" TMP_DIR="/dev/shm/tmp" IPT="/sbin/iptables"
### 加载lib模块 CORE_NETSTAT="/usr/local/DDos/lib/core_netstat.so" SENDMAIL_EXE="/usr/local/DDos/lib/sendmail.so" CHECKIPTABLES="/usr/local/DDos/lib/check_iptables.so"
### 计划清理队列 CROND_LIST="/usr/local/DDos/logs/crond_list.dat"
### 白名单 IGNORE_IP="127.0.0.1|0.0.0.0"
### 监控端口 MONT_PORT="80|8080|443"
### 调和模式,0表示只监测,1表示主动防御 KILL=1
### 监控密度,单位为秒 REXEC_TIME=10
### 锁定连接数,该项能确定监控的敏感度,非常重要 NO_OF_CONNECTIONS=100
### 管理员邮箱,空格隔开,EMAIL_ATTACH是否启用附件,0为Off SENDMAIL_ON=1 EMAIL_ATTACH=0 EMAIL_SIGE="运维团队" EMAIL_TO=" "
### 封锁时间 BAN_PERIOD=3600
软件下载链接:
【补充内容】
介绍一个压力测试工具:webbench最多可以模拟3万个并发连接去测试网站的负载能力,可以模拟成ddos。
wget