還在為源 IP 獲取不準煩惱?雷池 WAF 的智能配置贏在哪?

不想看長文可以直接翻到最后看結(jié)論

經(jīng)常有大哥反饋說雷池攻擊日志里顯示的 IP 有問題。

這里我來講一下為什么一些情況下雷池顯示的攻擊 IP 會有問題。

問題說明

默認情況下,雷池會通過 HTTP 連接的?Socket?套接字讀取客戶端 IP。在雷池作為最外層網(wǎng)管設(shè)備的時候這沒有問題,雷池獲取到的 IP 就是攻擊者的真實 IP。

但是,有些情況下我們需要在雷池前面再疊加其他代理設(shè)備(如 Nginx,CDN,應(yīng)用交付,API 網(wǎng)管等等)。在這種情況下,實際連接雷池的不是真正的網(wǎng)站用戶,而是這些代理設(shè)備,這種情況下我們就需要根據(jù)實際網(wǎng)絡(luò)拓撲來調(diào)整雷池的 IP 獲取方式。

先了解什么是?X-Forwarded-For

X-Forwarded-For?是一個相對通用的 HTTP 請求頭。

HTTP 流量在經(jīng)過代理時,由于網(wǎng)絡(luò)連接被截胡,服務(wù)器無法得知真正的客戶端 IP。這時代理設(shè)備會給當前的流量加上一個?X-Forwarded-For?頭,里面的內(nèi)容就是連接這個代理的客戶端 IP。

下面這個例子中 HTTP 代理通過?X-Forwarded-For?頭告訴服務(wù)器,真正的客戶端地址是?1.2.3.4

1GET / HTTP/1.1

2Host: demo.waf-ce.chaitin.cn

3User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36

4X-Forwarded-For: 1.2.3.4

X-Forwarded-For?實際上是一個鏈式結(jié)構(gòu)。如果流量經(jīng)過了多層代理設(shè)備,X-Forwarded-For?會記錄途徑的所有 IP。

下面這個例子中 HTTP 代理通過?X-Forwarded-For?頭告訴服務(wù)器,流量經(jīng)過了三層代理,真正的客戶端地址是?1.2.3.4,第一層代理的是?11.12.13.14,第二層代理的地址是?21.22.23.24,第三次代理的地址可以通過?Socket?連接直接來獲取。

1GET / HTTP/1.1

2Host: demo.waf-ce.chaitin.cn

3User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36

4X-Forwarded-For: 1.2.3.4, 11.12.13.14, 21.22.23.24

IP-Forwarded-For?頭靠譜么

在代理設(shè)備和代理鏈路可信的情況下?IP-Forwarded-For?頭傳遞的內(nèi)容是很靠譜的,可以放心的試用。

但是呢,如果代理設(shè)備不可信,那么攻擊者會通過偽造?IP-Forwarded-For?頭的辦法來實現(xiàn)偽造源 IP。


雷池的配置

雷池全局配置里有一個這樣的選項,專門用來解決這個問題。


雷池在這個配置里提供了幾個選項,根據(jù)上面講到的知識,大家可以根據(jù)實際情況來選擇最適合的選項

從網(wǎng)絡(luò)連接中獲取: 當雷池作為最外層代理設(shè)備,無其他前置代理時選用

從?X-Forwarded-For?中獲取上一級代理的地址:在流量到達雷池之前還有一層代理設(shè)備(如Nginx,CDN 等)時可選用

從?X-Forwarded-For?中獲取上上一級代理的地址:在流量到達雷池之前還有兩層代理設(shè)備(如 Nginx,CDN 等)時可選用

從?X-Forwarded-For?中獲取上上上一級代理的地址:在流量到達雷池之前還有三層代理設(shè)備(如 Nginx,CDN 等)時可選用

從其他 HTTP Header 中獲?。河袔追N情況

流量經(jīng)過了一些特殊的反向代理設(shè)備,這類代理不會發(fā)送?X-Forwarded-For?頭,但是可以通過配置,把?IP?通過其他頭發(fā)過來

流量到達雷池有多種途徑,可能有一層代理,也可能有兩層代理,可以通過配置前置代理設(shè)備來統(tǒng)一?HTTP?頭

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容