zoukankan      html  css  js  c++  java
  • 如何防范CC攻击

    服务器如何防范CC攻击
    CC攻击是DDOS(分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些.这种攻击你见不到虚假IP,见不到特别大的异常流量,但造成服务器无法进行正常连接,听说一条ADSL足以搞掂一台高性能的Web服务器.由此可见其危害性,称其为“Web杀手”也毫不为过.最让站长们忧虑的是这种攻击技术含量低,利用工具和一些IP代理一个初、中级的电脑水平的用户就能够实施攻击.因此,大家有必要了解CC攻击的原理及如果发现CC攻击和对其的防范措施.

      1、攻击原理

      CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止.

      2、攻击症状

      CC攻击有一定的隐蔽性,那如何确定服务器正在遭受或者曾经遭受CC攻击呢?我们可以通过以下三个方法来确定.

      (1).命令行法

      一般遭受CC攻击时,Web服务器会出现80端口对外关闭的现象, 因为这个端口已经被大量的垃圾数据堵塞了正常的连接被中止了.我们可以通过在命令行下输入命令netstat -an来查看,如果看到类似如下有大量显示雷同的连接记录基本就可以被CC攻击了:


      …… 
      TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4 
      TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4 
      TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4 
      TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4 
      TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4 …… 
      




      其中“192.168.1.6”就是被用来代理攻击的主机的IP,“SYN_RECEIVED”是TCP连接状态标志,意思是“正在处于连接的初始同步状态 ”,表明无法建立握手应答处于等待状态.这就是攻击的特征,一般情况下这样的记录一般都会有很多条,表示来自不同的代理IP的攻击.

    (2).批处理法

      上述方法需要手工输入命令且如果Web服务器IP连接太多看起来比较费劲,我们可以建立一个批处理文件,通过该脚本代码确定是否存在CC攻击.打开记事本键入如下代码保存为CC.bat:


    @echo off 
      time /t >>log.log 
      netstat -n -p tcp |find ":80">>Log.log 
      notepad log.log 
      exit 
      上面的脚本的含义是筛选出当前所有的到80端口的连接.当我们感觉服务器异常是就可以双击运行该批处理文件,然后在打开的log.log文件中查看所有的连接.如果同一个IP有比较多的到服务器的连接,那就基本可以确定该IP正在对服务器进行CC攻击.



      (3).查看系统日志

      上面的两种方法有个弊端,只可以查看当前的CC攻击,对于确定Web服务器之前是否遭受CC攻击就无能为力了,此时我们可以通过Web日志来查,因为Web日志忠实地记录了所有IP访问Web资源的情况.通过查看日志我们可以Web服务器之前是否遭受CC攻击,并确定攻击者的IP然后采取进一步的措施.

      Web日志一般在C:WINDOWSsystem32LogFilesHTTPERR目录下,该目录下用类似httperr1.log的日志文件,这个文件就是记录Web访问错误的记录.管理员可以依据日志时间属性选择相应的日志打开进行分析是否Web被CC攻击了.(图3)  


     默认情况下,Web日志记录的项并不是很多,我们可以通过IIS进行设置,让Web日志记录更多的项以便进行安全分析.其操作步骤是:

      “开始→管理工具”打开“Internet信息服务器”,展开左侧的项定位到到相应的Web站点,然后右键点击选择“属性”打开站点属性窗口,在“网站”选项卡下点击“属性”按钮,在“日志记录属性”窗口的“高级”选项卡下可以勾选相应的“扩展属性”,以便让Web日志进行记录.比如其中的“发送的字节数”、“接收的字节数”、“所用时间”这三项默认是没有选中的,但在记录判断CC攻击中是非常有用的,可以勾选.另外,如果你对安全的要求比较高,可以在“常规”选项卡下对“新日志计划”进行设置,让其“每小时”或者“每一天”进行记录.为了便于日后进行分析时好确定时间可以勾选“文件命名和创建使用当地时间”.



      3、CC攻击防御策略

      确定Web服务器正在或者曾经遭受CC攻击,那如何进行有效的防范呢?笔者依据个人经验,提供如下防御措施.

      (1).取消域名绑定

      一般cc攻击都是针对网站的域名进行攻击,比如我们的网站域名是“www.isbese.net”,那么攻击者就在攻击工具中设定攻击对象为该域名然后实施攻击.

      对于这样的攻击我们的措施是在IIS上取消这个域名的绑定,让CC攻击失去目标.具体操作步骤是:打开“IIS管理器”定位到具体站点右键“属性”打开该站点的属性面板,点击IP地址右侧的“高级”按钮,选择该域名项进行编辑,将“主机头值”删除或者改为其它的值(域名). 



      笔者实例模拟测试,取消域名绑定后Web服务器的CPU马上恢复正常状态,通过IP进行访问连接一切正常.但是不足之处也很明显,取消或者更改域名对于别人的访问带来了不变,另外,对于针对IP的CC攻击它是无效的,就算更换域名攻击者发现之后,他也会对新域名实施攻击. (2).域名欺骗解析

      如果发现针对域名的CC攻击,我们可以把被攻击的域名解析到127.0.0.1这个地址上.我们知道127.0.0.1是本地回环IP是用来进行网络测试的,如果把被攻击的域名解析到这个IP上,就可以实现攻击者自己攻击自己的目的,这样他再多的肉鸡或者代理也会宕机,让其自作自受.

      另外,当我们的Web服务器遭受CC攻击时把被攻击的域名解析到国家有权威的政府网站或者是网警的网站,让其网警来收拾他们.

      现在一般的Web站点都是利用类似“新网”这样的服务商提供的动态域名解析服务,大家可以登录进去之后进行设置.

      (3).更改Web端口

      一般情况下Web服务器通过80端口对外提供服务,因此攻击者实施攻击就以默认的80端口进行攻击,所以,我们可以修改Web端口达到防CC攻击的目的.运行IIS管理器,定位到相应站点,打开站点“属性”面板,在“网站标识”下有个TCP端口默认为80,我们修改为其他的端口就可以了.

      (4).IIS屏蔽IP

      我们通过命令或在查看日志发现了CC攻击的源IP,就可以在IIS中设置屏蔽该IP对Web站点的访问,从而达到防范IIS攻击的目的.在相应站点的“属性”面板中,点击“目录安全性”选项卡,点击“IP地址和域名现在”下的“编辑”按钮打开设置对话框.在此窗口中我们可以设置“授权访问”也就是“白名单”,也可以设置“拒绝访问”即“黑名单”.比如我们可以将攻击者的IP添加到“拒绝访问”列表中,就屏蔽了该IP对于Web的访问.

    (5).IPSec封锁

      IPSec是优秀的系统防火墙,在排除其他还有别的类型的DDOS攻击时,针对CC攻击可以用设置IP策略来对付攻击.以219.128.*.43这个IP为例子,笔者实际操作对该IP的访问封锁.

      第一步:“开始→管理工具”,打开“本地安全设置”,右键点击“IP安全策略,在本地机器”选择“创建IP安全策略”,然后点击“下一步”,输入策略“名称”和“描述”.然后默认一路“下一步”创建了一个名为“封CC攻击”的IPSec策略.

      第二步:右键点击“IP安全策略,在本地机器”选择“管理IP筛选器表和筛选器操作”,在打开的窗口中点“添加”,在“IP 筛选器列表”窗口添人同第一步的名称和描述信息.取消“使用添加向导”的勾选,然后点击“添加”.在“IP 筛选器 属性”窗口的“地址”选项下设置“源地址”为“192.168.1.6”,目标地址为“我的IP地址”,取消对“镜像”的勾选;点击“协议”选项卡,设置“协议类型”为“TCP”,设置“协议端口”为“从任意端口”到“此端口80”最后确定退出. 

     第三步:在“新规则 属性”窗口中点选刚才创建的“封CC攻击”规则,点击“筛选器操作”选项卡下的“添加”,点选“安全措施”下的“阻止”,在“常规”选项卡下为该筛选器命名为“阻止CC攻击”然后确定退出.

      第四步:点选刚才创建的“阻止CC攻击”筛选器,一路“确定”退出IP策略编辑器,可以看到在组策略窗口的中创建成功一个名为“封CC攻击”的策略,然后右键点击该策略选择“指派”.这样就实现了对该IP的封锁.

     (6).防火墙

      除了利用上述方法外,还可以通过第三方的防火墙进行防范,打开防护墙创建相应防火墙规则就可以了,笔者以天网防火墙为例进行演示.

      打开天网防火墙进入“IP规则管理”窗口,点击“增加规则”,然后输入规则的名称、描述等信息.数据包协议类型选择“TCP”,数据包方向为“接收”,对方IP地址为“指定地址”然后输入该IP地址,本地端口勾选“已授权程序开放的端口”,对方端口不填表示所有端口,TCP标志位勾选“SYN”,当满足上面条件是选择“拦截”,同时还勾选“记录”、“警告”、“发声”.最后“确定”退出,点“保存规则”应该该规则即可.

      总结:本文以Web服务器为例讲述了如何判断CC攻击以及如何防CC攻击.其实,除了Web服务器对于其他的服务器也可以进行类似的防CC攻击设置.

  • 相关阅读:
    webpack基础
    LeetCode232. 用栈实现队列做题笔记
    mysql 时间加减一个月
    leetcode 1381. 设计一个支持增量操作的栈 思路与算法
    LeetCode 141. 环形链表 做题笔记
    leetcode 707. 设计链表 做题笔记
    leetcode 876. 链表的中间结点 做题笔记
    leetcode 143. 重排链表 做题笔记
    leetcode 1365. 有多少小于当前数字的数字 做题笔记
    LeetCode1360. 日期之间隔几天 做题笔记
  • 原文地址:https://www.cnblogs.com/edwardsun/p/4040010.html
Copyright © 2011-2022 走看看