阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 16997阅读
  • 16回复

如果遇上网络攻击 你需要做的事

级别: 研究猿
发帖
4672
云币
1641
— 本帖被 swking 从 弹性计算 移动到本区(2014-03-18) —
* b+ef  
EsA)o 5  
日益频繁的网络攻击,因攻击手法趁向于低成本化(月光博客上周被攻击,据月光提供的数据,总共是使用了400多个HTTP代理)、效果化(个人博客、不管是虚拟机还是独立服务器,受到某类攻击CPU直接占满而拒绝服务)、隐蔽化(若无人工干预靠机器无法在保证正常用户体验上准确匹配特征而封禁攻击来源),掌握常见攻击的防护手法对站长、项目团队而言就非常重要了。 Gc=#  
g~FA:R  
<0,c{e  
案例1:某站受到分布式网络攻击,CPU正常,网络入口堵满,网站无法正常提供服务。  m9My  
这是典型的dDoS发包攻击,发包攻击主要针对以下几种目标: B%HG7  
        1.占带宽,让目标服务器接受不到新的请求,从而达到拒绝服务的目的。 Xy{\>}i]N  
        2.溢出攻击,因伺服系统、操作系统的一些未修复的漏洞,让攻击者探测到,攻击者则可以依此用非常小的代价实现让目标服务器死机、重启、甚至被提权。 n[Jpy[4g  
        此案例属于1情况,攻击者发包的目的就是为拼带宽实现拒绝服务。若是托管在普通机房,没有流量清洗能力的,很快你服务器IP会被机房网关null(网关封了你服务器IP)严重的还会被下架。 UEeD Nl$^u  
   若是在阿里云,云盾可以起到一定的防护作用,官方公布的数据是可防20G,承诺免费防护300M。为了防止有漏网之鱼,掌握常用的iptables命令是必要的(http://bbs.aliyun.com/read/107407.html?  特别是4中的封禁IP的命令  ),毕竟机器不是人,不可能有人工那么智能,而且发包攻击若量较小的时候,很容易被防火墙放过,所以最好、最万无一失的解决之道就是在云主机上封禁IP,配合云盾将服务器受到的影响降到最低。 yLfb'Ba  
为防止被溢出攻击,需要日常多关注下系统漏洞,及时为自己的主机打上补丁。 gC-3ghmgS  
'bN\8t\S  
_~m@ SI  
案例2:某网站受到攻击,CPU占满,流量并不高,但网站完全无法打开了。 CR$\$-  
这是CC攻击(通过某些攻击工具伪造大量僵尸请求,让目标某部分资源耗尽)的特征,首先,你需要明确一个事情,此时WEB服务继续进行,高CPU占用将会成为你在云主机上操作的负担。所以第一件事情:停止WEB服务。 Y*-#yG9  
然后是确定攻击源,找到你的日志位置,假设为/var/log/nginx/access.log =5bef8O  
假设记录日志的格式为: “访客IP -- http method -- uri -- 日期”这类的(注意看“访客IP”是在日志的首段出现), >5Vv6_CI0?  
则执行
  1. cat nginx.log |awk '{print $1}' |cut -f2 |cut -d, -f3 | sort |uniq -c | sort -nr | head -10
Gni<@;}  
  1. [root@AY120723082752d383204 nginx]# cat nginx.log |awk '{print $1}' |cut -f2 |cut -d, -f3 | sort |uniq -c | sort -nr | head -10
  2. 2947 123.234.34.35
  3. 2532 123.234.34.36
  4. ...
69)- )en  
*.如果是“日期 -- 访客IP -- ...“ 这类,就用cat nginx.log |awk '{print $3}' |cut -f2 |cut -d, -f3 | sort |uniq -c | sort -nr | head -10 ,其中的awk '{print $3}'是取出第三段数据(段与段之间是以空格分开的, -- 也是用空格与其它字体分隔的,所以"--"也要当做段)。 /Jz?~H{%n  
Yj+p^@{S2P  
BD6oN]  
然后用iptables命令将访问量大的IP屏蔽: !Yx9=>R  
  1. iptables -I INPUT -s 123.234.34.35  -j DROP
V4]t=3>  
因为CC攻击通常是由攻击抓取HTTP代理来发起攻击的,如果在没有用CDN的情况下,完全可以在受到攻击时屏蔽请求中包含x-forwarded-for的请求。 XV"8R"u%Q  
实现方法只列举NGINX的: > sW9n[  
  1. location / {
  2.     if ( $http_x_forwarded_for !~ "" ) {
  3.           return 444;
  4.     }
  5.     ......
  6. }
nginx return 444是直接掐断连接而不向“访客”返回任何数据,此处不建议使用弹回403等错误代码,这对阿里云用户非常有用的,因为出口带宽极有可能会被这 xij`Mr  
错误代码直接占满。 G }B)bM2  
HyKvDJ 3_  
x9UF  
备份下日志(mv到备份目录然后压缩,提高下一次分析日志时的效率,避免重复运算),然后你就可以启动WEB服务,看启动过后是否仍受攻击影响。 wO6 D\#  
tOx)t$ix  
"8{#R*p  
.(T*mk*>  
X 4\  
CC攻击有可能会有几波,通常需要屏蔽好几次才能将代理IP屏蔽干净,上面的操作可能需要在几个小时内重复执行,所以,遇上网络攻击,首先你需要一颗淡定的心,当然你也可以研究新的算法,用更高效的手法查找攻击源。 #YEOY#  
0P?\eoB@8  
xoT|fgb  
[ 此帖被ap6214f2r在2012-08-16 10:18重新编辑 ]
本帖最近评分记录: 1 条评分 云币 +1
法兰 云币 +1 2016-06-21
级别: 菜鸟
发帖
47
云币
47
只看该作者 沙发  发表于: 2012-08-16
Re如果遇上网络攻击你需要做的事
新版主给力啊 。技术文章
级别: 程序猿
发帖
325
云币
295
只看该作者 板凳  发表于: 2012-08-16
遇见攻击还能操作系统。这攻击效果不好
级别: 研究猿
发帖
4672
云币
1641
只看该作者 地板  发表于: 2012-08-16
回 2楼(zhengweisk) 的帖子
如果遇上发包攻击,云盾会在很快的速度内屏蔽攻击源。 u*:;O\6l  
Pv>W`/*_,s  
如果遇上CC攻击,只能听天由命祈求能连上SSH。
级别: 论坛版主
发帖
2495
云币
4402

只看该作者 4楼 发表于: 2012-08-16
Re:回 楼主(ap6214f2r) 的帖子
版主能进这个板块吗? 看看有没有内部消息出来啊  内部文章调用 9MI~yIt`L  
Hello  本人QQ 97286736
级别: 研究猿
发帖
4672
云币
1641
只看该作者 5楼 发表于: 2012-08-16
回 4楼(top1314) 的帖子
没权限
级别: 科学怪人
发帖
9985
云币
21878

只看该作者 6楼 发表于: 2012-08-16
好文章哈,学习了。
级别: 论坛版主
发帖
2495
云币
4402

只看该作者 7楼 发表于: 2012-08-16
回 5楼(ap6214f2r) 的帖子
诶。竟然版主都没权限
Hello  本人QQ 97286736
级别: 技术砖家
发帖
2408
云币
3405
只看该作者 8楼 发表于: 2012-08-16
擦,什么机密啊
级别: 程序猿
发帖
342
云币
384
只看该作者 9楼 发表于: 2012-08-16
Re如果遇上网络攻击你需要做的事
向版主学习,先留着,以后碰到了来用!
级别: 小白
发帖
8
云币
13
只看该作者 10楼 发表于: 2012-08-16
Re如果遇上网络攻击你需要做的事
级别: 程序猿
发帖
343
云币
147
只看该作者 11楼 发表于: 2012-08-16
国内的看麻烦点!国外的干脆的更换IP、重启系统,然后登陆上去直接封IP段!
级别: 布道狮
发帖
2389
云币
2588

只看该作者 12楼 发表于: 2012-08-16
很有效的办法啊。。
级别: 攻城狮
发帖
624
云币
407
只看该作者 13楼 发表于: 2012-08-20
好好学习。。。。
级别: 菜鸟
发帖
94
云币
30
只看该作者 14楼 发表于: 2012-08-20
Re如果遇上网络攻击你需要做的事
这样的帖子很实用
发表主题 回复主题
« 返回列表
«12»
共2页
上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)