IIS防御DDOS攻击实例

最近几天公司官网和业务系统的注册页面频繁遭遇DDOS攻击,导致IIS应用程序池CPU占用率100%,访问网站出现503错误。下面总结一下应对措施。

    一、启用IIS的CPU监视功能

对于低频率的DDOS可以采取这种方法。w3wp.exe是应用程序池的关联进程,当WEB访问量大时,w3wp.exe会占用大量的系统资源。在DDOS攻击下,很明显的现象就是w3wp.exe占用CPU达到100%,网站拒绝访问,这个时候远程登录服务器都很困难。针对这种情况,做如下优化:

1、为IIS中的每个网站设置单独的应用程序池。

2、为每个应用程序池设置CPU监视功能:当w3wp.exe的CPU超过50%或更高时,自动杀死w3wp.exe进程,监视频率为1分钟。只要有访问请求进来,w3wp.exe便会重新启动,不影响用户访问。

二、流量清洗

当黑客发现低层次的DDOS已经不起作用时,便会加大攻击力度。一开始我们官网的平均并发数只有几千,后来加大到了平均1万6千个并发,最高7万个并发,这样上面的CPU监视功能就没有效果了,因为w3wp.exe重启后,会在极短时间内CPU重新达到100%。

当时监控到的并发连接数:

CPU使用率和流量(带宽上限10M):

幸运的是官网域名刚好在阿里云上做好了备案,我们迁移到阿里云上后,利用云盾的DDOS防护功能便会清洗掉大部分异常流量,CPU立马正常,官网满血复活了。

这里贴一下云服务器的参数:

    配置: CPU2核、内存4GB
    镜像: Windows Server 2008 R2 标准版 SP1 64位中文版
    存储: 1块普通云盘(100GB)
    网络: 带宽10Mbps(经典网络)

参数配置不高,但是能抵御高强度的DDOS攻击,这得益于阿里强大的技术实力,偷偷做个广告,嘿嘿。

    三、Nginx反向代理

但是黑客还经常攻击我们业务系统的注册页面,这次就没有这么幸运了,因为业务系统是在我们实体机房,这就要靠我们自己了。

所以我们采取了前端Nginx反向代理、后端双IIS做负载均衡,利用Nginx强大的性能和HttpLimitReqModul模块限制某时间段内同一ip访问次数。Nginx的优化这里不提,下面只贴出相关配置:

首先在nginx.conf的http配置段里增加如下内容:

    map $http_x_forwarded_for  $clientRealIp {
    "" $remote_addr;
    ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
    }
    # 访问受限制后返回599
    limit_req_status 599;
    # 定义一个名为allips的limit_req_zone用来存储session,大小是100M内存,
    # 以$clientRealIp 为key,限制平均每秒的请求为100个,
    limit_req_zone $clientRealIp zone=allips:100m rate=100r/s;

这里限制了同一IP每秒的请求数不超过100个,否则多余的请求会直接返回599错误。限制频率要根据实际情况进行配置,配置过低会影响正常的访问,出现页面显示不全等问题。

然后编辑/etc/nginx/conf.d/upstream.conf:

server {
  listen       1334;
  server_name  _;

  # 添加如下一行
  limit_req zone=allips burst=5 nodelay;

  location / {
    # 反向代理
    proxy_pass http://wskh_IIS;
  }
  
  # 开启stub_status模块监控
  location /nginx_status{
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    # 允许内网某IP查看nginx status
    allow 192.168.1.100;
    deny all;
  }
}

# 后端web服务器
upstream wskh_IIS {
  server 192.168.1.39:1334;
  server 192.168.1.40:1334;
  ip_hash;
}

好了,简单配置完成。

下面贴一个统计Nginx访问日志access.log里IP请求频率的小脚本:

#!/bin/bash
#
# Filename:    count_req.sh
# Revision:    1.0
# Author:      Qicheng
# Website:     http://qicheng0211.blog.51cto.com
# Description: 统计Nginx日志里IP访问频率

start_time=$(head -n1 access.log | grep -o " \[.*\] ")
stop_time=$(tail -n1 access.log | grep -o " \[.*\] ")

echo -e "start:\t\e[92m$start_time\033[0m"
echo -e "stop:\t\e[92m$stop_time\033[0m"
echo ‘所有的请求TOP50-->>‘
# 所有的请求
cat access.log | awk ‘{++S[$1]} END {for(a in S) print S[a],"\t", a}‘ | sort -rn -k1 | head -n 50
echo ‘--------------------------------------------------‘
echo ‘成功的请求TOP50-->>‘
# 成功的请求
grep ‘ 200 ‘ access.log | awk ‘{++S[$1]} END {for(a in S) print S[a],"\t", a}‘ | sort -rn -k1 | head -n 50

把脚本放到和access.log同一目录下执行即可。部分输出如下:

时间: 2024-08-03 15:35:39

IIS防御DDOS攻击实例的相关文章

Linux下防御DDOS攻击的操作梳理

