DDOS这种攻击的目的就是在短时间内制造数量巨大的并发连接,从而使用服务器down机或消耗掉网络带宽和系统资源导致正常用户无法正常访问浏览网站。
DoS Deflate 是一个轻量级阻止拒绝服务攻击的bash shell脚本。我们可以通过安装他并且简单配置来防御DDOS攻击。
首先安装命令:
C#代码
- wget http://www.inetbase.com/scripts/ddos/install.sh
- chmod 700 install.sh
- ./install.sh
然后会自动进行安装,完成后会有一段版权提示与说明,按q键退出即可。
卸载命令:
C#代码
- wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
- chmod 700 uninstall.ddos
- ./uninstall.ddos
安装完成之后就可以通过简单配置来进行DDOS防御,我是用的是CentOS7操作系统配置文件目录是/usr/local/ddos/ddos.conf
或者也可以通过命令更改 vi /usr/local/ddos/ddos.conf 编辑完成后:wq保存退出
下面介绍一下ddos.conf的基本配置#为注释部分不用理会关键配置项有:
C#代码
- PROGDIR="/usr/local/ddos" #文件存放目录
- PROG="/usr/local/ddos/ddos.sh" #主要功能脚本
- IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" #可以设置IP白名单
- CRON="/etc/cron.d/ddos.cron" #crond定时任务脚本
- APF="/etc/apf/apf" #这两项应该分别对应使用APF或者iptables配置目录不过笔者
- IPT="/sbin/iptables" #尝试打开文件里边是乱码,有哪位大牛知道是干嘛的欢迎留言
- FREQ=1 #间隔多久检查一次,默认1分钟
- NO_OF_CONNECTIONS=150 #最大连接数设置,超过这个数字的IP就会被屏蔽
- APF_BAN=0 #1:使用APF,0:使用iptables,推荐使用iptables
- KILL=1 #是否屏蔽IP 1:屏蔽,0:不屏蔽
- EMAIL_TO="root" #发送电子邮件报警的邮箱地址,换成自己使用的邮箱
- BAN_PERIOD=600 #禁用IP时间,可根据情况调整,默认单位:秒
如果/usr/local/ddos/ddos.sh 统计不正确,可能是启用ipv6的缘故
vi /usr/local/ddos/ddos.sh 修改/usr/local/ddos/ddos.sh
117行的内容是这样的netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
修改为以下代码即可!
C#代码
- netstat -ntu | awk '{print $5}' | cut -d: -f1 | sed -n '/[0-9]/p' | sort | uniq -c | sort -nr > $BAD_IP_LIST
CentOS7默认为Firewall为了配合使用DoS Deflate建议停用Firewall启用iptables,不会用iptables的朋友,百度一下有很多