`

Nginx 拒绝指定IP访问(shell)

阅读更多

发现有个IP不断的猜测路径、试图往服务器上传文件(木马)。于是查看了之前的日志,无奈鄙站被攻击者盯上了,不断的有不同的IP试图上传木马。看来坏人还是有的。由于不想让鄙站沦为肉鸡,所以就想写个简单的脚本,来阻止攻击者的IP访问。

攻击者:

 

 

法国的哥们竟然试了180多次!辛苦了。

用 shell 和定时任务来实现吧。>_<

网站跑在 Nginx 上,所以可以使用 Nginx 的 Deny 来拒绝攻击者的IP访问。

那么思路就出来了,定期(五分钟或十分钟)获取攻击者的IP,将IP放入到黑名单(Nginx 配置文件),并 reload 使其生效。

由于前期规划的比较好,网站的访问日志放在了一个指定的目录,Nginx 的错误日志也放在了一个指定的目录。网站的访问日志每日进行切割。Nginx 的错误日志没有进行切割。

下面就是我的思路和操作步骤:

通过 Nginx 的错误日志(为什么不使用访问日志)来获取攻击者的IP。之前没有对 Nginx 的错误日志进行定时切割,为了方便统计攻击者的IP所以,编写脚本并加入定时任务,使错误日志每小时切割一次,并且每小时对黑名单文件进行清空。

错误日志切割、清空黑名单脚本:

获取攻击者IP脚本:

该脚本从 Nginx 的错误日志中统计出超过20次试图猜测路径或上传文件的IP,并将这些IP加入到 Nginx 的配置文件。若有新增加的IP则 reload Nginx 使配置文件生效,若没有新增IP则不进行reload。

将拒绝指定IP访问的配置文件(黑名单)单独存放,并在 nginx 主配置文件中 include 进去。

blockip.conf 文件格式如下:

将脚本放入定时任务执行:

每小时对 Nginx 的错误日志进行切割并且清空一次被拒绝访问IP的配置文件,若不清空的话,此IP将终生不能访问,若它再次攻击则会再次进入黑名单,>_<。 清空命令放在了切割脚本的尾部。

可以自己决定统计频率,根据指定的频率执行脚本,获取攻击者的IP,若此IP已经在黑名单中,则会忽略掉(由于错误日志一小时切割一次,所以在一小时内会出现重复的IP)。然后把剩下的新攻击者的IP追加到黑名单。并 reload Nginx 。若没有新增的攻击者IP则什么都不做。

以下是脚本运行一段时间的攻击者IP

过段时间,再列出一份黑名单IP,看是否有变化。

看来多少还是管点用的。一共 access forbidden by rule 了 102-24=78 次。

适当的改改脚本,保存黑名单的历史数据,定期将大于1000的IP直接放入iptables!

 

分享到:
评论

相关推荐

    Nginx服务器限制IP访问的各种情况全解析

    Nginx服务器限制IP访问的知识点可以归纳为以下几点: 1. IP访问限制的必要性:在互联网应用中,限制IP访问主要是为了防止DDOS攻击,尤其是CC攻击。CC攻击是一种常见的网络攻击手段,攻击者通过控制大量代理服务器或...

    nginx配置tcp转发(nginx通过白名单访问)

    例如,你可以添加一个`allow`指令来指定允许访问的IP地址或子网: ```nginx stream { server { listen 8080; allow 192.168.1.0/24; # 允许192.168.1.0/24子网内的IP访问 deny all; # 拒绝其他所有IP proxy_...

    使用Nginx实现根据 IP 匹配指定 URL

    当请求匹配到特定的URL路径(/fuck/\w+\.html$)时,如果访问的IP地址不在指定的白名单(***.***.*.**、***.***.*.**、***.***.*.**)内,$flag变量会被设置为"012"。此时,如果$flag等于"012",那么执行重定向到根...

    nginx ip 过滤访问限制

    python脚本 从nginx的访问log,获取访问IP,记录到redis,根据IP访问数量判断是否存在安全问题,记录不正常IP,(写入到防火墙过滤-待完成)

    nginx 限制ip、并发量、连接数等配置

    # 拒绝所有其他IP访问 ... } } ``` 在上述配置中,`allow`和`deny`指令按照它们在配置文件中的顺序执行,如果IP匹配了`deny`,则后续的`allow`规则将不再检查。 二、控制并发连接数 Nginx可以通过`limit_conn`...

    Nginx日志自动归档备份shell脚本log.sh

    Nginx日志自动归档备份shell脚本log

    将nginx用service管理的shell脚本

    将其复制到/etc/init.d下。 就可以通过service nginx start | restart | stop 管理nginx了

    nginx实现请求的负载均衡 + keepalived实现nginx的高可用的shell脚本

    在提供的Shell脚本中,可能包含了安装、配置Nginx和Keepalived,以及监控Nginx状态的相关命令。运行这个脚本可以在Linux环境下快速部署这样一个高可用的负载均衡集群。 总结起来,Nginx和Keepalived的组合为Web服务...

    Nginx禁止指定UA访问的方法

    主要介绍了Nginx禁止指定UA访问的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Nginx限制IP访问某些页面的操作

    这样的配置将只允许IP地址为`10.0.0.2`的客户端访问这些页面,其他IP将被拒绝。 3. **针对不同IP设置访问权限**: 需要控制多个IP的访问权限时,可以创建一个包含允许或禁止IP的外部配置文件。例如,创建`ip.conf...

    nginx https 配置

    "nginx https 配置"这个主题涉及到的是如何在Nginx上设置HTTPS服务,以实现网站的安全访问。HTTPS是HTTP协议的安全版本,通过使用SSL/TLS协议来加密数据传输,确保用户与服务器之间的通信不被中间人攻击。 首先,...

    Nginx如何封禁IP和IP段的实现

    Nginx不仅在处理静态内容和反向代理方面表现出色,它还具有强大的配置功能,比如可以用来封禁指定的IP地址或IP地址段。本文将详细介绍如何在Nginx中封禁特定的IP地址和IP段,以及如何自定义403错误页面。 首先,...

    nginx自动化安装shell脚本

    nginx自动化安装shell脚本

    docker下载nginx镜像并配置,然后通过公网ip访问

    实验环境: 一台Liunx服务器(内网可也以) ...执行命令: docker pull nginx //从docker自带的源把...docker run -itd --name nginx -p 5555:80 nginx //运行刚刚下载nginx的镜像,现在这个镜像是一个容器。修改name为

    详解NGINX如何统计网站的PV、UV、独立IP

    Nginx: PV、UV、独立IP 做网站的都知道,平常经常要查询下网站PV、UV等网站的访问数据,当然如果网站做了CDN的话,nginx本地的日志就没什么意义了,下面就对nginx网站的日志访问数据做下统计; 概念: UV(Unique ...

    nginx禁止某个IP访问站点的设置方法

    首先建立下面的配置文件放在nginx的conf目录下面,... blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问: deny IP; allow IP; # block all ips deny all; # allow all ips allow all; 其中网段的

    linux下shell处理nginx日志自动生成ip黑名单

    #shell脚本处理nginx日志自动生成ip黑名单 ##统计访问量前10名的ip并写入文件 #!/bin/bash data=`date +%Y-%m-%d` #统计访问量最高的前10ip awk '{print $1}' '/PATH/'$data'.log' | sort -n |uniq -c | sort -rn | ...

    linux服务器(nginx或者apache)限制IP访问.docx

    Linux 服务器限制 IP 访问是指通过配置 Nginx 或 Apache 服务器,屏蔽或限制特定的 IP 地址访问服务器,以防止垃圾评论、攻击或恶意访问。 Nginx 环境下的 IP 限制 在 Nginx 环境下,可以创建一个名为 denyip.conf...

    nginx一键部署,包含shell脚本及nginx安装包

    1. **日志文件**:Nginx 会记录访问日志和错误日志,帮助管理员识别和解决问题。默认的日志文件位置在 `/var/log/nginx/access.log` 和 `/var/log/nginx/error.log`。 2. **性能监控**:使用工具如 `nginx-module-...

Global site tag (gtag.js) - Google Analytics