Como hospedar sua própria VPN com Algo e Cloud Hosting

Uma ilustração digital de um smartphone e laptop conectado a uma VPN.

Empresas em todo o mundo vendem serviços VPN para proteger sua atividade online, mas você pode realmente confiar em um provedor de VPN? Se desejar, você pode criar sua própria rede privada virtual com o software de código aberto Algo e o provedor de hospedagem em nuvem de sua escolha.

VPNs e confiança

Independentemente do que a política de privacidade diga ou se orgulhe das auditorias de segurança em um blog da empresa, nada impede que uma VPN monitore tudo o que você faz online. No final das contas, a escolha de um serviço VPN  depende da confiança.

Se confiar em serviços online sem rosto não é sua praia, uma alternativa é executar seu próprio servidor VPN. Isso costumava ser uma tarefa difícil, mas graças ao projeto de código aberto Algo da empresa de segurança Trail of Bits , criar sua própria VPN agora é fácil.

Por US $ 5 por mês, você pode executar e controlar seu próprio servidor VPN em tempo integral. Melhor ainda, você pode usar o Algo para configurar e desmontar servidores VPN conforme necessário e economizar dinheiro no processo.

Para configurar o Algo, você deve usar a linha de comando. Se isso for desagradável, não se preocupe – iremos orientá-lo em cada etapa.

Essas instruções podem parecer muito, mas isso é apenas porque estamos explicando o máximo que podemos. Depois de criar uma VPN com Algo algumas vezes, não deve demorar muito. Além disso, você só precisa configurar o ambiente de instalação do Algo uma vez. Depois disso, você pode criar um novo servidor VPN com apenas algumas teclas.

Mas você pode confiar que os scripts de Algo não estão fazendo nada desagradável? Bem, a boa notícia é que o código do Algo é público no GitHub para que qualquer pessoa veja. Além disso, muitos especialistas em segurança estão interessados ​​no projeto Algo, o que torna os delitos menos prováveis.

O que Algo pode (e não pode) fazer

Uma VPN é uma boa maneira de proteger sua atividade online – especialmente em uma rede Wi-Fi pública em um aeroporto ou cafeteria. Uma VPN torna a navegação na web mais segura e bloqueia qualquer agente malicioso que possa estar na mesma rede Wi-Fi local. Uma VPN também pode ajudar se o seu ISP restringir certos tipos de tráfego, como torrents.

Mas cuidado, piratas! Baixar o saque através de sua própria VPN não é uma boa ideia, pois a atividade pode ser rastreada mais facilmente até você.

Além disso, se quiser assistir o Netflix em sua VPN, você terá que procurar em outro lugar – Algo não funciona com ele. No entanto, existem muitos serviços comerciais que oferecem suporte ao Netflix.

Pré-requisitos para Algo

Para ter um servidor Algo VPN instalado e funcionando, você precisa de um shell Unix Bash. Em um sistema Mac ou Linux, você pode usar seu programa Terminal, mas no Windows, você terá que ativar o Subsistema para Linux. Veja  como instalar e usar o shell Linux Bash no Windows 10 .

Você também precisará de uma conta em um provedor de hospedagem de servidor em nuvem. Algo oferece suporte a todos os seguintes:

  • DigitalOcean
  • Amazon Lightsail
  • Amazon EC2
  • Vultr
  • Microsoft Azure
  • Google Compute Engine
  • Scaleway
  • Hetzner Cloud
  • Ele também pode ser instalado em instâncias do OpenStack e CloudStack.
Recomendado:  O que é o Peacock Streaming Service da NBC e quais programas ele oferece?

Se você nunca usou nenhum desses serviços, recomendamos o DigitalOcean, pois é muito fácil de usar. É também o serviço que estamos usando neste tutorial. O processo será um pouco diferente se você usar um provedor diferente.

Quando sua conta DigitalOcean estiver pronta, faça login e, a partir do painel principal, selecione “API” na barra esquerda sob o título “Conta”.

Na próxima página, clique em “Gerar Novo Token”. Um token de acesso é uma longa sequência de letras e números que permite o acesso aos recursos da conta sem um nome de usuário e senha. Você precisará nomear o novo token. Geralmente, é uma boa ideia nomeá-lo com o aplicativo que você está usando, como “algo” ou “ian-algo” (se seu primeiro nome for Ian).

A guia "Tokens / Chaves" no menu "Aplicativos e API" no DigitalOcean.
Menu “Aplicativos e API” da DigitalOcean.

Depois que o novo token for gerado, copie e cole-o em um documento de texto em sua área de trabalho. Você precisará disso em alguns minutos.

Configurando Seu Ambiente

De volta à sua área de trabalho, abra uma nova janela de terminal, digite cd (para “alterar diretório,” que é como as pastas são chamadas no mundo Unix) e pressione Enter. Isso garantirá que você esteja trabalhando no diretório inicial do terminal.

