×

Mensagem de aviso

  • Cisco Support Forums is in Read Only mode while the site is being migrated.
  • Cisco Support Forums is in Read Only mode while the site is being migrated.
This document is locked

Inserindo endereço IP do cliente no cabeçalho HTTP

Documento

seg, 01/09/2012 - 10:03
jan 9th, 2012
User Badges:

Introdução


          Existem cenários onde é necessário configurar NAT para as conexões de entrada, ou configurar o ACE com suporte ao SSL, fazendo com que seja efetuado proxy para as conxões destinadas aos servidores reais. Devido ao fato de ser realizado proxy para as conexões destindas aos servidores de backend, na visão do servidor real todas as conexões possuem como origem o endereço do ACE, e consequentemente os logs gerados com base no endereço de origem registram o endereço IP do ACE, podendo causar problemas para ferramentas de estatísticas de acesso que adotam as entradas de LOG como base para geração dos relatórios.

Como solução, o ACE permite que ao efetuar requisições para os servidores reais, seja inserido o endereço IP do cliente real no cabeçalho HTTP, e posteriormente esta informação possa ser utilizada pelo servidor WEB para gerar os LOGS.


NOTA: Em modo de terminação SSL o ACE efetua proxy para as conexões destinadas aos servidores reais;



Configurações ACE


1- Acessar o contexto responsável;

changeto <contexto>


2- Entrar em modo de configuração;

configure terminal


3- Ajustar o policy-map responsável;

policy-map type loadbalance http first-match <NOME>

  class class-default

    insert-http x-forwarded-for header-value "%is"


NOTA: Não é possível manipular o cabeçalho caso a conexão SSL seja realizada diretamente entre o cliente e o servidor real.

         Ex: balanceamento TCP simples para porta 443.


Configurações Apache


          Ajustar o arquivo de configuração do apache para incluir o valor especificado no campo x-forwarded-for do cabeçalho HTTP na coluna referente ao endereço do requisitante.


1- Formato padrão especificado nas configurações do apache;

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combine


2- Criar um novo formato denominado "proxy" que utilize o valor do campo X-Forwarded-For especificado no cabeçalho;

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy


3- Criar uma condição para validação se o campo X-Forwarded-For contém VALOR.VALOR.VALOR.VALOR;

SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded


4- Configuração de condição para efetuar log utilizando o formato adequado case exista ou não o campo X-Forwarded-For com um valor válido;

CustomLog "logs/access_log" combined env=!forwarded

CustomLog "logs/access_log" proxy env=forwarded


NOTA: O Campo X-Forwarded-For pode possuir múltiplos valores caso tenha passado por múltiplos proxies que tenham manipulado seu valor.
Overall Rating: 0 (0 ratings)
Loading.

Ações

This Document

Related Content