linux系统中配置Nginx 拒绝代理访问指定IP的方法

seo优化 2025-04-23 19:41www.1681989.comseo排名

让我们先概述一下简单的架构——前端有一个Ngx反向代理,后端则运行着为PHP打造的Ngx stance应用,这本质上就是Discuz论坛系统。以往的攻击主要是通过CC攻击,我们的应对策略主要是预警脚本或者通过来分散流量。但这次攻击者改变了策略,他们不再针对流量发起攻击,而是选择针对数据库请求页面,如搜索操作、帖子ID等。从我们的日志分析来看,攻击者主要从三个URL入手。

在分析后端代理请求的日志时,我们注意到所有访问数据似乎都来自两个IP。在默认情况下,我们能够通过访问获取真实IP,通常情况下只有一个IP,但通过手机3G\4G上网时则会出现两个IP。如果存在匿名IP,到服务器时则只显示一个IP,这使得判断变得复杂。

查看日志时,我们发现一条关于"/ahtax/dex.html"的GET请求,响应码为503,这意味着有部分请求被拒绝了。为了更准确地判断访问来源,我们使用了PHP来分析_SERVER变量。通过这段PHP代码,我们可以获取到用户的IP地址,并输出其他相关的服务器变量。

有了这些特征,我们就可以更准确地判断访问来源了。对于那些通过特定方式伪装IP地址的访问请求,我们需要有一种方法来识别并阻止它们。这就需要使用正则表达式来匹配日志中的两个IP地址。Ngx的配置依赖于pcre库来实现正则匹配。当http_x_forwarded_for字段匹配到我们设定的正则表达式时,我们就会返回503错误码,拒绝服务。

通过这种方式,我们可以在配置重载后限制使用访问网站的用户。这样既能保证系统的安全,也能保证合法用户的正常访问。这次改动是对系统安全性的重要提升,让我们能够更好地应对各种网络攻击。

Copyright © 2016-2025 www.1681989.com 推火网 版权所有 Power by