日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過CLB七層監(jiān)聽獲取客戶端真實(shí)IP

更新時(shí)間:

當(dāng)使用CLB七層監(jiān)聽轉(zhuǎn)發(fā)流量時(shí),您可通過HTTP頭部的X-Forwarded-For字段獲取客戶端真實(shí)IP地址。

獲取方法介紹

七層負(fù)載均衡(HTTP或HTTPS協(xié)議)支持在HTTP頭部的X-Forwarded-For字段保留客戶端真實(shí)IP信息,服務(wù)器進(jìn)行相應(yīng)配置后即可獲取到客戶端真實(shí)IP地址。

X-Forwarded-For字段格式如下:

X-Forwarded-For: <客戶端真實(shí)IP, 代理服務(wù)器1-IP, 代理服務(wù)器2-IP,...>

當(dāng)使用此方式獲取客戶端真實(shí)IP時(shí),獲取的第一個(gè)地址就是客戶端真實(shí)IP。

說明

CLB的HTTPS監(jiān)聽是在負(fù)載均衡服務(wù)上進(jìn)行的加密控制,負(fù)載均衡服務(wù)與后端服務(wù)器之間使用的是HTTP協(xié)議。因此如果即使使用的是HTTPS監(jiān)聽,在后端服務(wù)器也只需配置HTTP協(xié)議。

操作步驟

前提條件

  • 您已經(jīng)創(chuàng)建CLB實(shí)例并為該實(shí)例添加了七層監(jiān)聽。本文以HTTP監(jiān)聽、監(jiān)聽端口為80舉例說明,具體操作,請參見創(chuàng)建和管理CLB實(shí)例添加HTTP監(jiān)聽

  • 您已經(jīng)創(chuàng)建可用的CLB服務(wù)器組并添加了后端服務(wù)器。本文以創(chuàng)建了虛擬服務(wù)器組、后端協(xié)議為HTTP、后端服務(wù)器為ECS、后端應(yīng)用端口為80舉例說明,具體操作,請參見創(chuàng)建和管理虛擬服務(wù)器組

步驟一:檢查監(jiān)聽已開啟通過X-Forwarded-For獲取功能

  1. 登錄傳統(tǒng)型負(fù)載均衡CLB控制臺(tái)

  2. 在頂部菜單欄,選擇實(shí)例所屬的地域。

  3. 實(shí)例管理頁面,找到目標(biāo)實(shí)例,單擊實(shí)例ID。

  4. 在實(shí)例詳情頁面,單擊監(jiān)聽頁簽,找到目標(biāo)七層監(jiān)聽,單擊監(jiān)聽ID。

  5. 在監(jiān)聽詳情頁面,查看到附加HTTP頭字段包括通過X-Forwarded-For頭字段獲取客戶端真實(shí)IP

    說明

    CLB七層監(jiān)聽默認(rèn)開啟通過X-Forwarded-For頭字段獲取客戶端真實(shí)IP功能,不支持關(guān)閉。

步驟二:配置后端服務(wù)器

請根據(jù)您所使用的服務(wù)器類型,選擇對應(yīng)的操作步驟。

配置Nginx服務(wù)器

此處以CentOS 7.9操作系統(tǒng)、Nginx 1.20.1 版本配置為例介紹。具體請以您實(shí)際使用的環(huán)境為準(zhǔn)。

  1. 在服務(wù)器執(zhí)行nginx -V | grep http_realip_module命令,檢查Nginx服務(wù)器是否安裝了http_realip_module模塊。Nginx使用http_realip_module模塊解析X-Forwarded-For記錄。

    如果返回信息中包括--with-http_realip_module,表示已安裝http_realip_module模塊,可進(jìn)行下一步。

    已安裝http_realip_module模塊返回信息示例

    nginx version: nginx/1.20.1
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
    built with OpenSSL 1.1.1k  FIPS 25 Mar 2021
    TLS SNI support enabled
    configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'
    
    說明
    • Nginx 1.0.4 版本(2011年)開始支持http_realip_module 模塊。如果您使用的Nginx版本過老,建議您備份配置數(shù)據(jù)并升級(jí)Nginx版本。

    • 如果未安裝http_realip_module模塊,需要重新編譯安裝Nginx并安裝http_realip_module 模塊。操作較為繁瑣,建議您使用類似yum的包管理器安裝Nginx。

  2. 修改Nginx服務(wù)配置文件并保存,修改點(diǎn)可參考下方說明。執(zhí)行nginx -t命令查看配置文件所在路徑,默認(rèn)通常為 /etc/nginx/nginx.conf,具體請以實(shí)際環(huán)境為準(zhǔn)。

    http {
      # 確保設(shè)置$http_x_forwarded_for,該變量用于記錄X-Forwarded-For的值
      log_format  main  '$remote_addr- $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
      
      # ...
    }
    

  3. 執(zhí)行sudo nginx -s reload命令,重新加載Nginx配置文件。

