linux中配置Nginx 拒绝代理访问

2016-03-31 15:55 156 1 收藏

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

【 tulaoshi.com - 服务器 】

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

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

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"];
}

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

echo $user_ip."br /";

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

?
 

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

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

来源:http://www.tulaoshi.com/n/20160331/2051455.html

延伸阅读
代理/防火墙 1.iptables规则表 Filter(针对过滤系统):INPUT、FORWARD、OUTPUT NAT(针对地址转换系统):PREROUTING、POSTROUTING、INPUT、OUTPUT Mangle(针对策略路由和特殊应用):OUTPUT、POSTROUTING 2.安装包 iptables-1.2.7a-2 3.配置防火墙 1) 命令语法 Usge: iptables [-t table] -[ADC] chain rule-specification [option...
标签: 服务器
Nginx安装配置PageSpeed模块实现网站加速   作为Nginx组件,ngx_pagespeed将重写你的网页,让用户以更快的速度进行访问。重写的工作包括压缩图片、缩减CSS和JavaScript、扩展缓存时间,同样还包括其它一些最佳实践: 优化缓存整合应用程序的数据和逻辑 最小化round-trip次数削减连续的请求/响应周期数 最小化请求开销...
当我们用Linux的桌面环境的时候,有时屏幕发生偏移或分辩率太低,解决办法总共有两个,一个是安装显示卡的以驱动,另一个方法是通过xorg-x11软件包所提供的工具 gtf 来调整。 一、显示设置的管理工具 在Fedora 中,显示器和显示卡的配置工具是 system-config-display,存在于软件包system-config-display中,如果您没有这个命令或者在菜单...
标签: 浏览器
Windows Server 2008配置IE使用代理 1.1.1 配置IE使用代理 什么是代理服务器? 代理服务器是在 Web 浏览器(如 Internet Explorer)和 Internet 之间起媒介作用的计算机。代理服务器通过存储经常使用的网页副本来提高 Web 性能。 当浏览器请求存储在代理服务器收集(其缓存)中的网页时,网页由代理服务器提供,这比进入 Web ...
      显示卡的配置正确与否,主要影响X Window的使用。在Linux中,X window的主要配置文件是/etc/X11/XF86Config,  这个文件的内容很复杂,我们不打算详细介绍,这里只介绍在使用程序配置X window常注意的问题。想要X Window正常  工作的关键是使用的X Server与你的显示卡相...

经验教程

185

收藏

82
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部