现在的位置: 首页 > 综合 > 正文

apache防止ddos攻击的几个有用工具

2013年07月22日 ⁄ 综合 ⁄ 共 983字 ⁄ 字号 评论关闭

一:

自http://www.inetbase.com/scripts/的ddos脚本。这套脚本的开发初衷就是为了防止ddos攻击,它周期性运行(比如
每隔一秒),每次运行时使用netstat命令记录下当前的网络连接情况,从记录的数据中筛选出客户机的IP并统计出每个客户IP的连接数,将连接数与设
定的阈值相比,如果一个IP有过多的连接,它将被放入黑名单。放入黑名单的IP在一段时间内(比如10分钟以内)向服务器发送的请求将被iptables
丢弃。
这个脚本的不足的地方是:当一个IPV4的连接使用IPV6的socket时,它的地址是类似::ffff:1.2.3.4这种形式的,脚本中没计算这样的地址,所以需要对脚本做一个略微的改动。

二:

自http://www.symantec.com/connect/articles/hardening-tcpip-stack-syn-attacks
的方法。这里的配置有三个思路:1)增大tcp的等待队列长度,使之能容纳更多的SYN_RECV请求。2)减小一个请求在tcp队列中的等待时间,使
SYN_RECV这种半连接请求尽快过期以让出地方给那些正常的请求。3)开启tcp_syncookies。关于tcp
syn-cookies,在http://cr.yp.to/syncookies.html有详细介绍。
以上三个思路,在linux中的实现:
1)增大队列长度:

# sysctl -w net.ipv4.tcp_max_syn_backlog="2048" 

2)减小等待时间:
改变/proc/sys/net/ipv4/tcp_synack_retries文件中的值。
3)开启syn-cookies:
[root@jcwkyl ~]# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

三:
来自http://dominia.org/djao/limitipconn2.html的一个apache的模块。这个模块叫做mod_limitipconn,用来限定某个Direcotry或者Location的最大连接数。

四:
来自http://bwmod.sourceforge.net/一个apache模块。这个模块叫做mod_bw,用来限制某个virtual host下的网络带宽,可以限定大文件下载的速率,防止网络带宽被迅速耗尽。

抱歉!评论已关闭.