Como configurar uma VPN para sua equipe de desenvolvimento web

Publicados: 2021-10-11

A principal característica da Internet moderna é sua disponibilidade constante. Não há necessidade de armazenar dados localmente, que são rapidamente acessíveis pela rede. Mais problemas surgem se esses dados repentinamente ficarem indisponíveis em um momento imprevisível. A maioria dos desenvolvedores trabalha remotamente e pode não ter recursos se vier de determinadas partes. Neste artigo, veremos como você pode configurar uma VPN para sua equipe de desenvolvimento web.

Problemas comuns da Internet

O que significa praticamente a inacessibilidade de um recurso da Internet?

- Algumas bibliotecas não são baixadas - o ambiente de desenvolvimento do projeto não vai acontecer. Este é o principal e maior problema!

- Zoom, Slack ou Telegram não funcionam - você não poderá entrar em contato com colegas.

- Alguns sites estão indisponíveis, por exemplo, GitHub - é impossível publicar seu trabalho.

Esses nem todos são exemplos possíveis, mas mesmo eles podem reduzir significativamente a produtividade da equipe.

Quem é culpado?

Na prática, as restrições descritas acima geralmente são implementadas pelo provedor de Internet. E não faz sentido culpar o provedor por eles porque as restrições foram introduzidas pelos atos administrativos dos estados. O provedor deve estar envolvido nos negócios, não na luta política.

Mas às vezes, o provedor acaba sendo um vilão. Por exemplo, por algum motivo desconhecido, eles podem bloquear o tráfego em portas TCP específicas ou modificar o tráfego http não criptografado e alterar o código html da página, adicionar anúncios. Isso é o que você espera de alguns golpistas, mas certamente não de uma grande empresa, por isso é duplamente desagradável (se você estiver interessado, pesquise no google "publicidade em sites de outras pessoas").

O que fazer?

Uma vez que a escala do problema deixou claro que ele deve ser resolvido no nível da empresa e não deixado à mercê dos membros da equipe, você pode usar a tecnologia VPN.

VPN é uma rede privada virtual. Este é o nome de um grupo de tecnologias que permitem criar uma rede virtual de computadores fisicamente inexistente (sobreposição) com base em uma rede de computadores física existente.

Isso oferece oportunidades adicionais para aumentar a privacidade. Em uma rede física, como primeira aproximação, seu tráfego está disponível para todos os participantes da troca de rede, todos os roteadores, etc. Não há participantes adicionais na rede virtual, apenas você e o ponto ao qual você se conecta. Se você estiver configurando um para sua equipe de desenvolvimento web, este é um servidor VPN. Um túnel criptografado está sendo colocado entre vocês dois.

As interfaces de rede virtual TUN são criadas na máquina cliente e no servidor. A troca de dados criptografados ocorre diretamente entre eles. Seus dados estão efetivamente protegidos contra ataques man-in-the-middle (MITM). Ninguém que tenha acesso físico aos equipamentos por onde passa seu tráfego pode interceptar ou substituir suas informações.

Também permite acessar recursos não disponíveis em sua rede doméstica, mas disponíveis no servidor VPN.

Com a tecnologia VPN, o cliente torna-se parte da sub-rede da qual o servidor faz parte. E pode acessar os recursos desta sub-rede. Isso pode ser usado para contornar restrições e resolver qualquer outro problema que exija uma conexão remota e segura a uma sub-rede.

Escolhendo uma implementação de VPN

Decidir não é fazer. Existem várias implementações de tecnologia VPN gratuitas comuns. Você pode tentar esta avaliação gratuita do Surfshark VPN para ter uma experiência do que você pode obter.

O que mais você pode escolher depois de obter a VPN certa

IPsec é um conjunto de protocolos para transmissão segura de dados. Surgiu em meados dos anos 90. É grande e flexível, mas difícil de configurar e de baixo nível. Muito complicado para alguns propósitos.

WireGuard é um projeto jovem (2015) que visa a rápida preparação para o trabalho. Potencialmente mais rápido na transferência de dados do que VPNs diferentes, usa protocolos de criptografia mais modernos – multiplataforma, disponível em todos os principais sistemas. A desvantagem é a mesma que a vantagem. Para garantir uma instalação rápida e fácil, muitas decisões de baixo nível são tomadas no núcleo do programa. Por exemplo, o uso do protocolo UDP, que pode não ser eficaz para todos.

Escolhendo a maneira de começar e usar

Manualmente

A maneira mais óbvia é alugar um VPS, conectar via SSH e criar um servidor seguindo o guia. Este é um processo bastante demorado devido a muitos comandos e arquivos que precisam ser movidos manualmente.

Com esse método, toda vez que você criar um novo servidor, terá que fazê-lo novamente. Para economizar tempo, você pode usar sistemas de gerenciamento de configuração ou sistemas de conteinerização.

Os sistemas de gerenciamento de configuração são softwares que permitem automatizar a configuração de servidores remotos (puppet, ansible, etc.). A vantagem dessa abordagem é que você pode configurar um servidor VPN remoto em alguns comandos. E todas as configurações, modelos de configuração são explicitamente colocados em formato de texto na máquina controladora. Você mesmo pode criar um script de implantação ou usar um pronto, por exemplo, no GitHub.

Uma abordagem ligeiramente diferente é adotada em sistemas de conteinerização. O sistema de conteinerização virtual mais comum é o docker. Instalar um contêiner docker com uma VPN em um servidor remoto pode ser ainda mais rápido do que instalar um servidor via ansible, o que é uma vantagem. No entanto, a lista de configurações disponíveis pode ser limitada pelos desenvolvedores de imagem. As imagens são arquivos binários, portanto, pode não funcionar se você precisar corrigir alguma configuração exótica.

Arquitetura do Servidor

Primeiro, como já mencionado, a tecnologia VPN pode ser usada para conectar, por exemplo, a uma sub-rede fechada por meio de um computador que faz parte dessa sub-rede e, ao mesmo tempo, um servidor VPN. Se você tiver recursos valiosos em sua sub-rede, não gostaria que ninguém se conectasse ao servidor VPN. Para fazer isso, a maioria das VPNs geralmente a torna uma máquina separada, não vinculada a nenhuma rede, talvez em um cofre (sem brincadeira). E as solicitações de assinatura e certificados assinados são transferidos para mídia removível.

Início do servidor

Para executar o script ansible, você precisa instalar o ansible em seu computador, alugar um servidor virtual com Debian/Ubuntu e configurar o acesso ao servidor via SSH. Ao alugar um servidor, lembre-se de que alguns serviços não permitem a criação de uma interface tun ou o encaminhamento de pacotes. Por favor, verifique isso antes de comprar.

Toda interação com o servidor é realizada por três comandos:

1. Execute o script para criar um servidor e uma autoridade de certificação.

2. Registro de um novo usuário.

3. Revogue um certificado pelo nome do cliente.

O desenvolvimento de maneiras de contornar bloqueios é em muitos aspectos semelhante à relação entre predadores e presas na natureza. Para cada novo movimento, há um contra-movimento. As conexões VPN não são exceção.

Ao usar uma VPN, você pode usar vários recursos de rede. Mas, como todos os dados vão para você através do túnel do servidor VPN, para o provedor, parece que você está trocando dados com apenas um endereço IP.