Como configurar um proxy “filho” que não precisa de um proxy “pai”

3

Eu executo o Linux em um laptop que às vezes está em uma rede corporativa que usa um servidor proxy NTLM e, portanto, tenho o cntlmd sendo executado no laptop como um proxy filho para se conectar ao servidor proxy pai (corporativo). Tudo em execução no laptop é configurado para usar localhost: 3128 (o endereço de proxy CNTLM) e, em seguida, o cntlmd manipula a autenticação não padrão com o servidor proxy NTLM.

Quando tiro o laptop da rede corporativa, talvez haja uma dúzia de lugares diferentes em que as coisas estão configuradas para usar o host local: 3128, e é difícil desativá-lo e depois reativá-lo novamente.

Aparentemente, não é possível configurar o cntlmd para não usar um proxy quando o que ele está configurado para usar estiver indisponível.

Uma opção é escrever um script que automatizará todas essas alterações para mim, mas parece que pode ser mais simples ter um segundo proxy filho que eu possa (automaticamente) inicializar quando a inicialização do cntlm falhar (falha se não consegue encontrar o proxy pai). O segundo proxy filho apenas se conectaria diretamente à rede e, portanto, se ele também escutasse no 3128, tudo configurado para atingir o 3128 poderia manter sua configuração igual.

O que eu posso usar para fazer isso? (Ou há uma maneira melhor?)

    
por iconoclast 15.08.2013 / 20:51

1 resposta

0

E quanto proxy.pac

é apenas um JavaScript, você pode hospedar este arquivo em uma máquina local ou em qualquer servidor da web em sua intranet e configurar no lado do cliente file:///opt/proxy.pac usando esse script que você pode fazer balanceamento de carga com seu proxy. Além disso, você pode dividir o tráfego usando intervalos de ip neste script java, existem vários recursos como proxy de bypass para determinado site.

Ele fará:

  • se o Proxy não estiver disponível, instruirá o navegador para ir direto.
  • ignorar proxy para alguns sites (basicamente, algum site não funciona por meio de proxy)
  • ignorar proxy para servidores locais da intranet
  • assim por diante.

Exemplo de arquivo PAC

function FindProxyForURL(url, host) {
    // our local URLs from the domains below example.com don't need a proxy:
    if (shExpMatch(host, "*.example.com"))
    {
            return "DIRECT";
    }

  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 10.0.0.100:8080; PROXY 10.0.0.101:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}
    
por 16.08.2013 / 17:13