科技网

当前位置: 首页 >智能

防cc攻击CC攻击的原理和预防

智能
来源: 作者: 2019-05-17 13:47:24

1 : CC攻击的原理和预防

首先攻击者具有1个流量巨大的网站,这个网站的流量,极可能是他花钱买回来的,固然也多是他控制的肉鸡,在控制的肉鸡上面访问他的网站。黑客的网站首页非常简单,但是在他的源代码中,却隐藏了到达上百个<iframe>标签。对!聪明的你,应当想得出他的<iframe>标签里面放的是甚么了吧?没错!他的<iframe>里面,放的就是他要攻击的网站的地址。

举1个例子来讲明1下攻击者的威力,假定黑客的网站是aaa.com,你的网站是BBB.com。如果有人在163的首页代码中,有这么1段:<iframe src="http://aaa.com" border="0" width="0" height="0"></iframe>,那末在所有人访问163的主页时,也会不知不觉的访问http://aaa.com。然后http://aaa.com的首页中可能有100个以下的代码:<iframe src=http://BBB.com border="0" width="0" height="0"></iframe>,固然他还可能放上bbb.com这个网站10个乃至更多不同的地址。那就表明:凡有1个人访问了163,便可能会访问BBB.com10次。以每秒300个要求来讲,1天就是25920000个要求,再加上页面上的图片和其它文件等,估计就是上亿个要求了。1天上亿个要求,普通的网站受得了吗?有很多被攻击的网站用的是虚拟主机,每秒不到100个连接可能就没法提供服务了。即便是那种单独几台服务器的网站,也根本就没法承受!即便WEB Server可以承受,那带宽呢?即便带宽可以承受,那末Db Server呢?

朋友的网站就遭到此种攻击,他试着将网站转移到他朋友的服务器上面,固然最后的结果还是照样拖累他朋友的服务器瘫痪。

这类就是是典型的CC攻击。CC攻击比DDOS攻击更可怕的就是,CC攻击1般是硬防很难避免住的。为何呢?1、由于CC攻击来的IP都是真实的,分散的;2、CC攻击的数据包都是正常的数据包;3、CC攻击的要求,全都是有效的要求,没法谢绝的要求。

其实只要仔细研究了1下这类攻击的模式,发现这类攻击,理论上是可以避免的,即只要通过有效的手段,完全可以将危害下降到最轻。由于这类攻击有1个致命的弱点。它致命的弱点在哪里呢?固然就是在<iframe>上面。通过<iframe>进行CC攻击,攻击者的想法和创意,确切很让人惊叹,但这正好造成了他的完善失败。熟习网页程序的朋友应当都知道,用<iframe>嵌入的网页,自然都会有HTTP_REFERER值,而有了这个值,从这个值上面屏蔽或是转发掉来源的网站便可。也就是说,你可以访问我,但是我不将真实的页面返回给你,我可以把你随便打发掉,或是将你随便转到另外1个网站上去(如:公安部?哈哈,我就见过有人类似这样做的),这样我就能够大量的节省我的带宽、我的DB Server资源、我的Web Server资源。你最多就是占用了我大量的TCP连接罢了。

下面贴1段Web server的配置代码,用于解决此类攻击:

valid_referers none blocked server_names google.com google.cn *.google.com *.google.cn baidu.com *.baidu.com *.你自己的域名(在这里还可以加入其他的,比如说SOSO,YAHOO,SOGOU YOUDAO等);

if ($invalid_referer) {

return 404;

}

上面的代码,很简单的设置了,只要不是HTTP_REFERER来源于上面设置网址来源的要求,统统转发至404。

在此顺便提示1下那些卖流量的站长们,不要由于自己的1点小利,就不谨慎成了黑客攻击者们的肉鸡。

2 : CC攻击的思路及防范方法

前置知识:ASP基本浏览能力  胡蝶:前段时间上海1家游戏文娱公司的网站遭到了基于页面要求的DDOS散布式谢绝服务攻击,网站堕入完全瘫痪状态,并被黑客的匿名信勒索,金额高达10万元,而在勒索进程中,这群黑客还表示会对腾讯QQ等网站下手,随后QQ“服务器保护”几天.12月5号的时候,全球BitTorrent服务器也遭到了很强烈的DDOS攻击,1度堕入瘫痪。(www.loach.net.cn]而DDOS攻击中最流行的也是威力最大的就是基于页面的DDOS和将这个攻击理论发挥得淋漓尽致的攻击工具CC,本文特邀CC作者和我们共同了解CC的相干攻击原理和防范方法,希望能让更多的朋友了解这样的攻击方式并能防范它。  很多朋友都知道木桶理论,1桶水的最大容量不是由它最高的地方决定的,而是由它最低的地方决定,服务器也是1样,服务器的安全性也是由它最脆弱的地方决定的,最脆弱的地方有多危险服务器就有多危险。DDOS也是1样,只要你的服务器存在1个很耗资源的地方,限制又不够,就马上成为他人DDOS的对象.比如SYN-FLOOD,它就是利用服务器的半连接状态比完全连接状态更耗资源,而SYN发动方只需要不停的发包,根本不需要多少资源。  1个好的DDOS攻击必须是通过自己极少资源的消耗带来对方较大的资源消耗,否则比如ICMP-FLOOD和UDP-FLOOD都必须和他人1样大的带宽,对方服务器消耗多少资源自己也得赔上多少资源,效力极为低下,又很容易被人发现,现在基本没有甚么人用了。  攻击原理  CC主要是用来攻击页面的.大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!1般来讲,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为何很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。  1个静态页面不需要服务器多少资源,乃至可以说直接从内存中读出来发给你就能够了,但是论坛就不1样了,我看1个帖子,系统需要到数据库中判断我是不是有读读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里最少访问了2次数据库,如果数据库的体积有200MB大小,系统极可能就要在这200MB大小的数据空间搜索1遍,这需要多少的CPU资源和时间?如果我是查找1个关键字,那末时间更加可观,由于前面的搜索可以限定在1个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就能够马上停止查询,而搜索肯定会对所有的数据进行1次判断,消耗的时间是相当的大。  CC就是充

防cc攻击 CC攻击的思路及防范方法

分利用了这个特点,摹拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。(www.loach.net.cn)很多朋友问到,为何要使用代理呢?由于代理可以有效地隐藏自己的身份,也能够绕开所有的防火墙,由于基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过1定数目1定频率就会被认为是Connection-Flood。  使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就能够马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。  可能很多朋友还不能很好的理解,我来描写1下吧.我们假定服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他1秒可以保证100个用户的Search要求,服务器允许的最大连接时间为60s,那末我们使用CC摹拟120个用户并发连接,那末经过1分钟,服务器的被要求了7200次,处理了6000次,因而剩下了1200个并发连接没有被处理.有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应当是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永久有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器到达了超级繁忙状态。  胡蝶:我们假定服务器处理Search只用了0.01S,也就是10毫秒(这个速度你可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,可以想象可怕了吧,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL要求,肯定会进入队列,不论连接是不是已断开,而且服务器是并发的,不是顺序履行,这样使得更多的要求进入内存要求,对服务器负担更大。  固然,CC也能够利用这里方法对FTP进行攻击,也能够实现TCP-FLOOD,这些都是经过测试有效的。  防范方法  说了攻击原理,大家肯定会问,那末怎样防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御。  1. 使用Cookie认证.这时候候朋友说CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就能够了。  2. 利用Session.这个判断比Cookie更加方便,不光可以IP认证,还

防cc攻击 CC攻击的思路及防范方法

可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号.给些示范代码吧,Session:  程序代码:  〈%  if session(“refresh”)〈〉 1 then  Session(“refresh”)=session(“refresh”)+1  Response.redirect “index.asp”  End if  %〉  这样用户第1次访问会使得Refresh=1,第2次访问,正常,第3次,不让他访问了,认为是刷新,可以加上1个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几近没有甚么影响。(www.loach.net.cn)  3. 通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP,这招完全可以找到发动攻击的人,固然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数.详细代码:  程序代码:  〈%  Dim fsoObject  Dim tsObject  dim file  if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then  response.write "无代理访问"  response.end  end if  Set fsoObject = Server.CreateObject("Scripting.FileSystemObject")  file = server.mappath("CCLog.txt")  if not fsoObject.fileexists(file) then  fsoObject.createtextfile file,true,false  end if  set tsObject = fsoObject.OpenTextFile(file,8)  tsObject.Writeline Request.ServerVariables("HTTP_X_FORWARDED_FOR")  &"["&Request.ServerVariables("REMOTE_ADDR")&"]"&now()  Set fsoObject = Nothing  Set tsObject = Nothing  response.write "有代理访问"  %〉  这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪一个真实IP出现的次数多,就知道是谁在攻击了.将这个代码做成Conn.asp文件,替换那些连接数据库的文件,这样所有的数据库要求就连接到这个文件上,然后马上就可以发现攻击的人。  4. 还有1个方法就是把需要对数据查询的语句做在Redirect后面,让对方必须先访问1个判断页面,然后Redirect过去。  5. 在存在多站的服务器上,严格限制每个站允许的IP连接数和CPU使用时间,这是1个很有效的方法。  CC的防御要从代码做起,其实1个好的页面代码都应当注意这些东西,还有SQL注入,不光是1个入侵工具,更是1个DDOS缺口,大家都应当在代码中注意.举个例子吧,某服务器,开动了5000线的CC攻击,没有1点反应,由于它所有的访问数据库要求都必须1个随机参数在Session里面,全是静态页面,没有效果.突然发现它有1个要求会和外面的服务器联系取得,需要较长的时间,而且没有甚么认证,开800线攻击,服务器马上满负荷了。  代码层的防御需要从点点滴滴做起,扩大:防御cc攻击的方法 / 地方债风险防范思路 / 创新工作思路和方法

防cc攻击 CC攻击的思路及防范方法

1个脚本代码的毛病,可能带来的是全部站的影响,乃至是全部服务器的影响,慎之!

扩大:防御cc攻击的方法 / 地方债风险防范思路 / 创新工作思路和方法

3 : Linux系统防火墙避免DOS和CC攻击的方法

用Linux系统防火墙功能抵抗网络攻击

虚拟主机服务商在运营进程中可能会遭到黑客攻击,常见的攻击方式有SYN,DDOS等。

通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长。比较完全

的解决方法是添置硬件防火墙。不过,硬件防火墙价格比较昂贵。可以斟酌利用Linux

系统本身提供的防火墙功能来防御。

1. 抵抗SYN

SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际

建立连接,终究致使被攻击服务器的网络队列被占满,没法被正经常使用户访问。

Linux内核提供了若干SYN相干的配置,用命令:

sysctl -a | grep syn

看到:

net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是1个开关,是不是打开SYN Cookie

功能,该功能可以避免部份SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN

的重试次数。

加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以禁止部份

SYN攻击,下降重试次数也有1定效果。

调剂上述设置的方法是:

增加SYN队列长度到2048:

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

打开SYN COOKIE功能:

sysctl -w net.ipv4.tcp_syncookies=1

下降重试次数:

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。

2. 抵抗DDOS

DDOS,散布式谢绝访问攻击,是指黑客组织来自不同来源的许多主机,向常见的端口,如80,

25等发送大量连接,但这些客户端只建立连接,不是正常访问。由于1般Apache配置的接受连接

数有限(通常为256),这些“假” 访问会把Apache占满,正常访问没法进行。

Linux提供了叫ipchains的防火墙工具,可以屏蔽来自特定IP或IP地址段的对特定端口的连接。

使用ipchains抵抗DDOS,就是首先通过netstat命令发现攻击来源地址,然后用ipchains命令阻断

攻击。发现1个阻断1个。

*** 打开ipchains功能

首先查看ipchains服务是不是设为自动启动:

chkconfig --list ipchains

输出1般为:

ipchains 0:off 1:0ff 2:on 3:on 4:on 5:on 6:off

如果345列为on,说明ipchains服务已设为自动启动

如果没有,可以用命令:

chkconfig --add ipchains

将ipchains服务设为自动启动

其次,观察ipchains配置文件/etc/sysconfig/ipchains是不是存在。如果这1文件不存在,ipchains

即便设为自动启动,也不会生效。缺省的ipchains配置文件内容以下:

# Firewall configuration written by lokkit

# Manual customization of this file is not recommended.

# Note: ifup-post will punch the current nameservers through the

# firewall; such entries will *not* be listed here.

:input ACCEPT

:forward ACCEPT

utput ACCEPT

-A input -s 0/0 -d 0/0 -i lo -j ACCEPT

# allow http,ftp,smtp,ssh,domain via tcp; domain via udp

-A input -p tcp -s 0/0 -d 0/0 pop3 -y -j ACCEPT

-A input -p tcp -s 0/0 -d 0/0 http -y -j ACCEPT

-A input -p tcp -s 0/0 -d 0/0 https -y -j ACCEPT

-A input -p tcp -s 0/0 -d 0/0 ftp -y -j ACCEPT

-A input -p tcp -s 0/0 -d 0/0 smtp -y -j ACCEPT

-A input -p tcp -s 0/0 -d 0/0 ssh -y -j ACCEPT

-A input -p tcp -s 0/0 -d 0/0 domain -y -j ACCEPT

-A input -p udp -s 0/0 -d 0/0 domain -j ACCEPT

# deny icmp packet

#-A input -p icmp -s 0/0 -d 0/0 -j DENY

# default rules

-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT

-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT

-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT

-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT

-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT

-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT

如果/etc/sysconfig/ipchains文件不存在,可以用上述内容创建之。创建以后,启动ipchains服务:

/etc/init.d/ipchains start

*** 用netstat命令发现攻击来源

假设说黑客攻击的是Web 80端口,观察连接80端口的客户端IP和端口,命令以下:

netstat -an -t tcp | grep ":80" | grep ESTABLISHED | awk '{printf "%s %sn",$5,$6}' | sort

输出:

161.2.8.9:123 FIN_WAIT2

161.2.8.9:124 FIN_WAIT2

61.233.85.253:23656 FIN_WAIT2

...

第1栏是客户机IP和端口,第2栏是连接状态

如果来自同1IP的连接很多(超过50个),而且都是连续端口,就极可能是攻击。

如果只希望观察建立的连接,用命令:

netstat -an -t tcp | grep ":80" | grep ESTABLISHED | awk '{printf "%s %sn",$5,$6}' | sort

*** 用ipchains阻断攻击来源

用ipchains阻断攻击来源,有两种方法。1种是加入到/etc/sysconfig/ipchains里,然后重启动

ipchains服务。另外一种是直接用ipchains命令加。屏蔽以后,可能还需要重新启动被攻击的服务,

是已建立的攻击连接失效

* 加入/etc/sysconfig/ipchains

假定要禁止的是218.202.8.151到80的连接,编辑/etc/sysconfig/ipchains文件,在utput ACCEPT

行下面加入:

-A input -s 218.202.8.151 -d 0/0 http -y -j REJECT

保存修改,重新启动ipchains:

/etc/init.d/ipchains restart

如果要禁止的是218.202.8的全部网段,加入:

-A input -s 218.202.8.0/255.255.255.0 -d 0/0 http -y -j REJECT

* 直接用命令行

加入/etc/sysconfig/ipchains文件并重起ipchains的方法,比较慢,而且在ipchains重起的瞬间,

可能会有部份连接钻进来。最方便的方法是直接用ipchains命令。

假定要禁止的是218.202.8.151到80的连接,命令:

ipchains -I input 1 -p tcp -s 218.202.8.151 -d 0/0 http -y -j REJECT

如果要禁止的是218.202.8的全部网段,命令:

ipchains -I input 1 -p tcp -s 218.202.8.0/255.255.255.0 -d 0/0 http -y -j REJECT

其中,-I的意思是插入,input是规则连,1是指加入到第1个。

您可以编辑1个shell脚本,更方便地做这件事,命令:

vi blockit

内容:

#!/bin/sh

if [ ! -z "$1" ] ; then

echo "Blocking: $1"

ipchains -I input 1 -p tcp -s "$1" -d 0/0 http -y -j REJECT

else

echo "which ip to block"

fi

保存,然后:

chmod 700 blockit

使用方法:

./blockit 218.202.8.151

./blockit 218.202.8.0/255.255.255.0

上述命令行方法所建立的规则,在重起以后会失效,您可以用ipchains-save命令打印规则:

ipchains-save

输出:

:input ACCEPT

:forward ACCEPT

utput ACCEPT

Saving `input'.

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 110:110 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 80:80 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 22:22 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 88:88 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 89:89 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 90:90 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 91:91 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 8180:8180 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 443:443 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 21:21 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 25:25 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 22:22 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 53:53 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 9095:9095 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 8007:8007 -p 6 -j ACCEPT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 53:53 -p 17 -j ACCEPT

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 0:1023 -p 6 -j REJECT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 2049:2049 -p 6 -j REJECT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 0:1023 -p 17 -j REJECT

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 2049:2049 -p 17 -j REJECT

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 6000:6009 -p 6 -j REJECT -y

-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 7100:7100 -p 6 -j REJECT -y

您需要把其中的"Saving `input'."去掉,然后把其他内容保存到/etc/sysconfig/ipchains文件,

这样,下次重起以后,建立的规则能够重新生效。

3. 如果使用iptables

RH 8.0以上开始启用iptables替换ipchains,二者非常类似,也有差别的地方。

* 启用iptables

如果/etc/sysconfig/下没有iptables文件,可以创建:

# Firewall configuration written by lokkit

# Manual customization of this file is not recommended.

# Note: ifup-post will punch the current nameservers through the

# firewall; such entries will *not* be listed here.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Lokkit-0⑸0-INPUT - [0:0]

-A INPUT -j RH-Lokkit-0⑸0-INPUT

-A RH-Lokkit-0⑸0-INPUT -i lo -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport ftp -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport ssh -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport http -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport smtp -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport pop3 -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport mysql -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport 2001 -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport domain -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p udp -m udp --dport domain -j ACCEPT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport 0:1023 --syn -j REJECT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport 2049 --syn -j REJECT

-A RH-Lokkit-0⑸0-INPUT -p udp -m udp --dport 0:1023 -j REJECT

-A RH-Lokkit-0⑸0-INPUT -p udp -m udp --dport 2049 -j REJECT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT

-A RH-Lokkit-0⑸0-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT

COMMIT

以上配置允许了ftp, ssh, http, smtp, pop3, mysql, 2001(Prim@Hosting ACA端口),domain端口。

* 启动iptables

/etc/init.d/iptables start

* 设置iptables为自动启动

chkconfig --level 2345 iptables on

* 用iptables屏蔽IP

iptables -I RH-Lokkit-0⑸0-INPUT 1 -p tcp -m tcp -s 213.8.166.227 --dport 80 --syn -j REJECT

注意到,和ipchains的区分是:

-I 后面跟的规则名称的参数和ipchains不同,不是统1的input,而是在/etc/sysconfig/iptables里定义的那个

多了-m tcp

指定端口的参数是--dport 80

多了--syn参数,可以自动检测sync攻击

使用iptables制止ping:

-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT

-A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-port-unreachable

允许某ip连接

-I RH-Firewall⑴-INPUT 1 -p tcp -m tcp -s 192.168.0.51 --syn -j ACCEPT

4 : 网站避免CC攻击的方法

CC攻击(Challenge Collapsar)是DDOS(散布式谢绝服务)的1种,也是1种常见的网站攻击方法,攻击者通过代理服务器或肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,1直到宕机崩溃。

CC攻击的攻击技术含量低,利用工具和1些IP代理,1个初、中级的电脑水平的用户就可以够实行攻击。不过,如果了解了CC攻击的原理,那就不难针对CC攻击实行1些有效的防范措施。

通常避免CC攻击的方法有几种,1个是通过防火墙,另外1些网络公司也提供了1些防火墙服务,例如XX网站卫士和XX宝,还有1种方法是自己写程序预防,昨天网站遇到CC攻击,这也让我尝试了1下各种避免CC攻击方法的有效性。

1开始我想使用某某网站卫士来预防攻击,从界面上看,仿佛是避免了大量的CC攻击,但登录网站后发现,流量照旧异常,攻击还是照旧,看起来这个网站卫士的效果并没有到达。

从原理上看,基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过1定数目1定频率就会被认为是Connection-Flood。但如果IP的数量足够大,使得单个IP的连接数较少,那末防火墙未必能禁止CC攻击。

不但如此,我还发现,启用了某某网站卫士以后,反而更容易被CC攻击,由于这个网站卫士其实不能过滤掉CC攻击,攻击的IP经过其加速后,更换成为这个网站卫士的IP,在网站服务器端显示的IP都是相同的,致使服务器端没法过滤这些IP。

实际上,不使用网站卫士类的服务,直接通过分析网站日志,还是很容易分辨出哪一个IP是CC攻击的,由于CC攻击毕竟是通进程序来抓取网页,与普通阅读者的特性区分还是很大的,例如普通阅读者访问1个网页,一定会连续抓取网页的HTML文件、CSS文件、JS文件和图片等1系列相干文件,而CC攻击者仅仅只会抓取1个URL地址的文件,不会抓取其他类型的文件,其User Agent也大部份和普通阅读者不同,这就能够在服务器上很容易分辨出哪些访问者是CC攻击了,既然可以判断出攻击者的IP,那末预防措施就很简单,只需要批量将这些IP屏蔽,便可到达防范CC攻击的目的。

终究,我花了半个小时写了1段小程序,运行以后自动屏蔽了数百个IP,网站才算正常,从而证明,防火墙对CC攻击的防御其实不有效,最有效的方法还是在服务器端通进程序自动屏蔽来预防。

看来CC攻击的门坎还真低啊,弄个几百个代理或肉鸡就可以攻击他人了,其本钱非常低,但效果比较明显,如果攻击者流量巨大的话,通过耗费带宽资源的方式都可以进行攻击。但是,CC攻击也有明显的技术缺点,就是攻击者的IP其实不是海量的,通常就是几百数千的级别,并且是真实访问了网站页面,这就使得网站可以通进程序过滤的方式,轻松获得到这些攻击者IP,批量进行屏蔽,那末这类CC攻击就会得到预防。

对站长来讲,通进程序来过滤CC攻击门坎较高,要有1定的编程技术,因此还是建议使用第3方网站提供的预防CC的服务,目前主要的网站有:360网站卫士、百度加速乐、安全宝等。

牛皮癣诊断检查有那些连云港那家牛皮癣医院最专业肢端型白癜风患者该如何护理

相关推荐