DDOS的全称是Distributed Denial of Service,即"分布式拒绝服务攻击",是指击者利用大量"肉鸡"对攻击目标发动大量的正常或非正常请求.耗尽目标主机资源或网络资源,从而使被攻击的主机不能为合法用户提供服务. DDOS攻击的本质是:利用木桶原理,寻找利用系统应用的瓶颈:阻塞和耗尽:当前问题:用户的带宽小于攻击的规模,噪声访问带宽成为木桶的短板. 可以参考下面的例子理解下DDOS攻击.1)某饭店可以容纳100人同时就餐,某日有个商家恶意竞争,

防御DDOS攻击终极指南

一.为何要DDOS? 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上 升趋势.出于商业竞争.打击报复和网络敲诈等多种因素,导致很多IDC托管机房.商业站点.游戏服务器.聊天网络等网络服务商长期以来一直被DDOS攻击 所困扰,随之而来的是客户投诉.同虚拟主机用户受牵连.法律纠纷.商业损失等一系列问题,因此,解决DDOS攻击问题成为网络服务商必须考虑的头等大事. 二.什么是DDOS? DDOS是英文Distrib

如何找个海外高防服务器,防御DDOS攻击呢?

如今大数据时代,DDOS攻击让很多站长头疼,找不到一台好的高防服务器也成了站长心目中的心病.那么,哪里有好的高防服务器呢?哪里有能防御DDOS的海外高防服务器呢?什么是DDOs攻击呢? DDoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性.如果说 以前网络管理员对抗Dos可以采取过滤IP地址方法的话,那么面对当前ddos众多伪造出来的地址则显得没有办法. (1)定期扫描 要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进

从分析攻击方式来谈如何防御DDoS攻击

DDoS攻击的定义: DDoS攻击全称--分布式拒绝服务攻击,是网络攻击中非常常见的攻击方式.在进行攻击的时候,这种方式可以对不同地点的大量计算机进行攻击,进行攻击的时候主要是对攻击的目标发送超过其处理能力的数据包,使攻击目标出现瘫痪的情况,不能提供正常的服务.   DDoS攻击类型: ICMP Flood:通过对目标系统发送海量数据包,就可以令目标主机瘫痪,如果大量发送就成了洪水攻击. UDP Flood:攻击者通常发送大量伪造源IP地址的小UDP包,100k bps的就能 将线路上的骨干设备

惠州/衡阳机房 无视CC、防御DDOS攻击

惠州/衡阳新上线无视CC攻击服务器独立主机高配置,G口带宽无限制,专业CC策略防护,可防千万肉鸡,真正的无视CC攻击,挂站首选单机防护40G-320G,可防高流量DDOS攻击 惠州IP段:183.2.242.X/183.2.243.X/183.2.247.X/183.2.225.X/183.2.236.X/183.2.249.X 衡阳IP段:175.6.245.X/175.6.244.X/175.6.247.X 数量不多,现已火热抢购中如有需求,请联系企业QQ:2851506992   Tel:

怎么防御DDOS攻击

关于DDOS攻击 分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力. 通常,攻击者将攻击程序通过代理程序安装在网络上的各个“肉鸡”上,代理程序收到指令时就发动攻击. 常见的DDoS攻击种类: 网络层攻击:比较典型的攻击类型是UDP反射攻击,例如:NTP Flood攻击,这类攻击主要利用大流量拥塞被攻击者的网络带宽,导致被攻击者的业

用shell解决ddos攻击实例

提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100 即调用防火墙命令封掉对应的IP,监控频率每隔3分钟 防火墙命令为:iptables -A INPUT -s 10.0.1.10 -j DROP 思路: 1.分析日志,提取IP和PV数 2.while语句,读取提取到的IP和PV数,并实现3分钟循环一次 3.调用防火墙命令 用while读取日志方法: 1.cat a.log | while read line do done 2.exec<a.log | wh

面对频繁的ddos攻击,游戏网站究竟该如何防御?

作为互联网上黑客最为常用的攻击手段,ddos攻击一出现,伤害必定小不了,尤其近几年,ddos攻击成本愈加低廉,黑客索性变本加厉的攻击,对于ddos攻击重灾区的游戏行业来说,可谓是苦不堪言. 那么为什么游戏行业易遭受ddos攻击呢?主要有四点原因.一是因为游戏行业生命周期短,很可能一款游戏半年时间便消失在用户视线之中,而黑客抓住了这一弱点,认定一旦发起攻击,游戏公司为保游戏一定会拿钱消灾:二是因为游戏网站必须24小时在线,连续提供服务,一旦遭受攻击,游戏不能上线会造成大量玩家流失:三是因为游戏市场

DDoS攻击防御方案

DDoS攻击防御方案 近期DDoS攻击事件较多(2014年DDoS攻击事件分析),大家都在思考一个问题,在面临DDoS攻击的时候,如何防御ddos攻击?绿盟科技安全+技术刊物特别邀请到绿盟科技在运营商方面的DDoS专家,给大家讲讲DDoS攻击防御方案. DDoS攻击威胁现状 对于DDoS攻击,有多种分类方式,例如流量型DDoS攻击(如SYN Flood.UDP Flood.ICMP Flood.ACK Flood等).应用层的DDoS攻击(如Http Get Flood.连接耗尽.CC等).慢速