当前位置: 首页 > news >正文

nginx黑白名单-元一软件

什么是黑白名单?

黑白名单是一种用于管理和控制系统访问权限的机制。黑名单是指被禁止访问或使用的对象或资源列表,而白名单则是指被允许访问或使用的对象或资源列表。

在网络安全领域,黑白名单通常用于限制对特定网站、IP地址或应用程序的访问,以保护系统免受恶意攻击或未经授权的访问。

注意:黑白名单也可以用于过滤垃圾邮件、拦截恶意软件等。

Nginx 黑白名单

在 Nginx 中,当我们需要指定或者禁止某些 ip 访问服务时,此时可以使用黑白名单机制,Nginx 通过 allow、deny 配置项来实现黑白名单。

限制单个 IP

如果仅仅限制单个 IP,我们可以直接在 location 里面编写,例如:

# 配置工作进程数量worker_processes1;events{# 设置工作进程可以同时打开的最大连接数worker_connections1024;}http{# 引用 MIME 类型include mime.types;default_type application/octet-stream;server{listen8080;server_name localhost;location /{# 设置请求的根目录root html;# 定义将用作索引的文件index index.html index.htm;# 【关键位置】# 屏蔽 192.177.12.222 访问deny127.0.0.1;# 屏蔽 127.0.0.1 到 127.255.255.254 网段中的所有 IP 访问deny127.0.0.0/8;# 允许 192.177.44.201 访问allow192.177.44.201;# 允许 127.45.0.1 到 127.45.255.254 网段中的所有 IP 访问allow127.45.0.0/16;# 除开上述 IP 外,其他 IP 全部禁止访deny all;}}}

批量限制 IP

如果我们需要批量限制 IP,则需要创建 .conf 文件来配置,例如:

(1)在 Nginx 的 conf 目录下面创建白名单文件 white.conf,如下:

allow127.0.0.1;# 允许 127.0.0.1 访问allow192.177.12.222;# 允许 192.177.12.222 访问allow192.177.44.201;# 允许 192.177.44.201 访问allow127.45.0.0/16;# 允许 127.45.0.1 到 127.45.255.254 网段中的所有 IP 访问deny all;# 除开上述 IP 外,其他 IP 全部禁止访问

注意:你也可以将配置文件放在任何你想要的地方,然后采用绝对地址引用,如:include /webapp/white.conf

(2)在 Nginx 的 conf 目录下面创建黑名单文件 black.conf,如下:

deny192.177.12.222;# 屏蔽 192.177.12.222 访问deny192.177.44.201;# 屏蔽 192.177.44.201 访问deny127.0.0.0/8;# 屏蔽 127.0.0.1 到 127.255.255.254 网段中的所有 IP 访问

(3)最后,在 nginx 配置文件中引入,如下:

# 【目的】# 实现黑白名单,批量限制IPworker_processes1;events{worker_connections1024;}http{include mime.types;default_type application/octet-stream;# 屏蔽该文件中的所有IPinclude black.conf;server{listen8080;server_name localhost;location /{root html;index index.html index.htm;# 【关键位置】# 开放给白名单中的IPinclude white.conf;}}}

注意:同时也可以通过 ngx_http_geo_module、ngx_http_geo_module 第三方库去实现(这种方式可以按地区、国家进行屏蔽,并且提供了 IP 库)。

http://www.cnnetsun.cn/news/3474801.html

相关文章:

  • Flask应用CSRF防护实战:Flask-WTF核心机制与安全配置详解
  • LED驱动电路设计:原理、实现与优化
  • HarmonyOS AI 应用开发实战:每日一句英文 —— 从对齐到评估的完整研发流程
  • Android Xfermode图形混合模式详解与实践
  • VLA模型:视觉-语言-行动统一建模的具身智能核心
  • Unity UI自动化测试实战:从Automated QA插件到CI/CD集成
  • C#与C++混合编程实战:构建高性能人脸识别引擎FaceFusion
  • TVA与具身智能互为支撑的内在逻辑(10)
  • PS2记忆卡3D数据渲染:OpenGL着色器逆向工程实践
  • 宇树科技IPO:从机器人运动控制到具身智能的技术与商业鸿沟
  • Tiva μDMA通道控制寄存器详解与实战配置指南
  • Vue2与Vue3响应式系统对比与优化实践
  • 从“看见”到“看懂并行动”:TVA对具身智能的实战价值(4)
  • 21天学pcie--PCIe 是“串行”的,为什么比并行快?
  • Claude Code 的好提示词不是写步骤,而是交付一个可验收的工程闭环
  • REST 与 GraphQL 核心差异:数据契约与获取模型解析
  • Q值如何影响振荡器相位噪声:原理与工程优化
  • Windows进程CPU绑定:原理、实现与优化
  • 免费看电影的网站推荐,FreeOK+555电影+爱壹帆,资源合集下载
  • 射频放大器分类与选型指南:从A类到H类全解析
  • 超声波传感器原理与STM32驱动实现指南
  • 职场高阶技能:数据思维、项目管理与商业敏感度
  • HarmonyOS7公告样式跑马灯实战:公告条视觉包装
  • Shopify Remix应用开发全流程指南
  • Spring Boot定时任务实现:从零构建消息推送系统
  • 机器学习博士生存手记:从解题者到问题定义者的范式跃迁
  • 国产AI编程工具选型指南:从真实场景出发的深度评估
  • 184.基于 CODESYS IEC61131-3 ST 多层功能块带防抖、气缸超时故障的三色物料分拣 PLC 控制系统设计
  • ROS机器人自主探索:explore_lite前沿算法原理与工程实践
  • 【Cursor暗黑模式终极指南】:20年IDE专家亲授5种无缝切换技巧与避坑清单