返回利用nginx......登陆

利用nginx 日志处理ddos攻击

高洛峰2016-11-18 10:20:11560
#防止ddos攻击,将此脚本放置到定时任务中。
 
#!/bin/bash
 
log='/usr/local/nginx/logs/nginx.log' #日志绝对路径
 
 
DATE=`date -d '1 minutes ago' "+%d/%b/%Y:%H:%M"`  #显示出日志格式的时间,方便匹配,%b简短#格式时间,-d 显示设定的时间。
tmp=`date "+%s%N"`  #秒要精确化
 
grep "$DATE" $log|awk '{print $1}'|sort |uniq -c |sort -rn |grep -v '类似你的cdn等你允许拉取你ip addr'>/var/log/ip_${tmp}.log #收集到攻击你的ip
 
while read line  #一次读进一行 (num  ip)
do
count=`echo $line|awk '{print $1}'`
ip=`echo $line|awk '{print $2}'`
 
re=`echo $count-100|bc`
if [ $re -gt 0 ];then
    echo `date` ": $ip has been  DP" >>/var/log/iptalbes.log
    /sbin/iptables -I INPUT -p tcp -m tcp -s $ip --dport 80 -j DROP 
fi
done </var/log/ip_${tmp}.log  
 
rm -f /var/log/ip_${tmp}.log


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送