在nginx中預防cc攻擊的方法
用戶在正常訪問網站時,與服務器建立的連接一般不會超過20個,可以通過以下腳本禁止連接數過大的IP訪問。
#!/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` \\當IP的訪問次數超過150時,對該IP進行屏蔽
if [ $result = 1 ]
then
echo IP:$IP is over $NUM, BAN IT!
/sbin/iptables -I INPUT -s $IP -j DROP
fi