分布式拒绝服务(DDoS:Distributed Denial of Service)攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
测试工具: webbench, ab命令:做压力测试的工具和性能的监控工具。
webbench软件官网:http://home.tiscali.cz/~cz210552/webbench.html
依赖包: yum -y install gcc* ctags
解压webbench, 编译,并安装。
使用方法:
webbench -c 客户端(个数) -t 运行测试时间 URL
例如:webbench -c 100 -t 10 http://IP/index.html
ab命令用法:
ab命令是Apache的Web服务器的性能测试工具,它可以测试安装Web服务器每秒种处理的HTTP请求.
ab -n 指定的请求数 -c 指定一次向服务器发出的请求数 URL
例如: ab -n 1000 -c 10 http://IP/index.html
如何检查服务器受到DDOS攻击:
用netstat 查看网络连接数。
例如: netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
预防DDOS攻击方法:
(1) 使用硬件防火墙。(高防服务器)
(2) 定期扫描安全漏洞。
(3) 在骨干节点配置防火墙。
(4) 用足够的机器承受黑客攻击
(5) 充分利用网络设备保护网络资源。路由器,防火墙等负载均衡设备,
(6) 过滤不必要的服务和端口。
(7) 检查访问者的来源。
(8)过滤所有RFC1918 IP地址。是内部网的IP地址, 是internet内部保留的区域性IP地址。此方法是将攻击时伪造的大量虚假内部IP过滤,减轻DDOS攻击。
(9) 限制SYN/ICMP流量,在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽。
rhel6.5和centos6.5自带了iptables防火墙,rhel7和centos7自带了iptables和firewalld防火墙, 可手动写入iptables规则,也可以使用脚本来检测访问次数较多的IP地址,可自动添加iptables规则。例如:fail2ban或 linux+DDos deflate.
DDos deflate 用来防御和减轻DDos攻击的脚本,通过netstat监测跟踪创建网络连接的IP地址看,当超过预设的限制时,该程序通过apf或iptables禁止或阻挡这些IP访问。
安装DDos deflate :
linux需要联网下载:
网站获取:#wget http://www.inetbase.com/scripts/ddos/install.sh
添加权限:#chmod 777 install.sh
执行脚本:#./install.sh
安装不成功,卸载后,请再安装一次即可。
安装成功后,按q键退出。
查看: # ls /usr/local/ddos/
主配置文件:ddos.conf
IP地址白名单:# cat /usr/local/ddos/ignore.ip.list
# cat /usr/local/ddos/ddos.conf
PROG="/usr/local/ddos/ddos.sh" //要执行的DDOS脚本。
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" //IP地址白名单。
CRON="/etc/cron.d/ddos.cron" //定时执行程序。
查看定时任务:
[root@www ~]# cat /etc/cron.d/ddos.cron
SHELL=/bin/sh
0-59/1 * * * * root /usr/local/ddos/ddos.sh >/dev/null 2>&1
注:每分钟查看一下,有DDOS攻击,发现就拒绝。
install.sh #DDOS deflate 安装脚本的功能:
(1) 自动下载文件进行安装。
(2) 自动执行。 计划任务,外人无法查到。
主配置文件参数详解(ddos.conf) :
FREQ=1 // 检查时间间隔,默认1分钟。
NO_OF_CONNECTIONS=150 //最大连接数,超过这个数,IP就会被屏蔽。一般默认即可。
APF_BAN=1 //使用APF还是iptables, 推荐使用iptables,将APF_BAN的值改为0即可。
KILL=1 //是否屏蔽IP, 默认即可。
EMAIL_TO="root" //当IP被屏蔽时给指定邮箱发送邮件报警,换成自己的邮箱即可。
BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整。
安装后,不需要手动运行任何软件,crontab计划任务,每过一分钟,会自动执行一次。 检查是否有不正常的访问。
# vim /usr/local/ddos/ddos.sh 默认脚本里有,需要将f1改为f4即可。
netstat -ntu | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -nr > $BAD_IP_LIST
如果要测试,模拟DDOS攻击:
客户端: 使用ab命令: ab -n 请求数 -c 一次的请求数 URL(服务端)
服务端:查看防火墙规则,
设置一条客户端访问服务器的规则:
iptables -I INPUT -p TCP --dport 80 -j ACCEPT
在客户端使用ab再测试,发现已经不能执行了。
卸载ddos deflate :
# wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
# chmod +x uninstall.ddos //赋予执行权限。
# ./uninstall.ddos //执行脚本。