Como rotear o tráfego através de diferentes servidores proxy com base no destino

2

Antecedentes

Eu trabalho em uma rede corporativa que está por trás de um servidor proxy. Eu também trabalho com alguns sites remotos que eu posso acessar através de um proxy ssh bastion / jump host.

No meu ~/.ssh/config , eu tenho uma configuração de proxy para meus túneis SSH que permitem o salto através de nossos hosts de bastiões para alcançar os laboratórios remotos

Host *.remoteLab1
    ProxyCommand ssh -l USERNAME BASTIONHOST1 nc %h %p

Host *.remoteLab2
    ProxyCommand ssh -l USERNAME BASTIONHOST2 nc %h %p

Eu uso o OSX e o Linux, então presumo que os comandos sejam mais ou menos os mesmos

Solução Atual

Minha solução atual é menos que ideal. Eu basicamente faço uma conexão de meias com um dos laboratórios remotos, como:

ssh -D 1080 remoteLab1

ssh -D 1081 remoteLab2

Em seguida, em realvnc e chrome , altero o servidor proxy para localhost:1080 / localhost:1081 . No chrome eu tenho um plugin que me permite fazer isso e no VNC seu manual.

Como ambos os laboratórios remotos têm um domínio único, eu queria saber se há uma maneira mais fácil de jogar com tabelas de roteamento para enviar todo o tráfego através desses proxies de meias com base no endereço IP

Solução Solicitada

DADO: Um túnel socks5 está aberto na porta 1080

DADO: Um túnel socks5 está aberto na porta 1081

Requisitos

  • endereços de domain1.org passam por 1080
  • endereços de domain2.org passam por 1081
  • cair no caso - tudo mais passa pelo servidor proxy padrão

Bom-para-se

  • A solução não é permanente - é ativada por um script em conjunto com a ativação de um dos túneis de meias

É possível também mapear endereços IP específicos em oposição a domínios através de um dos servidores proxy

Idéias

Não tenho muita certeza de onde começar tudo isso. Uma solução que vi em algum lugar foi usar um proxy.pac no entanto, a rede corporativa já tem um proxy.pac e eu não tinha certeza se há uma maneira de fazer um pac se não no meu% co_de personalizado % então use as configurações no corporativo .pac

Usando o comando .pac ou iptables - no entanto, ambos estão um pouco fora do meu conhecimento

Configurando loopbacks locais ou algo

    
por Jeef 19.09.2015 / 12:50

1 resposta

3

Recomendo que você altere seu ProxyCommand de usar nc para usar -W . Por exemplo:

ProxyCommand ssh -l USERNAME BASTIONHOST1 -W %h:%p

Isso tem menos requisitos para o host de bastiões, portanto, é menos provável que ele seja interrompido caso o administrador decida alterar a configuração do host bastião.

Eu não acho que haja alguma maneira de passar entre diferentes arquivos pac. Mas você pode mais ou menos apenas concatenar os dois arquivos pac - com uma pequena advertência. O ponto de entrada existiria em ambos os arquivos. Você precisaria renomear o ponto de entrada no arquivo pac original e em suas próprias adições você pode fazer chamadas para a versão renomeada da função.

Historicamente, o ponto de entrada era uma função chamada FindProxyForURL. Alguns navegadores mais recentes têm extensões que são ativadas usando um ponto de entrada com nomes diferentes.

    
por 20.09.2015 / 11:18