Neste momento, Algo requer Python 3.6 ou posterior. Digite o seguinte em seu programa de terminal:

python3 --version

Se você receber uma resposta como  Python 3.6.9, você está pronto para ir; caso contrário, você terá que instalar o Python 3.

Para instalar o Python 3 no Mac, você pode usar o gerenciador de pacotes Homebrew . Quando o Homebrew estiver pronto, digite o seguinte comando em uma janela do Terminal:

brew install python3

Se você estiver usando Ubuntu Linux ou WSL no Windows, eles devem ter o Python 3 por padrão. Caso contrário, os métodos de instalação variam dependendo da sua versão do Linux. Pesquise online por “instale o Python 3 em [insira sua versão do Linux aqui]” para obter instruções.

Em seguida, você precisa instalar o Virtualenv do Python3 para criar um ambiente Python isolado para Algo. Digite o seguinte no Bash em um Mac:

python3 -m pip install --upgrade virtualenv

No Ubuntu Linux e WSL, o comando é o seguinte:

sudo apt install -y python3-virtualenv

Observe que estamos adaptando este tutorial para o Ubuntu e distribuições relacionadas, mas essas instruções também funcionarão para outras versões do Linux com algumas pequenas alterações. Se você estiver usando o CentOS, por exemplo, substitua as instruções aptpor dnf.

Em seguida, precisamos baixar Algo com o wgetcomando. Os Macs não são wgetinstalados por padrão, então, para obtê-lo via Homebrew, digite o seguinte:

preparar wget de instalação
O utilitário wget em uma janela de terminal.
O utilitário wget obtendo os arquivos de instalação do Algo.

Agora, vamos baixar os arquivos do Algo:

wget https://github.com/trailofbits/algo/archive/master.zip

Após o término wget, haverá um arquivo compactado chamado “master.zip” no diretório inicial do seu terminal; vamos verificar isso com ls.

Se você vir “master.zip” na lista de arquivos e pastas que aparece, está pronto para prosseguir. Se não, tente correr wgetnovamente.

Agora, precisamos descompactar o arquivo, então digitamos o seguinte:

descompacte master.zip

Depois de fazer isso, bata lsnovamente. Agora você deve ver uma nova pasta em seu diretório inicial chamada “algo-master”.

Recomendado:  Como gravar a tela no iPhone 12

Estamos quase prontos para a ação, mas primeiro precisamos configurar nosso ambiente isolado e instalar mais algumas dependências. Desta vez trabalharemos dentro da pasta “algo-master”.

Digite o seguinte para alternar para a pasta:

cd ~ / algo-master

Certifique-se de que você está lá com este comando:

pwd

Significa “imprimir diretório de trabalho” e deve mostrar algo como /home/Bob/algo-masterou /Users/Bob/algo-master. Agora que estamos no lugar certo, vamos deixar tudo pronto.

Copie e cole ou digite o comando abaixo em uma única linha (não pressione Enter até o final):

python3 -m virtualenv --python = "$ (command -v python3)" .env && source .env / bin / activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requisitos.txt

O terminal Bash funcionando em uma janela de terminal.

Isso aciona uma série de ações dentro do diretório Algo para se preparar para a execução.

Em seguida, você deve nomear seus usuários para a VPN. Se você não nomear todos eles agora, terá que manter as chaves de segurança (que são menos seguras) ou iniciar um novo servidor do zero mais tarde.

De qualquer forma, digite o seguinte no terminal:

nano config.cfg

Um arquivo de configuração Algo em uma janela de terminal.

Isso abre o editor de texto de linha de comando amigável,  Nano . O arquivo de configuração do Algo contém muitas informações, mas estamos interessados ​​apenas na parte que diz “usuários”. Tudo que você precisa fazer é remover os nomes de usuário padrão (telefone, laptop, desktop) e digitar um nome para cada dispositivo que deseja em sua VPN.

Por exemplo, se estou criando uma VPN para mim, Bill e Mary, o arquivo de configuração pode ter a seguinte aparência:

users: - Ian_PC - Bill_Mac - Mary_PC - Ian_Android - Bill_iPhone - Mary_iPhone

Depois de nomear todos, pressione Ctrl + O para salvar o arquivo, seguido de Ctrl + X para sair.

Estamos quase prontos para a ação, mas primeiro o pessoal do Windows precisa fazer um pequeno desvio. WSL geralmente não define as permissões de usuário corretas para a pasta Algo, o que perturba Ansible (a ferramenta Algo depende para implantar um servidor).

No WSL, digite o seguinte para voltar ao seu diretório inicial:

CD

Em seguida, digite o seguinte:

chmod 755 -R ~ / algo-master

Para voltar à pasta Algo, digite:

cd ~ / algo-master

Running Algo

Arquivos de instalação do Algo em execução em uma janela de terminal.

