主頁(yè) > 知識(shí)庫(kù) > linux系統(tǒng)中配置Nginx 拒絕代理訪問(wèn)指定IP的方法

linux系統(tǒng)中配置Nginx 拒絕代理訪問(wèn)指定IP的方法

熱門(mén)標(biāo)簽:宿松百度地圖標(biāo)注 信陽(yáng)智能外呼系統(tǒng)聯(lián)系方式 營(yíng)業(yè)廳外呼系統(tǒng)有錄音嗎 滁州外呼系統(tǒng)接口對(duì)接 合力億捷外呼系統(tǒng)如何解壓安裝 地圖標(biāo)注怎么兼職 地圖標(biāo)注和視頻彩鈴制作生意 南通電銷(xiāo)外呼系統(tǒng)排名 南京電銷(xiāo)外呼系統(tǒng)廠家

   先大概說(shuō)說(shuō)簡(jiǎn)單的結(jié)構(gòu)…前端一個(gè)Nginx反向代理,后端一個(gè)Nginx instance app for PHP…實(shí)際上就是個(gè)Discuz,之前面對(duì)CC攻擊都是預(yù)警腳本或者走CDN,但是這次攻擊者不再打流量,而是針對(duì)數(shù)據(jù)庫(kù)請(qǐng)求頁(yè)面進(jìn)行攻擊,如search操作…帖子ID F5等..從日志分析來(lái)看是從3個(gè)URL著手攻擊的,當(dāng)時(shí)使用Nginx 匹配$query_string 來(lái)return 503…不過(guò)會(huì)導(dǎo)致頁(yè)面不能訪問(wèn),所以想到這么一個(gè)折中的辦法。

  首先你看一段代理請(qǐng)求的日志:

  ##通過(guò)分析,在后端發(fā)現(xiàn)其代理訪問(wèn)過(guò)來(lái)的數(shù)據(jù)都是兩個(gè)IP的,默認(rèn)情況下直接訪問(wèn)獲取真實(shí)IP,其IP只有一個(gè),而通過(guò)手機(jī) 3G\4G上網(wǎng)則是2個(gè)IP,不過(guò)有匿名IP的話,到服務(wù)器則只有一個(gè)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分析下訪問(wèn)時(shí)的_SERVER變量


復(fù)制代碼
代碼如下:
[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."
";
foreach($_SERVER as $key=>$value)
echo $key."\t"."$value"."
";
?>

  通過(guò)瀏覽器訪問(wèn)確認(rèn)相關(guān)參數(shù)

  有了這個(gè)特征就很好判斷了….

  首先需要有一個(gè)正則來(lái)匹配日志里的兩個(gè)IP,Nginx正則依賴pcre庫(kù)...


復(fù)制代碼
代碼如下:
[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 中加入條件來(lái)匹配http_x_forwarded_for:
#proxy
if ($http_x_forwarded_for ~ '^\d+.\d+.\d+.\d+\W\s\d+.\d+.\d+.\d+$'){
return 503;
}

  重載配置后就可以限制使用代理IP來(lái)訪問(wèn)的網(wǎng)站用戶了

標(biāo)簽:運(yùn)城 潛江 麗水 新余 銅陵 衢州 山南 保定

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux系統(tǒng)中配置Nginx 拒絕代理訪問(wèn)指定IP的方法》,本文關(guān)鍵詞  linux,系統(tǒng),中,配置,Nginx,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux系統(tǒng)中配置Nginx 拒絕代理訪問(wèn)指定IP的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于linux系統(tǒng)中配置Nginx 拒絕代理訪問(wèn)指定IP的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章