HAProxy - como anexar o ip do cliente nos cabeçalhos X-Client-IP e X-Forwarded-For?

7

Eu tenho um problema com o servidor HAProxy. Eu quero encaminhar no cabeçalho um IP do cliente. Eu quase fiz isso, mas há um caso interessante e não consigo entender. Preciso escrever o IP do cliente em 2 locais no cabeçalho, nas tags X-CLIENT-IP e X-FORWARDED-FOR.

O problema é: quando eu uso

option http-server-close
option forwardfor

No servidor de destino que vejo no cabeçalho X-FORWARDED-FOR = xxx.xxx.xxx.xxx (ip do cliente), mas não há cabeçalho x-client-ip.

Quando eu uso:

option forwardfor header X-Client-IP
option http-server-close

No servidor de destino, vejo o cabeçalho X-CLIENT-IP = xxx.xxx.xxx (IP do cliente), mas X-FORWARDED-FOR = xxx.xxx.xxx.xxx (HAProxy ip)

Eu preciso ver no cabeçalho de destino onde X-CLIENT-IP e X-FORWARDED-FOR têm valor de IP do cliente.

Eu tento misturar configurações como

 option forwardfor
 option forwardfor header X-Client-IP
 option http-server-close

Sem efeito. Eu também não consigo instalar nenhum módulo. O alvo é o IIS.

Alguma ideia? : (

    
por KacproSo 14.09.2015 / 13:14

4 respostas

7

Você pode tentar configurar um cabeçalho personalizado, assim:

http-request set-header X-Client-IP %[src]

Ou você pode copiá-lo do cabeçalho X-Forwarded-For, acho que a sintaxe seria algo como:

http-request set-header X-Client-IP req.hdr_ip([X-Forwarded-For])
    
por 14.09.2015 / 13:27
4

Se você quiser usar os dois, precisará adicionar o segundo com uma palavra-chave http-request .

# add X-FORWARDED-FOR
option forwardfor
# add X-CLIENT-IP
http-request add-header X-CLIENT-IP %[src]
    
por 14.09.2015 / 13:27
0

A resposta sugerida acima que não funcionou para o KacproSo acabou de ler o valor adicionando &[...] , portanto, isso deve funcionar bem:

http-request set-header X-Client-IP %[req.hdr_ip([X-Forwarded-For])]
    
por 27.09.2018 / 21:23
-2

Você pode instalar um módulo chamado mod_rpaf em seu (s) servidor (es) backend. Isso copia o IP X-FORWARDED-FOR para o X-CLIENT-IP. Para mais informações, consulte this . No Windows, você deve ter módulos semelhantes, algo como os filtros ASAPI X-Forwarded-For.

    
por 14.09.2015 / 13:20

Tags