Eu tenho acesso SSH a uma caixa de salto no meu trabalho. Esta caixa de salto dá acesso à infra-estrutura de rede completa no trabalho. Isso é ótimo para trabalhar em casa.
Sou capaz de executar um proxy SOCKS5 na caixa de salto (via ssh -D
) e consegui configurar meu navegador para usar esse proxy SOCKS5 para hosts de trabalho (via https://getfoxyproxy.org ). Foxyproxy parece encaminhar solicitações de DNS para esse proxy SOCKS5, então tudo está funcionando bem.
Meu problema é que outras ferramentas, como Maven (para construir Java), são capazes de usar um proxy SOCKS5, mas não conseguem encaminhar DNS por ele, infelizmente. Esta é uma limitação conhecida, até onde eu sei. Então acabei adicionando meus servidores de trabalho ao /etc/hosts
.
Procuro uma solução mais dinâmica e definitiva, para tirar o peso de ter que manter arquivos /etc/hosts
. Em essência, eu gostaria de continuar usando meu servidor DNS de ISPs a partir de agora, mas quero encaminhar solicitações de DNS para meus servidores de trabalho (e apenas para eles) para essa caixa de salto (via SSH ou proxy SOCKS5).
Isso é possível?
Resposta parcial:
Você não pode encaminhar seletivamente solicitações de DNS para hosts específicos em geral (como o Foxyproxy pode lidar com solicitações específicas para hosts ou caminhos específicos).
A única coisa que você pode fazer é executar um proxy DNS em algum lugar que responda a solicitações de hosts específicos ou encaminhar solicitações seguindo padrões específicos para servidores específicos.
Um proxy DNS popular é o
dnsmasq
. Você pode configurá-lo para encaminhar solicitações de DNS para diferentes servidores com base em um padrão .Portanto, você teria que executar
dnsmasq
em sua máquina local, usá-lo para resolução de DNS em sua máquina local e configurá-lo para usar o servidor DNS do ISP e o servidor DNS do host de salto como servidores DNS upstream. Isso exigirá um pouco de trabalho para obter a configuração correta, em particular para fazer com que ela selecione um DNS fornecido dinamicamente ao seu servidor (do seu ISP) e um fornecido estaticamente.É exatamente para isso que o sshuttle foi feito