配置Apache服務(wù)器

此處以CentOS 7.9操作系統(tǒng)、Apache 2.4.6 版本配置為例介紹。具體請以您實(shí)際使用的環(huán)境為準(zhǔn)。

  1. 在服務(wù)器執(zhí)行httpd -M | grep remoteip_module命令,檢查Apache服務(wù)器是否安裝了remoteip_module模塊。Apache使用remoteip_module模塊解析X-Forwarded-For記錄。

    如果返回信息中包括remoteip_module (shared),表示已安裝該模塊,可進(jìn)行下一步。

    說明
    • Apache 2.4.0 版本(2012年)開始支持remoteip_module 模塊。如果您使用的Apache版本過老,建議您備份配置數(shù)據(jù)并升級(jí)Apache版本。

    • 如果未安裝remoteip_module 模塊,需要重新編譯安裝Apache并安裝remoteip_module 模塊。操作較為繁瑣,建議您使用類似yum的包管理器安裝Apache。

  2. 修改Apache服務(wù)配置文件并保存,修改點(diǎn)可參考下方說明。默認(rèn)通常為/etc/httpd/conf/httpd.conf,具體請以實(shí)際環(huán)境為準(zhǔn)。

    # ...
    <IfModule log_config_module>
    	# 增加%{X-Forwarded-For}i ,用于記錄X-Forwarded-For信息
      LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
      LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b" common
    	#...
    </IfModule>
    # ...

  3. 執(zhí)行sudo systemctl restart httpd命令,重啟apache服務(wù)。

配置IIS服務(wù)器

此處以Windows Server 2016操作系統(tǒng)配置為例介紹。具體請以您實(shí)際使用的環(huán)境為準(zhǔn)。

  1. 下載并解壓F5XForwardedFor文件

  2. 根據(jù)自己的服務(wù)器操作系統(tǒng)版本將x86\x64\目錄下的F5XFFHttpModule.dllF5XFFHttpModule.ini拷貝到某個(gè)目錄,確保IIS進(jìn)程對該目錄有讀取權(quán)限。

  3. 服務(wù)器管理器中,打開IIS管理器

  4. 選中服務(wù)器,雙擊模塊功能。

  5. 單擊配置本機(jī)模塊,然后在彈出的對話框中,單擊注冊

  6. 添加下載的.dll文件。

    1. 輸入文件名稱,選擇路徑之后,單擊確定

    2. 此時(shí)系統(tǒng)會(huì)自動(dòng)選中新注冊的模塊,請單擊確定注冊模塊

  7. 回到服務(wù)器主頁,雙擊日志模塊,配置日志格式,在日志中記錄X-Forwarded-For字段信息。

    1. 單擊選擇字段

      image.png

    2. 單擊左下角添加字段,添加如下日志字段并確認(rèn)。

      image.png

    3. 單擊右上角應(yīng)用,完成修改。

  8. 重啟IIS服務(wù)器,等待配置生效。

步驟三:驗(yàn)證后端服務(wù)器已獲取客戶端真實(shí)IP

請根據(jù)您所使用的服務(wù)器類型,選擇對應(yīng)的操作步驟。

Nginx服務(wù)器

當(dāng)Nginx作為后端服務(wù)器時(shí),您可以通過檢查Nginx日志來判斷是否成功獲取到了客戶端的真實(shí)IP地址。

Nginx日志文件默認(rèn)路徑為:/var/log/nginx/access.log

每行日志中,$http_x_forwarded_for變量對應(yīng)的字段中,第一個(gè)IP地址即為客戶端真實(shí)IP地址。

