作为站长或者公司的网站的网管,什么最可怕?显然是网站受到的ddos攻击。大家都有这样的经历,就是在访问某一公司网站或者论坛时,如果这个网站或者论坛流量比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,网站或论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观。
(图片来源于百度)
cc攻击是ddos(分布式拒绝服务)的一种,相比其它的ddos攻击cc似乎更有技术含量一些。这种攻击你见不到虚假ip,见不到特别大的异常流量,但造成服务器无法进行正常连接,一条adsl的普通用户足以挂掉一台高性能的web服务器。由此可见其危害性,称其为"web杀手"毫不为过。最让站长们忧虑的是这种攻击技术含量不是很高,利用工具和一些ip代理,一个初、中级的电脑水平的用户就能够实施ddos攻击。
那么怎样保证这些网站服务器的安全呢?防护cc攻击大家有必要了解cc攻击的原理及如果发现cc攻击和对cc攻击的防范措施。
一、cc攻击的原理:
cc攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。cc主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,cc就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量cpu时间)的页面,造成服务器资源的浪费,cpu长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
二、cc攻击的种类:
cc攻击的种类有三种,直接攻击,代理攻击,僵尸网络攻击。
直接攻击主要针对有重要缺陷的web应用程序,一般说来是程序写的有问题的时候才会出现这种情况,比较少见。
僵尸网络攻击有点类似于ddos攻击了,从web应用程序层面上已经无法防御。
代理攻击:cc攻击者一般会操作一批代理服务器,比方说100个代理,然后每个代理同时发出10个请求,这样web服务器同时收到1000个并发请求的,并且在发出请求后,立刻断掉与代理的连接,避免代理返回的数据将本身的带宽堵死,而不能发动再次请求,这时web服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,就象本来你去食堂吃饭时,一般只有不到十个人在排队,今天前面却插了一千个人,那么轮到你的机会就很小很小了,这时就出现页面打开极其缓慢或者白屏。
三、攻击症状
cc攻击有一定的隐蔽性,那如何确定服务器正在遭受或者曾经遭受cc攻击呢?我们可以通过以下三个方法来确定。
(1).命令行法
一般遭受cc攻击时,web服务器会出现80端口对外关闭的现象,因为这个端口已经被大量的垃圾数据堵塞了正常的连接被中止了。我们可以通过在命令行下输入命令netstat-an来查看,如果看到类似如下有大量显示雷同的连接记录基本就可以被cc攻击了:
……
tcp 192.168.1.3:80 192.168.1.6:2205 syn_received 4
tcp 192.168.1.3:80 192.168.1.6: 2205 syn_received 4
tcp 192.168.1.3:80 192.168.1.6: 2205 syn_received 4
tcp 192.168.1.3:80 192.168.1.6: 2205 syn_received 4
tcp 192.168.1.3:80 192.168.1.6: 2205 syn_received 4
……
其中"192.168.1.6"就是被用来代理攻击的主机的ip,"syn_received"是tcp连接状态标志,意思是"正在处于连接的初始同步状态",表明无法建立握手应答处于等待状态。这就是攻击的特征,一般情况下这样的记录一般都会有很多条,表示来自不同的代理ip的攻击。
(2).批处理法
上述方法需要手工输入命令且如果web服务器ip连接太多看起来比较费劲,我们可以建立一个批处理文件,通过该脚本代码确定是否存在cc攻击。打开记事本键入如下代码保存为cc.bat:
@echooff
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:\windows\system32\logfiles\httperr目录下,该目录下用类似httperr1.log的日志文件,这个文件就是记录web访问错误的记录。管理员可以依据日志时间属性选择相应的日志打开进行分析是否web被cc攻击了。默认情况下,web日志记录的项并不是很多,我们可以通过iis进行设置,让web日志记录更多的项以便进行安全分析。其操作步骤是:
"开始→管理工具"打开"internet信息服务器",展开左侧的项定位到到相应的web站点,然后右键点击选择"属性"打开站点属性窗口,在"网站"选项卡下点击"属性"按钮,在"日志记录属性"窗口的"高级"选项卡下可以勾选相应的"扩展属性",以便让web日志进行记录。比如其中的"发送的字节数"、"接收的字节数"、"所用时间"这三项默认是没有选中的,但在记录判断cc攻击中是非常有用的,可以勾选。另外,如果你对安全的要求比较高,可以在"常规"选项卡下对"新日志计划"进行设置,让其"每小时"或者"每一天"进行记录。为了便于日后进行分析时好确定时间可以勾选"文件命名和创建使用当地时间"。
四、cc攻击防御策略
确定web服务器正在或者曾经遭受cc攻击,那如何进行有效的防范呢?
(1).取消域名绑定
一般cc攻击都是针对网站的域名进行攻击,比如我们的网站域名是"www.star-net.cn",那么攻击者就在攻击工具中设定攻击对象为该域名然后实施攻击。
对于这样的攻击我们的措施是在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端口
托管VPS主机的简介和重要参数混合云化之旅从Linux开始为什么美国cn2服务器价格很便宜?云服务器工作原理是什么?挑选要了解哪些?企业到底有没有必要做微信小程序?微信小程序有哪些优势?企业如何建网站才能在营销中占据优势怎样快速提高企业网站的SEO排名网站标题的长短对SEO优化有哪些影响?