linux下使用ddos脚本防止ddos攻击
DDOS概述:
分布式拒绝服务(DDoS:DistributedDenial of Service)攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
1.安装web服务器
安装yum install httpd ,拷贝文件cp /share mmexport1514566237016.jpg /var/www/html/index.html, 重启服务sytemctl restart httpd
在windows上测试访问http://192.168.129.100/
2.模拟ddos攻击
- 安装
其中webbench 和 ab命令是帮助我们做压力测试的工具和性能的监视工具
安装webbench需要从官网下载,wget http://home.tiscali.cz/~cz210552/webbench.html
之后安装它的依赖包gcc和ctags, yum install -y gcc* ctags
对 webbench-1.5.tar.gz 进行解压 ,tar -xvf webbench-1.5
查看/home/webbench-1.5目录,有Makefile文件,编译运行make && make install,第一次编译会出现错误,按提示输入 mkdir -p /usr/local/man/man1,再次编译,这里输入echo $?查看上一个命令是否执行成功,0表示成功
- 运行和查看
webbench -c 100 -t 10 http://192.168.129.100这就是一个测试,也就相当于一个ddos攻击
,这里指定100个客户端,运行测试时间10秒,访问你的网络地址URL
可以用这条命令进行查询netstat -ntu |awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n ,这里netstat -ntu截取外网和ip地址,print $5 打印这一行,cut是来截取显示的ip,sort排序,uniq -c 排除相同的记录,sort -n 排序并统计
ip地址前面的数字不能太大,太大就说明是ddos攻击
3.防御
- ddos deflate:
是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP
安装: wget http://www.inetbase.com/scripts/ddos/install.sh,赋予脚本执行权chmod +x install.sh,执行./install.sh,会进入一个界面按q退出
配置文件:/usr/local/ddos
PROGDIR="/usr/local/ddos"路径
PROG=”/usr/local/ddos/ddos.sh“执行ddos脚本的路径
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" IP地址白名单
CRON="/etc/cron.d/ddos.cron" 时间计划任务
FREQ=1 检查时间间隔,默认1分钟
KILL=1 屏蔽IP
BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整
NO_OF_CONNECTIONS=150 最大连接数,超过这个数IP就会被屏蔽
APF_BAN=0,1代表使用APF防火墙,0代表使用iptables,这里选0
BAN_PERIOD=600禁用IP时间,默认600秒,可根据情况调整
可以在/etc/cron.d/下查看到相关的定时计划任务,这里指0-59分钟每分钟执行下ddos脚本,如有发现ddos攻击,就开始拒绝
- 测试
允许80端口iptables -IINPUT -p TCP --dport 80 -j ACCEPT,输入iptables -L-n查看防火墙状态
ab -n 1000 -c 10 http://192.168.1.63/index.html 分10,每次100个用户,一分钟后查看防火墙,80端口处于drop状态,再次输入ab -n 1000 -c 10 http://192.168.1.63/index.html ,发现不能启动
相关文章
- 【Linux】linux常用基本命令
- 在linux 列出 超级用户 普通用户和 系统用户
- Linux&Tina&Melis内存布局分析以及linux reserved memory机制
- Linux有问必答:怎样解决“XXX is not in the sudoers file”错误
- Linux--忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法
- linux定时任务cron配置
- linux系统防CC攻击自动拉黑IP增强版(Shell脚本)
- Linux安装Jenkins(图文解说详细版)
- Linux - 用户权限-chattr-lsattr-suid-粘滞位-setfacl-getfacl
- 《嵌入式 Linux C 语言应用程序设计(修订版)》一2.3 嵌入式Linux编译器GCC的使用
- Linux 内核总线方法
- Linux 内核存取 I/O 和内存空间
- Linux中VSFTP的配置
- 详解Linux服务器最大tcp连接数
- Linux—linux 查看一个文件有多少M
- Linux基础:文件基础属性及如何更改文件属性、文件与目录管理、linux软硬链接的理解、linux用户和用户组管理
- Linux基础:系统启动过程(5个阶段)、linux关机正确流程及常用实例命令、linux目录结构(常见目录解释及目录的分类介绍)
- 给Linux RedHat7 设置启动终端的快捷键
- linux服务器宕机分析/性能瓶颈分析
- [加入用户]解决useradd 用户后没有加入用户Home文件夹的情况,Linux改变文件或文件夹的訪问权限命令,linux改动用户password,usermod的ysuum安装包。飞
- 警惕!Linux Mint遭黑客“猴赛雷”攻击
- Linux学习笔记(25)linux批量管理
- Linux学习笔记(21)linux查看系统状态
- Linux Cenos 以RPM方式安装 redis
- 【Linux】好玩的linux命令