我是如何通过Nginx日志实时封禁风险IP的

本文介绍了如何通过实时采集和分析Nginx日志,使用Filebeat、Redis、Java服务来评估风险并自动封禁IP。涉及到日志采集、风险评估(包括IP归属地、AS、ASN查询)以及IP封禁策略的实现。
摘要由CSDN通过智能技术生成

实时采集并分析Nginx日志, 自动化封禁风险IP方案

文章地址: https://blog.piaoruiqing.com/2019/11/17/block-ip-by-analyzing-nginx-logs/

前言

本文分享了自动化采集、分析Nginx日志并实时封禁风险IP的方案及实践.

阅读这篇文章你能收获到:

  • 日志采集方案.
  • 风险IP评估的简单方案.
  • IP封禁策略及方案.

阅读本文你需要:

  • 熟悉编程.
  • 熟悉常用Linux命令.
  • 了解Docker.

背景

分析nginx访问日志时, 看到大量404的无效请求, URL都是随机的一些敏感词. 而且近期这些请求越来越频繁, 手动批量封禁了一些IP后, 很快就有新的IP进来.

因此萌生了通过自动化分析Nginx日志实时封禁IP的想法.

nginx-404-accesslog

需求

序号 需求 备注
1 Nginx日志收集 方案有很多, 笔者选择了最适合个人服务器的方案: filebeat+redis
2 日志实时分析 实时消费redis的日志, 解析出需要的数据进行分析
3 IP风险评估 对IP进行风险评估, 多个维度: 访问次数、IP归属、用途等
4 实时封禁 针对风险IP进行不同时长的封禁

分析

从日志中简单总结几个特征:

序号 特征 描述 备注
1 访问频繁 每秒数次甚至数十次 正常的流量行为也存在突发流量, 但不会持续很久
2 持续请求 持续时间久 同上
3 多数404 请求的URL可能大多数都不存在, 且存在敏感词汇如admin、login、phpMyAdmin、backup等 正常流量行为很少存在这种情况
4 IP不正常 通过ASN能看出一些端倪, 一般这类请求的IP都不是普通的个人用户. 查询其用途一般是COM(商业)、DCH(数据中心/网络托管/传输)、SES(搜索引擎蜘蛛)等

备注: 这里分析IP是通过ip2location的免费版数据库, 后面会有详细的描述.

方案

Nginx Filebeat Redis Monitor Actuator accessLog(File) accessLog(JSON) accessLog(JSON) Analysis
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值