基于nginx日志,封蜘蛛IP

Nginx

基于nginx日志,封蜘蛛IP

#! /bin/bash
#日志中大部分蜘蛛都有spider的关键字,但是百度的不能封,所以过滤掉百度
grep 'spider' /home/logs/client/access.log |grep -v 'Baidu' |awk '{print $1}' >/root/ip1.txt
#封掉网易的有道
grep 'YoudaoBot' /home/logs/client/access.log  | awk '{print $1}' >>/root/ip1.txt
#封掉雅虎
grep 'Yahoo!' /home/logs/client/access.log  | awk '{print $1}' >>/root/ip1.txt
#过滤掉信任IP
sort -n /root/ip1.txt |uniq  |sort |grep -v '192.168.0.' |grep -v '127.0.0.1'>/root/ip2.txt
#如果一小时内,发包不超过30个就要解封
/sbin/iptables -nvL |awk '$1 <= 30 {print $8}' >/root/ip3.txt
#将iptables计数器置为0
for ip in `cat /root/ip3.txt`; do /sbin/iptables -D INPUT -s $ip -j DROP ; done
/sbin/iptables -Z
for ip in `cat /root/ip2.txt`; do /sbin/iptables -I INPUT -s $ip -j DROP ; done

说明: 该脚本于是基于nginx的日志来做的过滤,该服务器上nginx的日志是按小时切割的,所以我执行了如下的任务计划

59 * * * * /bin/sh /usr/local/sbin/killspider.sh

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 72 queries in 0.087 seconds