X-Forwarded-For (XFF) Confusão do campo de cabeçalho http para Nginx?

1

Temos a configuração do servidor da seguinte forma

Loadbalancer (HAPROXY) < --- > Nginx < --- > Servidores de aplicativos

Para tornar o Nginx ciente dos clientes reais que estão fazendo conexões, compilei o Nginx com o HttpRealIpModule e fiz as alterações de configuração. HAPROXY também é configurado para encaminhar o cabeçalho XFF. Nginx está ficando certo, pelo menos parcialmente (minha observação), se o cliente está navegando com endereço IP público. No caso de clientes que possuem IP privado e atrás de outro proxy do lado do cliente, como o SQUID, estou obtendo o IP privado de um cliente em vez do IP PÚBLICO do qual o IP privado está sendo NATTED. De acordo com a documentação do Módulo Nginx [ link ], o HttpRealIpModule deve obter o último ip no cabeçalho X-Forwarded-For para substituição. Aqui está o dump NGREP para um cliente com IP privado por trás do proxy do squid

T 192.168.255.1:53777 -> 192.168.153.164:80 [AP]
.1315664739.21; __utmb=82961925.3.10.1315664739; __utmc=82961925;         __utmz=82961925.1315664739.21.21.utmcsr=domainname.com|utmccn=        (referral)|utmcmd=referral|utmcct=/users/sign_in; SnapABugHistory=206
#..If-None-Match: "cc1ff315751caad21aea3dfd5392a56a"..Via: 1.1 atmosphere.sprout.lan:3128    (squid/2.7.STABLE9)..X-Forwarded-For: 192.168.3.111..Cache-Control: max-age=259200..X-Forwarded-For:    116.90.235.11.... 

O cabeçalho XFF aqui é atmosphere.sprout.lan: 3128 (squid / 2.7.STABLE9). X-Forwarded-For: 192.168.3.111..Cache-Control: max-age = 259200..X-Forwarded-For : 116.90.235.11.

O ultimo ip visto aqui no cabeçalho é 116.90.235.11 mas o arquivo de log do nginx mostra o ip privado do cliente 192.168.2.111

isso é normal?

    
por kaji 12.09.2011 / 22:27

1 resposta

1

Isso pode acontecer devido a várias coisas. O Nginx está em primeiro lugar um proxy, portanto, ele reterá cabeçalhos HTTP. Portanto, se o seu HAproxy (ou mesmo o Proxy da LAN do usuário) já fornecer um X-Forwarded-For, você terá uma boa chance de ser retido por todos os proxies (HAproxy - > nginx - > backend).

    
por 08.10.2011 / 07:06

Tags