下午15点30发现客户公司的web server无法访问,测验远程登录,无法连接,呼叫idc进行本地服务器测试,发现攻击仍在持续,并且apache一切1230个进程悉数处于作业状况。
使用命令: netstat -ntu | awk '{print $1}' | cut -d: -f4 | sort | uniq -c | sort -n 发现某个IP连接数据达到上千次链接,确定是DDOS攻击。
于是我指导客户安装DDos deflate(一个防止DDOS的开源工具),客户的运维是个妹子哈。
话说处理完后问客户妹子要照片时候就给了我这张,我是不是被耍了,这不是重点哈,看看问题是如何解决的。看看我写完文章给不给照片。
[root@xinsz08 ~]#wget http://www.inetbase.com/scripts/ddos/install.sh
[root@xinsz08 ~]#chmod 700 install.sh //添加权限
[root@xinsz08 ~]# ./install.sh //安装
安装完成按q退出
[root@xinsz08 ~]#vim /usr/local/ddos/ddos.conf #此时查看下,如果配置与下文相同就不用修改。
##### Paths of the script and other files
PROGDIR="/usr/local/ddos"
PROG="/usr/local/ddos/ddos.sh" #要执行的DDOS脚本
IGNORE_IP_LIST="
/usr/local/ddos/ignore.ip.list" //IP地址白名单,注:在这个文件中IP不受控制。
CRON="/etc/cron.d/ddos.cron" //定时执行程序
这个时候在写一个定时任务,让系统每分钟查看下是否有DDOS攻击,一旦有就开始拒绝。
[root@xinsz08 ~]# cat /etc/cron.d/ddos.cron
SHELL=/bin/sh
0-59/1 * * * * root /usr/local/ddos/ddos.sh >/dev/null 2>&1
然后我们来设置一个规则来防范DDOS攻击:
假设1分钟内,一个IP地址对我们服务器访问150次以上,就认为发生DDOS,使用iptables把这个IP地址自动屏蔽掉。
root@xinsz ~]# vim /usr/local/ddos/ddos.conf
文件里需要修改的地方如下:
FREQ=1 //检查时间间隔,默认1分钟
NO_OF_CONNECTIONS=150 //最大连接数,超过这个数IP就会被屏蔽,一般默认即可
APF_BAN=0 //使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。
KILL=1 //是否屏蔽IP,默认即可
BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整
设置完成了,这样系统会每隔一分钟去检测服务器是否遭受攻击,一旦发生攻击,DDOS deflate就会启用防火墙进行屏蔽。
不过,小编要提醒下,这样虽然可以防止大部分的ddos攻击了,但也不是万能的哦,因为ddos也分好几种。
有童鞋问,说好的照片呢?额,她还没给我啊。