Publicação de vários servidores da web com proxy reverso no host local, mantendo o IP e o nome do host originais do cliente

1

Eu tenho usado o ISA no Windows Server 2003 para publicar vários servidores da Web hospedados na mesma máquina. Configure da seguinte maneira:

  • Listener ISA HTTP / S vinculado a 127.0.0.1 + IP externo
  • IIS vinculado a 127.0.0.2
  • Apache vinculado a 127.0.0.3
  • Aplicativo da web em Python vinculado a 127.0.0.4
  • Aplicativos personalizados vinculados a 127.0.0.x

Eu poderia rotear solicitações dependendo do nome do host para o servidor específico, configurando as regras de publicação no ISA. O ISA me permitiu manter o IP do cliente original e o nome do host solicitado e tinha vários outros recursos, como validação de solicitação, mapeamento de URL, regravação e armazenamento em cache.

Agora estou no Windows Server 2008 R2, o ISA não funciona aqui, o TMG é um PITA enorme (e nem funciona com a minha configuração de IP - gw padrão 10.255.255.1, máscara de sub-rede 255.255.255.255 ), e ISA geralmente provou ser difícil quando se tratava de RPC e outro tráfego de rede interna. Então eu estou procurando uma maneira de fazer o mesmo, especialmente quando se trata de manter o IP do cliente original. Eu tentei Faststream IQ Proxy, que parecia promissor, especialmente porque ele instalou seu próprio driver NDIS, e a publicação do servidor funcionou bem, mas o IP do cliente está sempre perdido. Delegado e Squid podem ser candidatos. mas eles não instalam nenhum driver de camada de rede, então parece impossível para eles manter o IP do originador.

Atualmente, estou executando o IIS no IP externo e 127.0.0.1 e usando o ARP com o Proxy Reverso para publicar outros servidores; no entanto, ele não funciona muito bem e o IP do cliente ainda é perdido para os servidores com proxy. Para ser honesto, é uma merda, e eu realmente sinto muito que o IIS 7.5 ainda não inclua uma solução de proxy reversível viável como a ISA anos atrás.

Alguém conhece um software que arquiva os mesmos efeitos de publicação de servidor web como no ISA, de preferência com uma GUI decente (eu também poderia viver com arquivos de configuração), que reverte as solicitações de proxies para servidores web locais, sem perder informações de nome de host e IP original do cliente? Ou estou condenado a fazer com que o TMG funcione na minha configuração?

    
por Alexander Gräf 04.12.2011 / 22:05

2 respostas

1

Você provavelmente não precisa manter o IP original no cabeçalho TCP real. Muitas configurações de proxy reverso permitirão passar o endereço IP original de que a solicitação foi feita como um cabeçalho HTTP. (Veja, por exemplo: diretiva de configuração do Squid enviada para .)

O

Apache com o mod_proxy também faria o truque e também adicionaria o X-Forwarded- Para cabeçalhos para tráfego com proxy reverso. Isso pode ser conveniente, pois você já tem o Apache em execução na máquina.

    
por 04.12.2011 / 22:21
1

Apenas para registro, o TMG pode ser instalado com alguns truques:

  1. Instale o adaptador Microsoft Loopback (hdwwiz)

  2. Defina um endereço estático no intervalo de IP privado (por exemplo, 10.0.0.1/255.0.0.0, sem GW padrão) para o adaptador de loopback e desative o registro de DNS nas configurações de TCP / IP do adaptador

  3. Instalar TMG

  4. Atualize o TMG para o SP1 ou use uma instalação de bootstrap

  5. Opcional: promova para o DC / RODC

  6. Opcional: se o servidor for um DNS, adicione o adaptador "real" como HKLM \ SYSTEM \ CurrentControlSet \ Services \ DNS \ Parameters \ PublishAddresses, para que o endereço privado não seja publicado

  7. Vincular o IIS com netsh http iplisten a 127.0.0.1 e 10.0.0.1

  8. Use regras de publicação de servidor no TMG para publicar 10.0.0.1

  9. Registre endereços adicionais no adaptador de loopback e ligue seus aplicativos aos endereços (10.0.0.2, 10.0.0.3, etc), para publicá-los também no TMG

Não tão suave quanto no ISA, mas funciona. Certifique-se de instalar o TMG antes de promovê-lo para o DC, porque ele não é suportado pela Microsoft para ter o TMG instalado em um DC

    
por 18.06.2012 / 12:30