| 您的当前位置:首页 --> Linux操作指南 |
| Linux 服务器下如何简单的防止CC攻击 |
| 浏览次数:3363 关键词 ( ) |
Nginx 0.7开始提供了2个限制用户连接的模块:NginxHttpLimitZoneModule 和 NginxHttpLimitReqModule。 http { limit_zone my_zone $binary_remote_addr 10m; limit_req_zone $binary_remote_addr zone=my_req_zone:10m rate=1r/s; } server { ... location ~ ^/blog/(index|forumdisplay|viewthread).php$ { limit_conn myzone_bbs 3; limit_req zone=bbs burst=2 nodelay; ... } 应用这条规则后,blog目录下的index.php、forumdisplay.php和viewthread.php这些页面同一个IP只许建立3个连接,并且每秒只能有1个请求(突发请求可以达到2个)。
另外我们可以找个脚本来封攻击者的IP.访问者通过浏览器正常访问网站,与服务器建立的连接一般不会超过20个,我们可以通过脚本禁止连接数过大的IP访问 vi stop.sh #!/bin/sh status=`netstat -na|awk '$5 ~ /[0-9]+:[0-9]+/ {print $5}' |awk -F ":" -- '{print $1}' |sort -n|uniq -c |sort -n|tail -n 1` NUM=`echo $status|awk '{print $1}'` IP=`echo $status|awk '{print $2}'` result=`echo "$NUM > 150" | bc` if [ $result = 1 ] then echo IP:$IP is over $NUM, BAN IT! /sbin/iptables -I INPUT -s $IP -j drop fi 运行:crontab -e,将上述脚本添加到crontab每分钟自动运行: */1 * * * * /root/stop.sh |
| 下一条 Linux自动磁盘挂载工具 一键挂载数据盘到/www目录 上一条 Linux CentOS查看内存使用情况和清理内存 |