linux中配置Nginx 拒绝代理访问

慌忙阻挡我

慌忙阻挡我

2016-03-31 15:55

今天图老师小编要跟大家分享linux中配置Nginx 拒绝代理访问,精心挑选的教程简单易学,喜欢的朋友一起来学习吧!

linux中配置Nginx 拒绝代理访问

   先大概说说简单的结构前端一个Nginx反向代理,后端一个Nginx instance app for PHP实际上就是个Discuz,之前面对CC攻击都是预警脚本或者走CDN,但是这次攻击者不再打流量,而是针对数据库请求页面进行攻击,如search操作帖子ID F5等..从日志分析来看是从3个URL着手攻击的,当时使用Nginx 匹配$query_string 来return 503不过会导致页面不能访问,所以想到这么一个折中的办法。

  首先你看一段代理请求的日志:

  ##通过分析,在后端发现其代理访问过来的数据都是两个IP的,默认情况下直接访问获取真实IP,其IP只有一个,而通过手机 3G4G上网则是2个IP,不过有匿名IP的话,到服务器则只有一个IP,这种就不太好判断了...

  [root@ipython conf]# tail -f /var/log/nginx/logs/access.log | grep ahtax

  120.193.47.34 - - [26/Sep/2014:23:34:44 +0800] "GET /ahtax/index.html HTTP/1.0" 503 1290 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" "10.129.1.254, 120.193.47.34"

  使用PHP分析下访问时的_SERVER变量

 代码如下 

[root@ipython conf]# cat /%path%/self_.php
?php

if ($_SERVER["HTTP_X_FORWARDED_FOR"]!="")
{
    $user_ip=$_SERVER["HTTP_X_FORWARDED_FOR"];
}elseif($_SERVER["HTTP_X_REAL_IP"]!=""){
    $user_ip=$_SERVER["HTTP_X_REAL_IP"];
}else{
        $user_ip=$_SERVER["REMOTE_ADDR"];
}

echo $user_ip."br /";

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/fuwuqi/)

        foreach($_SERVER as $key=$value)
                echo $key."\t"."$value"."br /";

?
 

  通过浏览器访问确认相关参数

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/fuwuqi/)
linux中配置Nginx 拒绝代理访问 图老师

  有了这个特征就很好判断了.

  首先需要有一个正则来匹配日志里的两个IP,Nginx正则依赖pcre库...

 代码如下 

[root@ipython conf]# pcretest 
PCRE version 7.8 2008-09-05

  re '^\d+.\d+.\d+.\d+\W\s\d+.\d+.\d+.\d+$'
data 192.168.1.1, 1.1.1.1
 0: 192.168.1.1, 1.1.1.1

Nginx配置文件在location $dir 中加入条件来匹配http_x_forwarded_for:
#proxy
if ($http_x_forwarded_for ~ '^\d+.\d+.\d+.\d+\W\s\d+.\d+.\d+.\d+$'){
    return 503;
}
 

  重载配置后就可以限制使用代理IP来访问的网站用户了

nginx-reject-proxy1
展开更多 50%)
分享

猜你喜欢

linux中配置Nginx 拒绝代理访问

服务器
linux中配置Nginx 拒绝代理访问

如何在Linux下配置Nginx以限制网站用户使用代理IP访问

电脑入门
如何在Linux下配置Nginx以限制网站用户使用代理IP访问

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在Linux系统下使用Docker以及Weave搭建Nginx反向代理

服务器
在Linux系统下使用Docker以及Weave搭建Nginx反向代理

Linux拒绝国外IP访问的步骤

电脑入门
Linux拒绝国外IP访问的步骤

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Nginx 配置文件解析

服务器
Nginx 配置文件解析

Linux系统中Squid代理服务器配置全过程解析

服务器
Linux系统中Squid代理服务器配置全过程解析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何使用Linux命令行检测DVD刻录机的名字和读写速度

如何使用Linux命令行检测DVD刻录机的名字和读写速度

192.168.1.1路由器怎么设置改密码

192.168.1.1路由器怎么设置改密码
下拉加载更多内容 ↓