Azure上Linux VM DDOS攻击预防: 慢速攻击
在上篇博客(http://www.cnblogs.com/cloudapps/p/4996046.html)中,介绍了如何使用Apache的模块mod_evasive进行反DDOS攻击的设置,在这种模式中,主要预防的是对http的volume attack,然而DDOS的攻击方式,各种工具非常多,随便搜一搜就知道了,我们回过头来看看,什么叫DOS/DDOS,看看维基百科:
"拒绝服务攻击(Denial of Service Attack,缩写:DoS)亦称洪水攻击,是一种网络攻击手法,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其对目标客户不可用。
年统计,被确认为大规模DDoS的攻击已达平均每小时28次。[1]攻击发起者一般针对重要服务进行攻击,如银行,信用卡支付网关,甚至根域名服务器。"
攻击方式可以分为:
带宽消耗类型攻击(DDoS带宽消耗攻击可以分为两个不同的层次;洪泛攻击或放大攻击。)
- ICMP floods
- ping of death(死亡之Ping)
-
资源消耗性攻击
- 协议分析攻击(SYN flood,SYN洪水)
- LAND attack
- CC攻击
- 僵尸网络攻击
- Application level floods(应用程序级洪水攻击)
如果你归纳汇总一下攻击的类型的话,会发现,主要有:
- 应用层级DDOS攻击
- 协议层DDOS攻击(UDP/ICMP/SYN等)
- 量级DDOS攻击(僵尸网络/CC等)
其中后两种,现在大部分的DDOS的设备都可防护,但应用级别的DDOS就会比较麻烦,很难防护,上篇博文中介绍的实际是该种攻击的一种,基于http的volume attack的预防,属于大批量,快速攻击类的;那还有一种比较常见的应用攻击叫慢速攻击(slow http DDOS),恰恰相反,就是慢速连接,耗掉你所有资源,比较有名的如Slowloris等。
对于第一种,基本原理是检测访问量和访问频率,封掉IP
对于第二种,使用netstat检测连接状态,然后将攻击地址加入iptable中,拒绝访问
今天我们来介绍第二种方式的预防工具,不需要我们来写脚本了,有一个开源的软件可以帮助我们来做,软件名字叫DOS Deflate,这个软件是一个法国的大神Zaf(zaf@vsnl.com)开发的,基本原理同上介绍。在本文中使用CentOS6.5座位演示环境:
1. 准备目录:
$sudo mkdir -p /usr/local/src/
$cd /usr/local/src/
$sudo mkdir ddos
$cd ddos
2.下载DOS Deflate软件
$ sudo wget http://www.inetbase.com/scripts/ddos/install.sh
3. 安装软件
4. 安装完成之后,需要进一步配置该软件:
$ sudo vi /usr/local/ddos/ddos.conf
4.1 需要检查一下配置路径是否和你的实际环境一致,本测试中保持不变:
##### 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"
CRON="/etc/cron.d/ddos.cron"
APF="/etc/apf/apf"
IPT="/sbin/iptables"
分钟执行一次:
FREQ=1
,我将他改成70
NO_OF_CONNECTIONS=70
:
APF_BAN=0
4.6 定义了你是否使用交互模式来处理攻击IP,如果逆选择交互,则只会给你发封邮件,我们设为1
##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)
##### KILL=1 (Recommended setting)
KILL=1
4.6 邮件通知地址:
EMAIL_TO="xxx@microsoft.com"
4.7 将这个被禁止掉的IP封掉多长时间,以秒为单位
##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600
5. 所有的配置完成后,我们重新启动服务:
6.配置完成后,我们需要测试一下效果,光说不练不是真把式啊,DDOS攻击的工具非常多,常见的有以下这些:
- HOIC (High Orbit Ion Canon)
- LOIC ( Low Orbit Ion Canon)
- XOIC
- R-U-DEAD-Yet
- Pyloris
- OWASP DOS HTTP Post
- GoldenEye HTTP Denial of Service Tool
- Slowloris HTTP Dos
大部分的下载到目前为止都是不可用的,比如HOIC,Slowloris等,我找了一些可以做测试的分享给大家:
Slow Http Test :https://code.google.com/p/slowhttptest/downloads/detail?name=slowhttptest-1.6.tar.gz&can=2&q=
OWASP HTTP Post Tool
https://www.owasp.org/index.php/OWASP_HTTP_Post_Tool
http://www.proactiverisk.com/tools/
本测试Demo中,使用的是后者,可以做慢速攻击
6.1 首先检测一下当前iptables的状态:
可以看到一切正常,那么就诶下来准备攻击。
6.2 配置你要攻击的IP地址,设置攻击连接数,时间等信息,开始慢速攻击
分钟,攻击一段时间之后,我们监测一下iptables的状态,可以看到,攻击的IP地址被检测到,并禁止了:
6.4 最终攻击被封杀,无法连接
可以看到这种设置非常有效的防止了慢速攻击,可以在具体的实践中尝试用一用~
Azure上Linux VM DDOS攻击预防: 慢速攻击的更多相关文章
- Windows Azure 上 Linux VM 中的交换空间 – 第 2 部分
本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 在前一篇文章 Windows Azure 上Linux VM 中的交换空间第 1 部分中,我介绍了在默认情况下, ...
- Azure上Linux VM防DDOS攻击:使用Apache mod_evasive
部署在云端的虚拟机和web服务,很容易受到DoS护着DDoS的服务攻击,让一些新上线的业务苦不堪言,当然各个云服务提供商也有不同层面DDOS的防护,然而由于防护粒度,攻击复杂度的关系,未必可以满足你的 ...
- Azure上Linux VM误配防火墙的恢复方法
在实际运维中,防火墙把自己挡在机器外面的情况会时有发生.如何快速的恢复对运维人员是很重要的. 本文将介绍如何用Azure Extension实现不通过ssh对VM进行操作的方法. 之前写过一遍Blog ...
- 在Windows Azure上配置VM主备切换(1)——Linux篇
对任何一个上线系统来说,高可用设计是不可或缺的一个环节,这样才可以确保应用可以持续.稳定的运行,而不是频繁的掉线.停机.高可用设计的核心思路很简单,就是消除一切单点故障,将单点链路或者节点升级为多点. ...
- 对连接到 Azure 中 Linux VM 时出现的问题进行详细的 SSH 故障排除的步骤
有许多可能的原因会导致 SSH 客户端无法访问 VM 上的 SSH 服务. 如果已经执行了较常规的 SSH 故障排除步骤,则需要进一步排查连接问题. 本文指导用户完成详细的故障排除步骤,以确定 SSH ...
- 在Azure上的VM镜像库中找到想要的镜像
Azure上的虚机镜像库中, 有很多的镜像,其中当然也包括了用户自定义上传的镜像. 在Powershell中如果想使用这些镜像的话, 则需要知道其名称 下面这条命令,可以获得所有的镜像信息 $imag ...
- Azure上每个VM多个IP地址
Azure的每个VM都有多种IP地址,包括DIP.VIP和PIP.具体如下: DIP地址是在VM里能够看到的IP地址,即私网地址:PIP地址是这个VM关联的公网IP地址,即公网地址:VIP地址是负载均 ...
- Azure上Linux虚拟机Mac地址的持久化
有些用户在使用Azure Linux 虚拟机安装软件时,有些软件的license会和当前系统的mac地址绑定,那么在Azure VM重启,reszie(改变尺寸大小),停止然后再启动的时候,虚拟机的M ...
- Azure 上 Linux 虚拟机 Mac 地址的持久化
有些用户在使用 Azure Linux 虚拟机安装软件时,有些软件的 license 会和当前系统的 mac 地址绑定,那么在 Azure VM 重启,reszie(改变尺寸大小),停止然后再启动的时 ...
随机推荐
- Eclipse使用git最简易流程
git有诸多好处,网上都说的很清楚了,在这里我不再赘述.对于我来说,私下里想做一些项目,而又不能很好的保存自己的代码和进行版本控制,这时候,就用到了git.下面,就以我个人为例讲讲git从0开始如何安 ...
- ubuntu 安装openproj-1.4-2.noarch.rpm
一 openproj是rpm包,ubuntu下需要转成deb安装.具体步骤1:下载:http://sourceforge.net/projects/openproj/2:安装alien sudo ap ...
- SQL Server 视图
视图实际上就是一个存储查询,重点是是可以混合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象.可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列:或者也 ...
- codecomb 2086【滑板鞋】
题目背景 我的滑板鞋时尚时尚最时尚 回家的路上我情不自禁 摩擦 摩擦 在这光滑的地上摩擦 月光下我看到自己的身影有时很远有时很近 感到一种力量驱使我的脚步 有了滑板鞋天黑都不怕 题目描述 你在魅力之都 ...
- xen vhd操作工具source code研读
推出最新的VHD操作工具VHD-UTIL 实现源码,超强,Ruiy只为学习高手的设计思路
- C语言结构体的内存对齐问题
在C语言开发当中会遇到这样的情况: #include <stdio.h> struct test { int a; char b; }; int main(int argc, const ...
- Unity扩展 四种Menu的区别
[MenuItem("Tools\AddColor")] : 在Unity菜单中添加一种快捷,执行public static方式 [AddComponentMenu(" ...
- Java核心技术,让计算机"一芯多用"的多线程技术
我们在使用计算的时候会感受到计算机好像在同时执行很多任务,这也是我最初接触计算机给我留下的印象,而我们普通人在同一时刻大脑只能思考一件事情(当然不排除一些异能者能够做到一心二用),而且我们在思考完一件 ...
- 【十】注入框架RoboGuice使用:(Your First Testcase)
上一篇我们简单的介绍了一下RoboGuice的使用([九]注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)),今天 ...
- gcc和arm-linux-gcc区别
安装arm-linux-gcc的时候,查了不少资料,总算环境搭好了.于是,想写个程序员的经典程序---hello world. 语法都没错,生成test.c. 命令行运行:arm-linux-gcc ...