Criando VPN “kill-switch” usando o SOCKS

0

Eu quero rotear todo o tráfego para aplicativos específicos (por exemplo, o Firefox suporta SOCKS) por meio de VPN. Meu provedor de serviços VPN oferece configurações (host SOCKS, porta) para o protocolo SOCKS5. Se entendi corretamente, SOCKS5 "fornece autenticação para que somente usuários autorizados acessem um servidor", neste caso minha conta VPN e é obrigatório para este fim.

É obrigatório também usar um servidor DNS relacionado (esse serviço VPN possui um servidor DNS próprio, mas o desempenho pode não ser alto) ou essa configuração funcionará com qualquer endereço DNS? Minha conexão com a Internet caiu quando a conexão VPN cai, mas o servidor DNS ainda está acessível? E quanto ao vice-versa?

    
por user598527 04.07.2017 / 15:51

2 respostas

1

A navegação na Web é baseada em dois protocolos principais: DNS e HTTP (S).

  • O DNS é usado para traduzir um nome de domínio (por exemplo, superuser.com ) em um endereço IP (ou seja, 123.45.67.89 ).
  • O HTTP realmente transporta as páginas da web & outros dados.

Quando você se conecta a https://superuser.com/ , seu computador perguntará primeiro ao servidor DNS qual é o IP de superuser.com . Vamos supor que ele responda 123.45.67.89 . Seu computador perguntará 123.45.67.89 para a página da Web localizada em https://superuser.com/ .

O problema é que 123.45.67.89 não sabe em qual DNS você entrou em contato ou se entrou em contato com um.

Quando você usa um proxy SOCKS, toda vez que seu computador quiser conversar com um servidor, ele primeiro pedirá ao servidor SOCKS para retransmitir a mensagem. O Sr. SOCKS perguntará primeiro ao DNS sobre o IP de superuser.com e, em seguida, solicitará 123.45.67.89 da página em https://superuser.com/ .

O problema é que, na maioria das vezes, na configuração inicial, o DNS padrão é sua caixa da Internet, que usa seu IP local . Isso significa que seu proxy SOCKS (que está fora da sua rede local) não poderá contatá-lo. Você precisa alterar seu DNS para um externo, mas não precisa usar especificamente o fornecido pelo seu provedor SOCKS (você pode usar 8.8.8.8 e 8.8.4.4 , que são DNSs gratuitos fornecidos pelo Google).

Agora, o fato de o servidor SOCKS retransmitir seu tráfego obviamente significa que, se o SOCKS estiver inativo, você não poderá acessar a Internet, a menos que você desative as configurações de proxy.

Uma última coisa: você deve ter notado que nunca usei "VPN" nesta resposta. Isso porque o SOCKS não é um protocolo VPN.

    
por 04.07.2017 / 16:13
0

Eu não posso comentar, então eu respondo aqui.

Como Nathan disse corretamente antes, o SOCKS e o VPN são coisas diferentes. Ambos podem ou não ter sua própria autenticação (pelo menos do SOCKS5). O primeiro é usado para proxy protocolos de camada 7 (por exemplo, o protocolo de software) enquanto VPNs são projetados para conectar dois pontos com o cabo de rede virtual criptografado (por exemplo, eles estão tunelando a "rede").

Você pode ter os dois. Você pode usar http (s) over socks5 over vpn. Não é incomum entre os serviços de anonimato.

O serviço DNS necessário para traduzir os nomes legíveis para os números IP, pode ou não ser tunelado por VPN ou SOCKS. A configuração mais simples da VPN irá tunelar tudo sobre a VPN, dessa forma também o tráfego DNS. Se suas consultas DNS passarem pelo SOCKS ou não, depende do cliente. Por exemplo, você pode dizer ao firefox para usar dns sobre socks configurando network.proxy.socks_remote_dns para true em about: config.

Se você não passar DNS resolve sobre socks, você pode usar qualquer resolvedor que quiser, incluindo o resolvedor de caixa.

Se você estiver usando essa configuração para obter anonimato (para o qual eu sugiro que você adicione TOR à configuração), talvez você não queira permitir que as consultas DNS sigam o caminho padrão, pois há uma pequena chance de que você possa ser rastreado por esses pacotes (os nomes de sites que você conheceu).

    
por 04.07.2017 / 16:56