可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

Nginx 连接日志的封禁 IP 脚本

News mlone11978 559℃ 0评论

前面的文章 中,我提到过我的 log_format 是这样写的:

log_format main '[$time_local] [ $remote_addr $http_user_agent] [$status $request_time $request]'; 

所以我可以用下面这行命令来获取我要封禁的关键词(例如爬虫)的 IP 列表

cat /home/site/access-log/access.log |grep ${name} | awk '{print $4}' 

其中,${name} 是你要过滤出来的关键词

以下就是完整的脚本,以我正在使用的为例:

#! /bin/bash # ban-accesslog.sh  ban(){ name=$1 ips=`cat /home/site/access-log/access.log |grep ${name} | awk '{print $4}'`  if [[ ! -z ${ips} ]]; then for ip in ${ips} do exist=`iptables -nL | grep ${ip}` [[ -z ${exist} ]] && iptables -I INPUT -s ${ip} -j DROP && date=`date +%Y.%m.%d-%H:%M:%S` && echo "${date}    ${name}    ${ip}" >> /home/ban/ban-accesslog.conf done fi }  ban 'wp-login' ban 'UptimeRobot' 

其中,我把关键词设定为 wp-login 和 UptimeRobot(这俩天天都在抓我),如果你想添加关键词只需在脚本末尾加上一行:

ban '关键词' 

下面这行用于输出封禁 IP 的记录,可根据自己需要自行修改。

echo "${date}    ${name}    ${ip}" >> /home/ban/ban-accesslog.conf 

下面列出所有我已经写入的关键词,其实绝大多数是国内外的搜索引擎爬虫,特别是国内爬虫我一个都不想要

## 两个扫我的 ban 'wp-login' ban 'UptimeRobot'  ## 爬虫 bot ban 'qihoobot' ban 'Baiduspider' ban 'Mediapartners-Google' ban 'Adsbot-Google' ban 'Feedfetcher-Google' ban 'Yahoo' ban 'Slurp' ban 'YoudaoBot' ban 'Sosospider' ban 'Sogou' ban 'MSNBot' ban 'ia_archiver' ban 'Tomato' ban 'FeedDemon' ban 'JikeSpider' ban 'Library' ban 'Alexa' ban 'Toolbar' ban 'AskTbFXTV' ban 'AhrefsBot' ban 'CrawlDaddy' ban 'CoolpadWebkit' ban 'Feedly' ban 'UniversalFeedParser' ban 'ApacheBench' ban 'Swiftbot' ban 'ZmEuoBot' ban 'jaunty' ban 'Python-urllib' ban 'lightDeckReports' ban 'YYSpider' ban 'DigExt' ban 'Yisou' ban 'MJ12bot' ban 'heritrix' ban 'Easou' ban 'Ezooms' ban 'Yodao' ban 'Bingbot' ban 'Teoma' ban 'twiceler' ban 'Scrubby' ban 'Robozilla' ban 'Gigabot' ban 'Googlebot-image' ban 'Googlebot-mobile' ban 'psbot' ban 'DuckDuckBot' ban 'YandexBot' ban 'Exabot' ban 'facebot' ban 'facebookexternalhit'  ## 下载器 ban 'Scrapy' ban 'HttpClient' ban 'Curl' ban 'Wget' ban 'Idm' ban 'Aria2' ban 'Axel' ban 'Thunder' ban 'Movgrab' ban 'torrent' ban 'Transmission' ban 'vuze'  ## 采集的 ban 'blogspot' 

转载请注明:逗比根据地 » Nginx 连接日志的封禁 IP 脚本

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址