阿里雲SLB下使用Nginx巧加web防火牆

服務器大家都不陌生,隨着科技的發展企業對於服務器的選擇也是多種多樣。雲服務對我們帶來了便利,架構即服務,軟件即服務等。但是雲服務的背後我們對服務的控制能力有時候缺有了限制。公司用的是阿里雲的負載均衡器-SLB,SLB與後端nginx流量爲內網,這個時候面對這洪水攻擊和爬蟲的時候我們單從WEB服務器的iptables層很難做到隔離IP。下面我們巧用nginx來實現IP隔離
場景原理:

場景: 前端SLB--->nginx---->proxy
阿里雲SLB下使用Nginx巧加web防火牆阿里雲SLB下使用Nginx巧加web防火牆

1.首先需要配置SLB(阿里雲負載均衡)讓slb記錄用戶真實IP功能

SLB是阿里雲的一款負載均衡服務產品,和LVS一樣,我們可以理解爲LVS服務,(但是我們沒有對lvs服務器的管理權限)
阿里雲SLB下使用Nginx巧加web防火牆阿里雲SLB下使用Nginx巧加web防火牆
此處勾選即可

2.tomcat開啓X-Forwarded-For日誌功能

開啓tomcat的X-Forwarded-For,在tomcat/conf/server.xml中,修改AccessLogValve日誌紀錄功能爲如下內容:

<valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%{X-Forwarded-For}i %h %l %u %t %r %s %b"></valve>

提示:修改完重啓生效!!

被攻擊的日誌檢查客戶真實IP:

阿里雲SLB下使用Nginx巧加web防火牆阿里雲SLB下使用Nginx巧加web防火牆

3.Nginx配置隔離

在Server標籤下添加如下幾行

set $allow true;
	if ($http_x_forwarded_for ~ "106.121.*.*|106.121.71.120|106.121.77.28|106.121.74.130|218.109.235.254"){
        set $allow false;
	}
	if ($allow = false){
        return 404;
    }
#提示:IP添加在上面!

小結: 因爲無法禁止用戶進行訪問,我們設置404可以讓IP無法進行訪問數據庫。不然數據庫會被查詢語句進行刷爆。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章