Nginx日志内发现大量恶意ip自动加入防火墙脚本

#!/bin/bash #_日志位置 _log_Path="/data0/nginx/weblogs/" #_日志文件名称 _log_FileName="access_blog.kinggoo.com.log" #_要被屏蔽的ip访问端口,默认80 _port="80" _nginx_deny="/opt/webserver/nginx/conf/deny.conf" _nginx_bin="/opt/webserver/nginx/sbin/nginx" _logfilepath=${_log_Path}${_log_FileName} #初始化被禁ip变量  _drop_Ip="" #检测文件 test -e ${_nginx_deny} || touch ${_nginx_deny} for _drop_Ip in $( tail -n50000 "${_logfilepath}" |awk ‘{print $1,$12}‘ |grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou|WordPress" |awk ‘{print $1}‘|sort|uniq -c|sort -rn |awk ‘{if($1>1000)print ""$2""}‘ ); do grep -q "${_drop_Ip}" ${_nginx_deny} && eg=1 || eg=0 ; if (( ${eg}==0 ));then echo "deny ${_drop_Ip};" >> ${_nginx_deny} ${_nginx_bin} -s  reload
                iptables -I INPUT -p tcp --dport ${_port} -s ${_drop_Ip} -j DROP
                echo ">>>>> `date ‘+%Y-%m-%d %H%M%S‘` - 发现攻击源地址 ->  ${_drop_Ip} " >> /tmp/nginx_deny.log; echo "iptables -I INPUT -p tcp --dport ${_port} -s ${_drop_Ip} -j DROP" >> /tmp/nginx_deny.log fi done
时间: 2024-12-23 11:18:31

Nginx日志内发现大量恶意ip自动加入防火墙脚本的相关文章

切分Nginx日志,完成网站访问量的自动统计

如果你的网站通过 Nginx 代理,那么本文将为你提供一个自动统计网站访问量的方案. 方案在实现步骤上,一个分为三步: 1. 运行 shell 脚本,移动 Nginx 日志到指定文件夹,并运行 Python 脚本: 2. 执行 Python 脚本,统计有效的 IP 访问量 3. 设置 crontab 定时任务. 一.shell 脚本 通过 Nginx 配置文件,查看监听端口的日志文件,并移动到指定的路径. 然后运行 Python 脚本,执行处理 Nginx 日志文件的 Python 脚本. sh

python分析apache和nginx日志文件输出访客ip列表的代码

把做工程过程中比较好的代码片段做个备份,下面资料是关于python分析apache和nginx日志文件输出访客ip列表的代码. ips = {} fh = open("/var/log/nginx/access.log", "r").readlines() for line in fh: ip = line.split(" ")[0] if 6 < len(ip) <=15: ips[ip] = ips.get(ip, 0) + 1

大数据技术之_18_大数据离线平台_02_Nginx+Mysql+数据收集+Web 工程 JS/JAVA SDK 讲解+Flume 故障后-如何手动上传 Nginx 日志文件至 HDFS 上

十一.Nginx11.1.介绍11.2.常见其他 Web 服务器11.3.版本11.4.Nginx 安装11.5.目录结构11.6.操作命令十二.Mysql12.1.介绍12.2.关系型数据库(SQL)种类12.3.特征12.4.术语12.4.与非关系型数据库比较(Not Only SQL)12.4.1.种类12.4.2.特征12.4.3.总结十三.数据收集13.1.收集方式13.2.数据的事件类型13.2.1.Launch 事件13.2.2.PageView 事件13.3.Nginx 日志收集

Nginx日志统计

1)按每小时切割Nginx访问日志,并且将日志自动上传至FTP服务器: #!/bin/bash #auto mv nginx log shell #by author xiaoming S_LOG=/usr/local/nginx/logs/access.log D_LOG=/data/backup/`date +%Y%m%d%H%M` echo -e "\033[32mPlease wait start cutshell scripts...\033[0m" sleep 2 if [

烂泥:切割nginx日志

这几天自己看了下博客的nginx日志,发现日志文件发现越来越大. 因为nginx自己不会对日志文件进行切割,所以打算通过其他方式进行切割,而且为了后续能对nginx日志文件里面记录的数据进行分析,所以打算按照天对其进行切割. PS:本篇文章所以的操作是在centos6.5 OS 64bit上进行. 切割nginx日志,我们可以通过两种不同的方式进行,分别是:通过logrotate和通过shell脚本. 如果是yum方式安装的nginx,系统默认会自动通过logrotate这个日志管理软件,按天进

Nginx日志文件格式及切割日志文件

作为web服务器而言,日志是必不可少的也是需要经常查看的.此篇就来介绍下如何自定义Nginx中的日志格式以及使用crontab计划任务来做到每天切割一次日志文件从而做到方便管理. 在Nginx中日志文件是由log_format这个指令来定义的,它的语法如下: log_format    name    format ##    name:指的是日志格式的名称(后面调用) ##    format:设置日志具体格式的 在Nginx中有自己默认的日志格式,如下内容:     #log_format 

Awk,Cat,Head分析Nginx日志常用命令

Nginx 日志分析 1.根据访问IP统计UV awk '{print $1}'  access.log|sort | uniq -c |wc -l 2.统计访问URL统计PV awk '{print $7}' access.log|wc -l 3.查询访问最频繁的URL awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more 4.查询访问最频繁的IP awk '{print $1}' access.log|sort |

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi

Nginx访问日志 Nginx日志切割 静态文件不记录日志和过期时间

一.Nginx访问日志#vim /usr/local/nginx/conf/nginx.conf日志格式的名字combined_realip可以自定义,例如将它修改为aming,注意,这里定义为什么,后面引用的时候就定义为什么(nginx配置文件看见分号才是这一行结束)#vim /usr/local/nginx/conf/vhost/test.com.conf //增加如下一行#/usr/local/nginx/sbin/nginx -t#/usr/local/nginx/sbin/nginx