0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何建立一个动态的IP黑名单

Android编程精选 来源:CSDN博客 作者:Joker_Ye 2021-10-12 09:15 次阅读

Nginx 通过 Lua + Redis 实现动态封禁 IPJava后端 3天前为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。

实现 IP 黑名单的功能有很多途径:

操作系统层面,配置 iptables,拒绝指定 IP 的网络请求;

在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者 lua 插件 配置 IP 黑名单;

在应用层面,在请求服务之前检查一遍客户端 IP 是否在黑名单。

为了方便管理和共享,我们选择通过 Nginx+Lua+Redis 的架构实现 IP 黑名单的功能

安装 Nginx+Lua模块,推荐使用 OpenResty,这是一个集成了各种 Lua 模块的 Nginx 服务器:

安装并启动 Redis 服务器

配置 Nginx 示例:

77a02c62-2627-11ec-82a8-dac502259ad0.jpg

Nginx 配置,其中

lua_shared_dict ip_blacklist 1m

由 Nginx 进程分配一块 1M 大小的共享内存空间,用来缓存 IP 黑名单。

access_by_lua_file lua/ip_blacklist.lua;指定 lua 脚本位置。4. 配置 lua 脚本,定期从 Redis 获取最新的 IP 黑名单。

781918f2-2627-11ec-82a8-dac502259ad0.png

在 Redis 服务器上新建 Set 类型的数据 ip_blacklist,并加入最新的 IP 黑名单。完成以上步骤后,重新加载 nginx,配置便开始生效了。这时访问服务器,如果你的 IP 地址在黑名单内的话,将出现拒绝访问,如下图:

以上,便是 Nginx+Lua+Redis 实现的 IP 黑名单功能,具有如下优点:

配置简单、轻量,几乎对服务器性能不产生影响;

多台服务器可以通过Redis实例共享黑名单;

动态配置,可以手工或者通过某种自动化的方式设置 Redis 中的黑名单。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1404

    浏览量

    148272
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82509
  • nginx
    +关注

    关注

    0

    文章

    135

    浏览量

    11985

原文标题:Nginx 通过 Lua + Redis 实现动态封禁 IP

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    静态、动态、NAPT、Easy-ip与NAT server应用探讨

    动态地址 NAT ( Pooled NAT )(多对多)。将内部网络的私有 IP 地址转换为公用 IP 地址时,IP 地址是不确定,随机的。所有被授权访问 Internet 的私有
    的头像 发表于 04-19 10:41 101次阅读

    谷歌Safe Browsing功能升级,提供实时URL保护,降低恶意网站攻击风险

    原来,Chrome浏览器用户仅能在标准级别的防护下,依靠在本地系统储存的不良网站黑名单,每隔30至60分钟与谷歌云服务器进行同步更新。
    的头像 发表于 03-15 11:30 148次阅读

    一键动态切换IP脚本

    T*o*r*Proxy一键搭建动态代*理,通过利用T*o*r搭建Socks5代*理,最终实现动态切换IP的效果。
    的头像 发表于 12-08 10:25 451次阅读
    一键<b class='flag-5'>动态</b>切换<b class='flag-5'>IP</b>脚本

    蔚来汽车获独立生产资质 近30亿元“拿下”F1、F2工厂

    公开信息表明,工信部平台车辆生产企业信用信息管理系统,为工信部根据国务院关于深化行政审批制度改革、加快建立企业信用信息系统的要求,而建立的汽车生产企业信用数据库和违法违规企业黑名单库。
    的头像 发表于 12-05 15:42 301次阅读
    蔚来汽车获独立生产资质 近30亿元“拿下”F1、F2工厂

    AMD Versal系列CIPS IP建立示例工程

    接着上一篇“AMD Versal系列CIPS IP核介绍”文章来进一步讲解如何来建立CIPS IP核示例工程。
    的头像 发表于 12-05 13:34 334次阅读
    AMD Versal系列CIPS <b class='flag-5'>IP</b>核<b class='flag-5'>建立</b>示例工程

    网络静态ip动态区别

    网络静态IP动态IP是指在网络中分配给设备的唯一标识符,下面将详细探讨网络静态IP动态IP
    的头像 发表于 11-27 14:46 495次阅读

    静态IP动态IP的区别

    静态IP动态IP是计算机网络中常用的两种IP地址分配方式,它们在分配方式、使用范围、安全性和适用场景等方面存在一些区别。 一、静态IP的定
    的头像 发表于 11-27 14:44 609次阅读

    如何修改网络配置(动态_静态IP)

    | | NET2| eth0| 千兆网卡,位于底板上| 1.配置静态IP 1.1千兆以太网固定IP方式 方法 打开/etc/profile vi /etc/profile 在最后加上
    发表于 11-09 15:40

    建立TCP/IP连接之后可以发送json的数据吗?

    建立TCP/IP连接之后,可以发送json的数据吗?​
    发表于 10-20 06:02

    建立TCP/IP连接后可以发送json数据吗?

    建立TCP/IP连接后,可以发送json数据吗?
    发表于 10-18 06:05

    四家台商被指是协助华为关键企业或进入美方黑名单

    国务院台办新闻发言人陈斌华表示,该政策适用于在大陆注册的所有企业,当然也包括台湾投资企业。以上海一家知名的台湾投资企业为例,2022年该企业的研发费用为4292万元,如果将增益扣除比例从100%调整为120%,该企业可节省129万元税金。
    的头像 发表于 10-12 09:26 471次阅读

    【公告】关于平台少数违规账号的处罚通知

    ; 2、被处罚账号将纳入平台黑名单库,禁止重新注册。 以上处罚决定即日起生效,希望大家引以为戒,共同维护电子发烧友平台健康网络环境。 电子发烧友运营团队2023年8月22日 ps:部分处罚账号请查看附件,如对处罚存在异议,请私信联系管理员或邮箱users@huaqiu.com反馈,感谢大家支持!
    发表于 08-22 17:14

    XILINX FPGA IP之MMCM PLL DRP时钟动态重配详解

    上文XILINX FPGA IP之Clocking Wizard详解说到时钟IP的支持动态重配的,本节介绍通过DRP进行MMCM PLL的重新配置。
    发表于 06-12 18:24 6392次阅读
    XILINX FPGA <b class='flag-5'>IP</b>之MMCM PLL DRP时钟<b class='flag-5'>动态</b>重配详解

    恒讯科技分析:云服务器如何屏蔽海外IP

    ,可以考虑以下方法: 1、配置防火墙规则: 通过在服务器上配置防火墙规则,可以限制海外IP的访问。我们可以使用防火墙软件或服务创建规则,将海外IP列入黑名单,阻止其访问服务器。确保规则设置正确并启用,以确保有效的
    的头像 发表于 05-22 17:11 2095次阅读

    5G NR RRC协议解析—SIB4/5

      NR系统消息SIB4/5的作用和SIB3类似,区别在于:   SIB3:仅提供与同频小区重选相关的邻区信息,包括具有特定重选参数的小区和黑名单小区信息。   SIB4: 包含与异频小区重选有关
    发表于 05-08 15:50