DDOS攻击:???
DDOS概述:
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

攻击原理如图:
个人PC/服务器 访问web服务器操作
服务器1G
服务器1G
服务器1G web服务器带宽1G:带宽被耗尽时挂掉
服务器1G
LINUX虚拟机安装测试环境
安装web服务器: [root@xuegod63 ~]# yum install httpd
生成默认首页: [root@xuegod63 ~]# cp /etc/passwd /var/www/html/index.html
启动web服务器 [root@xuegod63 ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]
[root@xuegod63 ~]#

测试访问: http://192.168.1.63/ 测试,模拟DDOS

Webbench、ab命令:做压力测试的工具和性能的监控工具

webbench: 官网:http://home.tiscali.cz/~cz210552/webbench.html
Yum -y install gcc* ctags

下载下来——》解压——》安装

已有Makefile 直接make 报错:
install: cannot create regular file `/usr/local/man/man1': No such file or directory
make: *** [install] Error 1

解决方法: mkdir -p /usr/local/man/man1
make && make install
echo $? 0

使用方法: webbench -c 客户端 -t 运行测试时间 URL

例如: webbench -c 100 -t 10 http://192.168.1.100/index.html
[root@localhost webbench-1.5]# webbench -c 100 -t 10 http://192.168.1.100/index.html
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.1.100/index.html
100 clients, running 10 sec.
Speed=244026 pages/min, 6732845 bytes/sec. Requests: 40671 susceed, 0 failed.

如何查是否受到DDOS攻击?
脚本内容:
通过:netstat 查看网络连接数。如果一个IP地址对服务器建立很多连接数(比如一分钟产生了100个连接),就认为发生了DDOS
[root@xuegod63 html]# vim ddos-test.sh
#写入以下内容
#!/bin/bash netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
注释: #!/bin/bash
netstat -ntu | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -n
截取外网IP和端口 截取外网的IP以:为分隔符 |排序 | 排除相同的记录 | 排序并统计

防止DDOS:???
方法一: 手动写iptables 规则,ip地址数比较少时
方法二: 检测到访问次数比较多的ip地址后,自动添加iptables规则。
如fail2ban或linux+DDoS deflate DDoS
deflate介绍 DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。
它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.
DDoS deflate 官方网站:http://deflate.medialayer.com/ 被屏蔽,有可能打不开。

实战: 使用DDoS deflate 解决服务器被DDOS攻击的问题

方法 1: 检测是否有DDOS攻击 执行: netstat -ntu | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -n
如果发现某个IP连接数据上百的链接,说明就有DDOS攻击。

方法2: IDC 机房,你们公司服务器,大量往外发送数据包。 IDC机房管理员会给你打电话。

方法3: 阿里云主机有监测机制,如果你的云主机大量对外发包,阿里云会给你发短信,处理不及时,把你的云主机就封了。

下面开始安装DDos deflate
1、安装DDoS deflate
[root@xuegod63 ~]#wget http://www.inetbase.com/scripts/ddos/install.sh //确定能上网
[root@xuegod63 ~]# chmod 700 install.sh //添加权限
[root@xuegod63 ~]#./install.sh //安装 第一次可能不成功,卸载后再装一次就行了
Installing DOS-Deflate 0.6 Downloading source files.........done Creating cron to run script every minute.....
(Default setting).....done Installation has completed.
Config file is at /usr/local/ddos/ddos.conf Please send in your comments and/or suggestions to zaf@vsnl.com
##############################################################################
##############################################################################
# "Artistic License" # #
# # Preamble # #
# # The intent of this document is to state the conditions under which a #
# Package may be copied, such that the Copyright Holder maintains some # 输入q 退出。

DDoS deflate安装路径:
[root@xuegod63 ~]# ls /usr/local/ddos/
配置文件:
[root@xuegod63 ~]# ls /usr/local/ddos/ddos.conf /usr/local/ddos/ddos.conf
[root@xuegod63 ~]# cat /usr/local/ddos/ignore.ip.list #IP地址白名单 127.0.0.1
[root@xuegod63 ~]# 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" //定时执行程序
查看定时任务:
[root@xuegod63 ~]# 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,自动执行。
联想:木马程序。 变种成木马程序。 最重要的是:他的这个计划任务,你查不到。
实战: 如果1分钟内,一个IP地址对我们服务器访问150次以上,就认为发生DDOS,使用iptables把这个IP地址自动屏蔽掉。

[root@xuegod63 ~]# vim /usr/local/ddos/ddos.conf
配置文件中的注释如下:
##### 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 //检查时间间隔,默认1分钟
##### How many connections define a bad IP? Indicate that below.
NO_OF_CONNECTIONS=150 //最大连接数,超过这个数IP就会被屏蔽,一般默认即可
##### APF_BAN=1 (Make sure your APF version is atleast 0.96)
##### APF_BAN=0 (Uses iptables for banning ips instead of APF)
APF_BAN=1 //使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。
改:19 APF_BAN=1
为:19 APF_BAN=0
##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)
##### KILL=1 (Recommended setting) KILL=1 //是否屏蔽IP,默认即可
##### An email is sent to the following address when an IP is banned.
##### Blank would suppress sending of mails EMAIL_TO=cd@xuegod.cn //当IP被屏蔽时给指定邮箱发送邮件报警,换成自己的邮箱即可
##### Number of seconds the banned ip should remain in blacklist. BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整 用户可根据给默认配置文件加上的注释提示内容,修改配置文件。
需要重启服务???
注:安装后,不需要手动运行任何软件,因为有crontab计划任务,每过一分钟,会行自动执行一次。
检查是否有不正常的访问量 必须改:
[root@xuegod63 ~]# vim /usr/local/ddos/ddos.sh #把原来的f1改为f4 ,第四列

测试:
在Linux模拟DDOS
[root@xuegod64 html]# ab -n 1000 -c 10 http://192.168.1.63/index.html
立即查看防火墙规则是没有的:
[root@xuegod63 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@xuegod63 ~]# 开启防火墙 iptables -I INPUT -p TCP --dport 80 -j ACCEPT
等待一分钟后查看结果,出现访问的ip(本地Linux虚拟机)说明成功。
再执行一下ab你会发现已经不能执行了。

一键卸载:
[root@xuegod63 ~]#wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
[root@xuegod63 ~]# chmod +x uninstall.ddos
[root@xuegod63 ~]# ./uninstall.ddos
Uninstalling DOS-Deflate
Deleting script files.........done Deleting cron job.......done
Uninstall Complete
---恢复内容结束---

蹭课地址:https://ke.qq.com/course/139455#tuin=99f06607

Webbench、ab命令:做压力测试的工具和性能的监控工具的更多相关文章

  1. apache的ab命令做压力测试

    1. 最基本的关心两个选项 -c -n 例: ./ab -c 100 -n 10000 http://127.0.0.1/index.php -c 100 即:每次并发100个-n 10000 即: ...

  2. ab命令执行压力测试

    ab是Apache超文本传输协议(HTTP)的性能测试工具:设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求:ab不仅仅能进行基于apache服务 ...

  3. Apache服务器下使用 ab 命令进行压力测试

    ab是Apache超文本传输协议(HTTP)的性能测试工具. 其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求. #ab -v可以看出其基本信息 ...

  4. Linux学习13-CentOS安装ab做压力测试

    前言 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一,测试环境准备好了后,如何对网站做压力测试? 压力测试的工具很多,如:ab.http_load.webbench.siege.jmeter ...

  5. ab并发负载压力测试

    一.ab 0.安装ab压力测试软件 [root@a2 conf]# yum install httpd-tools -y #查看版本 [root@a2 conf]# ab -V This is Apa ...

  6. 在linux中给你的应用做压力测试

    在linux中给你的应用做压力测试 作者: 立地 邮箱: jarvin_g@126.com QQ: 511363759 一.webbench 1.在Ubuntu中安装webbench —支持get,h ...

  7. 使用Apache Benchmark做压力测试遇上的5个常见问题

    这一篇文章主要记录我在使用Apache Benchmark(一下检测ab)做网站压力测试的过程中,遇到的一些问题以及解决办法,方便日后使用. 这一篇文章主要记录我在使用Apache Benchmark ...

  8. 使用ab 进行并发压力测试

    使用ab 进行并发压力测试 - 参与商 - 博客园 https://www.cnblogs.com/shenshangzz/p/8340640.html 使用ab 进行并发压力测试   ab全称为:a ...

  9. 学习使用Jmeter做压力测试(一)--压力测试基本概念

    学习使用Jmeter做压力测试(一)--压力测试基本概念 一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测 ...

随机推荐

  1. Java-Socket实现文件的断点续传

    前段时间因为任务需要本人这个java渣渣开始研究如何用java实现简单的文件断点续传.所谓的文件断点续传,我的理解是文件在传输过程中因为某些原因程序停止运行文件终止传输,下一次重新传输文件的时候还能从 ...

  2. docker1.13.1的安装与卸载及mysql5.5安装实例

    docker中国官方地址:https://www.docker-cn.com/ 您可以使用以下命令直接从该镜像加速地址进行拉取: $ docker pull registry.docker-cn.co ...

  3. ES5-ES6-ES7_集合Set和Map

    集合的概念 集合是一组无序且唯一(元素不能重复)的项组成的.这个数据结构使用了与有限集合相同的数学概念,应用在计算机的数据结构中 特点:key和value相同,没有重复的value Set集合 ES6 ...

  4. 【BZOJ4298】[ONTAK2015]Bajtocja

    [BZOJ4298][ONTAK2015]Bajtocja Description 给定d张无向图,每张图都有n个点.一开始,在任何一张图中都没有任何边.接下来有m次操作,每次操作会给出a,b,k,意 ...

  5. 设计模式のFlyweight(享元模式)----结构模式

    一.产生背景 享元模式:它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件:它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件.通常物件中的部分状态是可以分享.常见做 ...

  6. UML各种图

    UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言.下面将对UML的九种图+包图的基本概念进行介绍以及各 ...

  7. 《JAVA程序设计》_第二周学习总结

    20175217吴一凡 一.IDEA的安装和使用 参考老师的教程Intellj IDEA 简易教程. 1.IDEA的安装 因为我已经习惯了在Linux上敲代码,所以我决定将IDEA安装在虚拟机上. 首 ...

  8. 极光推送(C#)

    推荐使用appSetting 加载这两个参数 webConfig: <appSettings> <add key="AppKey" value="ccc ...

  9. 牛客网训练1--------矩阵 (二份+二维矩阵hash)

    不懂hash的话:https://www.cnblogs.com/ALINGMAOMAO/p/10345850.html 思路:对于一个大矩阵的每一个子矩阵都对应着一个hash值k, 当k出现2次以上 ...

  10. 还是要习惯在linux环境下作Java开发

    要FQ 怎么在ubuntu上安装jdk 网址: https://www.youtube.com/watch?v=NZB3Iy7Lve4 需要网站:http://p.web.umkc.edu/pv6xc ...