E agora é a hora da verdade.

Na algo-masterpasta, digite o seguinte na janela do terminal:

./algo

A configuração do Algo deve começar a funcionar. Você saberá que está funcionando quando perguntar qual provedor de nuvem deseja usar. No nosso caso, selecionamos o número (1) para DigitalOcean.

Se Algo falhar, pode haver uma série de razões que não podemos prever aqui. Se o erro disser que seu diretório é “configurável por gravação global”, siga as instruções acima para alterar as permissões.

Se você receber um erro diferente, verifique a página de solução de problemas no repositório do projeto Algo no GitHub . Você também pode copiar a mensagem de erro e colá-la no Google para pesquisá-la. Você deve encontrar uma postagem no fórum que o ajude, pois é improvável que você seja a primeira pessoa a receber esse erro.

Em seguida, você será solicitado a fornecer o token de acesso que copiou anteriormente de sua conta DigitalOcean. Copie e cole no terminal. Você não verá nada porque o Bash não exibe caracteres para entradas de senha e frase de segurança. Contanto que você pressione colar e pressione Enter, porém, deve estar tudo bem.

Recomendado:  Como compartilhar e competir nas metas de atividade do Apple Watch

Se falhar, você pode ter bagunçado a pasta, o que todo mundo faz no Bash. Basta digitar o seguinte para tentar novamente:

./algo

Quando Algo estiver funcionando, responda às perguntas que ele fizer. Tudo isso é bastante simples, como o nome que você deseja dar ao seu servidor (usar “algo” no nome é uma boa ideia).

Em seguida, ele perguntará se você deseja habilitar “Connect on Demand” para dispositivos Mac e iOS. Se você não estiver usando nenhum desses dispositivos, digite N para não. Ele também perguntará se você deseja manter as chaves PKI para adicionar mais usuários posteriormente; geralmente, você digitará N aqui também.

É isso aí! Agora, o Algo levará cerca de 15 a 30 minutos para colocar seu servidor em funcionamento.

Usando Algo

O logotipo da WireGuard.

Quando Algo termina sua configuração, o terminal retorna para um prompt de linha de comando, o que significa que a VPN está pronta para funcionar. Como muitos serviços comerciais, a Algo usa o protocolo VPN WireGuard, que é a novidade mais quente no mundo das VPNs. Isso ocorre porque ele oferece boa segurança, maiores velocidades e é mais fácil de trabalhar.

Como um exemplo do que fazer a seguir, vamos ativar o Algo no Windows. Para configurar outros dispositivos, você pode consultar o repositório Algo no GitHub .

Primeiro, instalaremos o cliente de desktop Windows genérico do site WireGuard . Em seguida, temos que alimentar o programa com nosso arquivo de configuração para o PC. Os arquivos de configuração são armazenados profunda na pasta algo-mestre em: ~/algo-master/configs/[VPN server IP address]/wireguard/.

Existem dois tipos de arquivos para configurar dispositivos de cliente VPN: .CONF e .PNG. Os últimos são códigos QR para dispositivos como telefones, que podem escanear códigos QR. Os arquivos .CONF (configuração) são arquivos de texto para os clientes desktop WireGuard.

No Mac e no Ubuntu, não deve ser difícil encontrar a algo-masterpasta fora da linha de comando. Em Macs,  algo-masterestá na pasta Home; basta usar Finder> Ir> Home para chegar lá. No Ubuntu, você pode abrir o Nautilus e ele estará na pasta Home.

No Windows, entretanto, WSL é separado do resto do sistema operacional. Por esse motivo, é mais fácil copiar os arquivos com a linha de comando.

Usando nosso exemplo anterior, digamos que desejamos que o arquivo de configuração “Mary-PC.conf” seja usado em um PC com Windows 10. O comando seria mais ou menos assim:

cp ~ / algo-master / configs / [endereço IP do servidor VPN] /wireguard/Mary-PC.conf / mnt / c / Users / [nome da sua conta de usuário do Windows] / Desktop /

Observe o espaço entre Mary-PC.confe /mnt/; é assim que o Bash sabe onde o arquivo a ser copiado está localizado e para onde vai. As maiúsculas e minúsculas também são importantes, portanto, certifique-se de digitar maiúsculas onde especificado.

É natural no Windows querer capitalizar o C na unidade “C: \”, mas no Bash isso não acontece. Além disso, não se esqueça de substituir os bits entre colchetes pelas informações reais do seu PC.

Por exemplo, se sua pasta de usuário estiver na unidade “D: \”, não em “C: \”, substitua /mnt/c/por /mnt/d/.

Assim que o arquivo for copiado, abra o cliente WireGuard for Windows. Clique em “Importar túneis do arquivo” e selecione seu arquivo de configuração na área de trabalho. Depois de fazer isso, clique em “Ativar”.

Em apenas alguns segundos, você estará conectado à sua própria VPN!