使用VPS有一段时间了,总得来说还算是十分安全的,但是互联网也是一个钩心斗角的地方,所以要预防点DDOS比较好,那天在hostloc上看到有人说,现在连小孩都会ddos,虽然有点夸张,但也从一个侧面折射出一个问题:没有绝对安全的服务器。昨天看到新浪科技频道上说,黑客可以促进科技发展,所以国家应该引导并支持黑客进行创业,我个人的看法是,黑客作为一些技术牛人存在,有他的危害性,当然不得不说,正是这些黑客才引起我们对网络安全的重视,促进我们不断完善技术,俗话说“魔高一尺,道高一丈”,但我觉得也有“道高一尺,魔高一丈”,这样两者相互促进才会促进互联网的不断发展。今天,我就单单通过软件来防御DDOS,实现成功,也是颇有成就感。
(D)Dos官方地址:http://deflate.medialayer.com/
(D)DoS Deflate is a lightweight bash shell script designed to assist in the process of blocking a denial of service attack. It utilizes the command below to create a list of IP addresses connected to the server, along with their total number of connections. It is one of the simplest and easiest to install solutions at the software level.
安装过程:
- wget http://www.inetbase.com/scripts/ddos/install.sh
- chmod 0700 install.sh
- ./install.sh
安装完以后,你会看到一大篇协议,按q退出即可
这样就把这个软件安装到了/usr/local/ddos目录下,总共有四个文件:
ddos.conf — DDoS-Deflate 的配置文件,其中配置防止ddos时的各种行为
ddos.sh — DDoS-Deflate 的主程序,使用shell编写的,整个程序的功能模块
ignore.ip.list — 白名单,该文件中的ip超过设定的连接数时,也不被 DDoS-Deflate 阻止
LICENSE — DDoS-Deflate 程序的发布协议
接下来进行配置:
编辑ddos.conf
- ##### Paths of the script and other files
- 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” //定时执行程序
- APF=“/etc/apf/apf”
- IPT=“/sbin/iptables”
- ##### frequency in minutes for running the script
- ##### Caution: Every time this setting is changed, run the script with –cron
- ##### option so that the new frequency takes effect
- FREQ=1
- ##### How many connections define a bad IP? Indicate that below. # 单IP发起连接数阀值,不建议设置太低.
- NO_OF_CONNECTIONS=150
- ##### APF_BAN=1 (Make sure your APF version is atleast 0.96)
- ##### APF_BAN=0 (Uses iptables for banning ips instead of APF) #一般情况下你是使用iptables来做防火墙,所以这里你需要将 APF_BAN的值改为0.
- APF_BAN=1
- ##### KILL=0 (Bad IPs are’nt banned, good for interactive execution of script)
- ##### KILL=1 (Recommended setting)
- KILL=1
- ##### An email is sent to the following address when an IP is banned. # 当单IP发起的连接数超过阀值后,将发邮件给指定的收件人.
- ##### Blank would suppress sending of mails
- EMAIL_TO=“root” //将root修改为你自己的邮箱账号即可
- ##### Number of seconds the banned ip should remain in blacklist. # 设置被挡IP多少秒后移出黑名单.
- BAN_PERIOD=600
接下来再编辑ddos.sh
查看/usr/local/ddos/ddos.sh文件的第117行,并注释掉
- netstat -ntu | awk ’{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
然后在下面添加如下一行:
- netstat -ntu | awk ’{print $5}’ | cut -d: -f1 | sed -n ’/[0-9]/p’ | sort | uniq -c | sort -nr > $BAD_IP_LIST
然后保存退出即可。
这儿我们要注意的是,添加进去一行新的代码中的两个单引号为半角状态下,由于wordpress自身的编辑器会将半角变为全角,所以需要手动修改一下。
这样我们就安装完成了,我们可以使用Web压力测试软件测试一下效果。关于web压力测试软件的安装。点此查看(推荐一款不错的网站压力测试工具webbench)
安装之后,我们可以在其他VPS或者本机执行如下命令:
- webbench -c 1000 -t 30 http://www.muxiaofei.com/index.php
- //参数说明:-c表示并发数,-t表示时间(秒)
不出意外的话,过一会你就会收到如下的邮件:
这样DDoS deflate还是能给你的VPS或服务器抵御一部分DDOS攻击,给你的网站更多的保护。最后说一下关于(D)DoS Deflate 的卸载
- wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
- chmod 0700 uninstall.ddos
- ./uninstall.ddos
这样关于使用软件简单防御DDOS就完成了。不过如果想要更安全的,可以考虑硬防,不过硬防估计购买好几台服务器了。