image.png

Apache服務(wù)器

當(dāng)Apache作為后端服務(wù)器時(shí),您可以通過檢查Apache日志來判斷是否成功獲取到了客戶端的真實(shí)IP地址。

Apache日志文件默認(rèn)路徑為:/var/log/httpd/access_log

每行日志中,%{X-Forwarded-For}i 對應(yīng)的字段中,第一個(gè)IP地址即為客戶端真實(shí)IP地址。

image.png

IIS服務(wù)器

當(dāng)IIS作為后端服務(wù)器時(shí),您可以通過檢查IIS日志來判斷是否成功獲取到了客戶端的真實(shí)IP地址。

IIS日志文件路徑,可在日志模塊查看。

image.png

每行日志中,X-Forwarded-For對應(yīng)的字段中,第一個(gè)IP地址即為客戶端真實(shí)IP地址。

image.png

常見問題

為什么有100開頭的IP在頻繁訪問ECS實(shí)例

負(fù)載均衡系統(tǒng)除了會(huì)通過系統(tǒng)服務(wù)器的內(nèi)網(wǎng)IP將來自外部的訪問請求轉(zhuǎn)到后端ECS實(shí)例之外,還會(huì)對ECS實(shí)例進(jìn)行健康檢查和可用性監(jiān)控,這些訪問的來源都是由負(fù)載均衡系統(tǒng)發(fā)起的。

負(fù)載均衡系統(tǒng)的地址段為100.64.0.0/10(100.64.0.0/10是阿里云保留地址,其他用戶無法分配到該網(wǎng)段內(nèi),不會(huì)存在安全風(fēng)險(xiǎn)),所以會(huì)有很多100開頭的IP地址訪問ECS實(shí)例。

為了確保您對外服務(wù)的可用性,請確保您的所有服務(wù)器均對上述地址的訪問配置了安全組放行規(guī)則。

與WAF/CDN/GA等配合使用時(shí),如何獲取客戶端真實(shí)IP

流量在經(jīng)過負(fù)載均衡前,如果經(jīng)過WAF、CDN、GA等轉(zhuǎn)發(fā),也可以通過X-Forwarded-For字段獲取客戶端真實(shí)IP地址,這些產(chǎn)品默認(rèn)透傳X-Forwarded-For字段,無需進(jìn)行其他配置。

如果您業(yè)務(wù)安全性要求較高,想避免X-Forwarded-For偽造,您可通過在其他產(chǎn)品中指定header字段記錄客戶端真實(shí)IP。假如您采用客戶端 > CDN > WAF > 負(fù)載均衡 > ECS架構(gòu)時(shí),CDN透傳HTTP頭部的Ali-Cdn-Real-Ip字段,在WAF中接入時(shí)客戶端IP判定方式選擇指定header字段為Ali-Cdn-Real-Ip,后端Nginx服務(wù)器配置日志變量為$http_Ali_Cdn_Real_Ip,日志中獲取的亦為客戶端真實(shí)IP。

您也可以通過其他多種手段加固系統(tǒng)安全性,例如:

  • 驗(yàn)證和過濾XFF頭部:在后端服務(wù)器中,對XFF頭部進(jìn)行驗(yàn)證和過濾,以確保它是合法且可信的。您可以檢查XFF頭部的格式和IP地址,拒絕非法或可疑的值。

  • 使用防火墻和訪問控制列表:在負(fù)載均衡器和后端服務(wù)器之間,使用防火墻和訪問控制列表來限制和過濾針對XFF頭部的惡意請求。

  • SSL/TLS加密:使用SSL/TLS加密來保護(hù)通信,包括XFF頭部的傳輸。這樣可以減少中間人攻擊和數(shù)據(jù)篡改的風(fēng)險(xiǎn)。

ACK場景下使用負(fù)載均衡時(shí)如何獲取客戶端真實(shí)IP

當(dāng)您在ACK集群中使用負(fù)載均衡時(shí),獲取方式相同,具體操作有部分差異,具體操作請參考ACK容器集群Pod如何獲取客戶端真實(shí)IP?

相關(guān)文檔

不同負(fù)載均衡類型獲取客戶端真實(shí)IP方式有所不同: