cc攻击怎么防御
使用方法:一:刷新TCP连接就会看到连接的IP和端口,然后点到列表里的IP进行双击,这时候IP出现到禁止列表里面即可禁止当前所选的IP,如想解开所禁止的IP,在禁止列表里面双击你想要解开的IP地址即可解禁。
二:自定义禁止想要禁的IP,在“自定义IP”右边的编辑框内写上你所要禁止的IP,然后单击一下“禁单IP”即可禁止。
三:如果你想要禁止整个段的IP,在“禁整段IP”右边的编辑框内写上要禁的IP(格式如:你要禁止192.168.1.88这个IP段的所有IP,那么就在这里写上192.168.1.0 那么192.168.1.0到192.168.1.255的所有IP都不能访问你机器了。)然后单击一下“禁整段IP”即可禁止一个段的IP。
四:自动禁止功能;设置好监控的端口或是所有端口,设置好每一个IP的连接数限制,超过这个数值就会自动禁止IP的访问,定好刷新的连接的时间(注意:这个刷新时间最好不在太少,刷新快了也许会有点卡,一般以10秒为好。)。设置好所有参数后就点击开始即可自动监控和禁止,本功能可以用来防CC攻击或是其它各种连接性的攻击,其它功能自己慢慢体会吧,有什么不懂的也可以向我请教。
本工具永久免费使用,可以任意传播,只是为了方便大家。
在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。
其他防护工具:
查看所有ip连接数 netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
查看端口总连接数 netstat -pnt | grep :80 | wc -l
查看php-cgi进程 netstat -anpo | grep “php-cgi” | wc -l
#防御太多DOS攻击连接,可以允许外网每个IP最多15个初始连接,超过的丢弃,第二条是在第一条的基础上允许已经建立的连接和子连接允许
iptables -A INPUT -i eth0 -p tcp –syn -m connlimit –connlimit-above 15 –connlimit-mask 32 -j DROP(–connlimit-mask 32为主机掩码,32即为一个主机ip,也可以是网段)
iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT
#抵御ddos ,允许外网最多24个初始连接,然后服务器每秒新增12个,访问太多超过的丢弃,第二条是允许服务器内部每秒1个初始连接进行转发
iptables -A INPUT-p tcp –syn -m limit –limit 12/s –limit-burst 24 -j ACCEPT
iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
#允许单个IP访问服务器的80端口的最大连接数为 20
iptables -I INPUT -p tcp –dport 80 -m connlimit–connlimit-above 20 -j REJECT
#对访问本机的22端口进行限制,每个ip每小时只能连接5次,超过的拒接,1小时候重新计算次数
iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –name SSHPOOL –rcheck –seconds 3600 –hitcount 5 -j DROP
iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –name SSHPOOL –set -j ACCEPT
(上面recent规则只适用于默认规则为DROP中,如果要适用默认ACCEPT的规则,需要–set放前面 并且无-j ACCEPT)
有用iptables配置文章地址
原文地址:
https://www.zhihu.com/question/19742963/answer/88824714
通常发起cc攻击是使用专门的攻击工具,同时模拟成多个用户,向目标网站发起多个请求,一般这些软件为了防止地址被屏蔽,还内置通过代理攻击的功能。可以通过多个代理服务器对目标发起攻击,使封IP的防御方式变的失效。
防御思路
因为CC攻击通过工具软件发起,而普通用户通过浏览器访问,这其中就会有某些区别。想办法对这二者作出判断,选择性的屏蔽来自机器的流量即可。
初级
普通浏览器发起请求时,除了要访问的地址以外,Http头中还会带有Referer,UserAgent等多项信息。遇到攻击时可以通过日志查看访问信息,看攻击的流量是否有明显特征,比如固定的Referer或UserAgent,如果能找到特征,就可以直接屏蔽掉了。
中级
如果攻击者伪造了Referer和UserAgent等信息,那就需要从其他地方入手。攻击软件一般来说功能都比较简单,只有固定的发包功能,而浏览器会完整的支持Http协议,我们可以利用这一点来进行防御。
首先为每个访问者定义一个字符串,保存在Cookies中作为Token,必须要带有正确的Token才可以访问后端服务。当用户第一次访问时,会检测到用户的Cookies里面并没有这个Token,则返回一个302重定向,目标地址为当前页面,同时在返回的Http头中加入set cookies字段,对Cookies进行设置,使用户带有这个Token。
客户端如果是一个正常的浏览器,那么就会支持http头中的set cookie和302重定向指令,将带上正确的Token再次访问页面,这时候后台检测到正确的Token,就会放行,这之后用户的Http请求都会带有这个Token,所以并不会受到阻拦。
客户端如果是CC软件,那么一般不会支持这些指令,那么就会一直被拦在最外层,并不会对服务器内部造成压力。
高级
高级一点的,还可以返回一个网页,在页面中嵌入JavaScript来设置Cookies并跳转,这样被伪造请求的可能性更小
Token生成算法
Token需要满足以下几点要求
1,每个IP地址的Token不同
2, 无法伪造
3, 一致性,即对相同的客户端,每次生成的Token相同
Token随IP地址变化是为了防止通过一台机器获取Token之后,再通过代理服务区进行攻击。一致性则是为了避免在服务器端需要存储已经生成的Token。
推荐使用以下算法生成Token,其中Key为服务器独有的保密字符串,这个算法生成的Token可以满足以上这些要求。
Token = Hash( UserAgent + client_ip + key )
页:
[1]