Privacidade com sua própria VPN

Privacidade com sua própria VPN

Há quem já utilize uma VPN para entretenimento, por exemplo, para assistir uma série ou filme na Netflix que não está disponível no Brasil.

Em uma utilização corporativa uma VPN é muito mais útil do que apenas assistir vídeos, ela pode mascarar sua conexão, enganando o servidor de destino.

Cada vez mais empresas americanas contratam profissionais de outros países e continentes para prestar serviços desde desenvolvimento como Facilities (compra de suprimentos). Alguns websites americanos, especialmente lojas online bloqueiam acessos de alguns países.Em um cenário como este, uma VPN pode ser a solução.

Uma VPN nada mais é que um túnel de acesso, ou seja, ao invés de você navegar pela internet através do provedor de acessos local (TIM, Vivo, Claro, etc…), você utiliza sua conexão com a internet apenas para fazer a conexão com o servidor VPN e este servidor será sua nova origem dos dados. Essa mecânica engana os websites e mesmo morando em um continente bem longe dos Estados Unidos, você conseguirá acessar os websites desse país, desde que o seu servidor VPN esteja localizado nos USA.

Além disso, uma conexão VPN é uma conexão muito mais segura pois ela é criptografada de ponta-a-ponta.

Nossos objetivos para este artigo serão:

  1. Navegar em um ambiente seguro, onde nossos dados não sejam expostos nem mesmo para o provedor de acesso que estamos utilizando;
  2. Mascarar nosso endereço IP para que consigamos acesso a websites bloqueados fora dos Estados Unidos.

Ambiente e Ferramentas

Para este artigo, vamos utilizar uma conta na Amazon Web Services (AWS). Mas não se preocupe, vamos utilizar um servidor que faça parte da cota gratuita da AWS. Para adiantar o trabalho, recomendo que você já crie, se ainda não tiver, sua conta na AWS.

Existem vários softwares servidores de VPN, o mais famoso talvez seja o OpenVPN, mas para este artigo vamos utilizar o Pritunl.

Como queremos apenas navegar pela internet em um ambiente mais seguro e acessar websites americanos bloqueados fora dos Estados Unidos, o Pritunl resolverá o nosso problema de uma forma simples e segura.

De forma didática, e também para que você consiga avançar de forma gradual, vamos seguir este passo-a-passo.

Passos

  • Setup AWS.
  • Criar um servidor EC2 - Free tier.
  • Instalar as atualizações do SO.
  • Pritunl.
  • Instalação.
  • Configuração.
  • Usuário, Empresa e Servidor.
  • Regras de Firewall.
  • Cliente VPN.
  • Instalação e configuração.
  • Teste de conexão.

Setup AWS

Não vou cobrir neste tópico a criação de uma conta na AWS e configurar o acesso a um servidor EC2 utilizando uma chave. Assumo este, esses passos já estão concluídos em sua conta AWS.

Criando o servidor

Tendo o console da AWS aberto, abra o Painel EC2 procurando na caixa de busca por EC2. Em seguida clique em EC2.


Com o painel de controles das suas instâncias EC2 aberto, clique no botão com a descrição Executar instância.

Na próxima tela, vamos fazer as configurações necessárias, tendo como alvo a seleção de uma instancia do tipo Free tier que utilize o sistema operacional Ubuntu.

Siga o passo-a-passo abaixo:

  • Nome: pritunl-vpn.
  • Imagens: Ubuntu.
  • AMI: Ubuntu Server 22.04 LTS → Qualificado para o nível gratuito.
  • Tipo de instância: t2.micro → Qualificado para o nível gratuíto.
  • Par de chaves: selecione alguma par de chaves que você já possua ou crie um novo caso necessário.
  • Configurações de rede: Marque o checkbox de Permitir tráfego SSH, HTTPs e HTTP. Todos de qualquer lugar (0.0.0.0/0)
  • Após marcado os check boxes, selecione Editar, no campo descrito como Atribuir IP público automaticamente, selecione como desabilitar.

O restante das configurações deixe como padrão e clique em Executar intância, em alguns segundos você terá uma instância nova para iniciar os procedimentos de atualização dos pacotes e instalação do Pritunl.

Par de chaves e Tráfego de rede.
Desabilitando a atribuição de IP público automaticamente.


Vamos criar um IP fixo para esta instância, pois queremos manter este IP para nossas futuras conexões, mesmo que a máquina seja desligada ou reiniciada.

Abra o painel de controle EC2 e selecione IPs elásticos e clique em Alocar endereço IP elástico. Na tela seguinte apenas clique no botão Alocar e um IP público será alocado para sua conta e pronto para ser associado a uma instância EC2.

Alocar um novo IP público.

Com o novo IP alocado, é hora de associar o IP a sua instância Pritunl que está em execução.

Na lista de IPs alocados, selecione o IP criado e então clique em Ações e em seguida, Associar endereço IP elástico.

Associar o IP alocado.

Na próxima tela, clique na caixa de texto Instância e selecione a instância EC2 recém criada para o nosso servidor Pritunl. No meu caso, o nome dela é pritunl-vpn. Em seguida, clique em Associar.


Note que neste exemplo, o IP público associado foi o 3.13.195.58.

Selecione a sua instância EC2. Repare que no campo Endereço IPv4 público este IP já está associado a nossa instância, ou seja, o endereço que utilizaremos para acesso do nosso servidor VPN é o 3.13.195.58.


Atualizando os pacotes

Vamos fazer o primeiro acesso à instância utilizando a chave de segurança selecionada no momento da criação da instância.

Certifique-se de que a chave esteja segura (chmod 400 revelo-vpn.pem).

Para acessar nosso servidor, estando no mesmo diretório onde a sua chave de acesso está localizada, digite ssh -i revelo-vpn.pem ubuntu@3.13.195.58.

Troque o endereço de IP (3.13.195.58) pelo IP público associado que foi criado na sua conta AWS.


Agora vamos instalar alguns pacotes básicos e também atualizar os pacotes do servidor com os comandos:


Pritunl

Para a instalação do Pritunl é necessário adicionar algumas chaves de segurança e alguns repositórios não comuns na distribuição do Ubuntu.

O Pritunl utiliza o banco de dados MongoDB para armazenar as configurações.

Instalação

Vamos adicionar os repositório através dos comandos abaixo:

E também vamos adicionar as chaves públicas para os repositórios do MongoDB e para o Pritunl e em seguida atualizaremos o sistema:

Uma vez feito o setup dos repositórios, podemos prosseguir com a instalação propriamente dita do MongoDB e do Pritunl com o seguinte comando:

Após a instalação, inicialize e habilite ambos os serviços:

Você pode checar se os serviços estão em execução através do comando:

O resultado deve ser algo como este:

Uma vez que o Pritunl está em execução, o próximo passo é gerar uma setup-key para o Pritunl. Vamos utilizar essa chave no próximo passo para a configuração e segurança do banco de dados.

Na linha comando execute:


O resultado será uma hash, copie esta hash e através do seu browser, acesse o endereço IP público do seu servidor. Você receberá uma mensagem dizendo que a conexão não é segura, mas tudo bem, foi você mesmo que criou o servidor.

Após a confirmação, você deverá ver uma tela parecida com essa:


Cole aquela hash gerada pelo comando de setup-key e clique em Save.

Pronto, até aqui o nosso banco de dados já está configurado e seguro.

Próximo passo é gerar os dados de acessos iniciais.

Você verá uma tela parecida com a seguinte:


Siga as instruções e na linha de comando digite:


Como resposta ao comando, você agora tem dois dados: o usuário padrão (pritunl) e uma senha auto-gerada. Copie e cole as duas informações na tela anterior e clique em Sign in.

Na próxima tela, será exibida uma interface solicitando algumas informação que podem ser configuradas mais tarde. Eu sugiro fortemente que pelo menos duas informações sejam alteradas: 1) Username e 2) New Password.

Este Usuário e senha será a nova credencial para acesso ao painel do Pritunl.

Agora você já tem o servidor rodando. No próximo tópico vamos prosseguir com a configuração de usuários e organizações dentro do servidor.

Configuração

O Pritunl segue a hierarquia: Usuário > Organização > Servidor cada item tem suas particularidades quanto a configuração.

Como estamos utilizando a versão Free do Pritunl, estamos limitados a apenas um Servidor, o que é mais que o suficiente para o nosso caso.

Criando uma Organização

Vamos começar a configuração criando uma Organização.

No menu superior, clique em Users e em seguida no botão Add Organization.


Na caixa de diálogo, dê um nome para a sua organização. No meu caso, dei o nome de Org-007.


Criando um Usuário

Com a organização criada, agora chegou a hora de criar um usuário, clique no menu superior Users e em seguida no botão Add User.

Este será o usuário com direito de acesso a VPN. Não confunda com o usuário que tem direito a acesso ao console do Pritunl.

Informe um nome e um pin. No meu caso, escolhi como nome JamesBond-007 e o pin 7000007.

Criando um Server

Com o Usuário e uma Organização criada, precisamos criar um servidor e anexar a organização no servidor.

Para isto, clique no menu superior: Servers e em seguida no botão Add Server.

Na próxima janela, dê um nome para o servidor e clique no botão Add. No meu caso, vou seguir com Secret-Server.


Vamos seguir com a associação da nossa organização, e de todos os usuários criados nela, no nosso servidor.

Clique no botão Attach Organization. Por padrão, os campos já virão preenchidos, bastando apenas clicar em Attach:

Em seguida, clique no botão Start Server.

Regras de Firewall

O último passo é a liberação da porta de acesso do nosso servidor para acesso dos clientes.

Clicando em Server, repare que este servidor tem uma porta específica para acessos. Essa porta deve ser liberada no Routing Tables do nosso servidor na AWS.

Em nosso caso, a porta especificada foi a 17551/udp.

No console da AWS, selecione a sua instância EC2 em execução e clique na aba Segurança. Em seguida, clique no link de Grupos de segurança.


Você será redirecionado/a para as configurações do firewall da sua instância. Na guia Regras de entrada, clique em Editar regras de entrada.

Em seguida, clique em Adicionar regra. Vamos liberar o acesso da porta de comunicação do nosso servidor Pritunl. Em nosso exemplo foi: 17551 do protocolo UDP. Além disso, informe o IP de Origem: 0.0.0.0/0. Em seguida, clique em Salvar Regras.

Neste momento, já temos todo o nosso servidor de VPN criado, configurado e pronto para utilização.

No próximo tópico, vamos ver como utilizar um cliente de VPN no Windows e outro no Linux para fazer o acesso ao nosso servidor.


Cliente VPN

Linux

Estou utilizando o Ubuntu como ambiente Linux. O processo é bastante simples, pois uma instalação padrão já vem com o cliente instalado, basta importar o arquivo .ovpn.

Para encontrar este arquivo, no dashboard do Pritunl, clique em Users e, em seguida, no ícone de Download de profile:

Descompactando este arquivo, você encontrará um outro arquivo com a extensão .ovpn.

Nas configurações do Ubuntu, clique em Rede e, em seguida, no sinal de + ao lado de VPN. Selecione a opcão Importar de Arquivo, selecione o arquivo recém extraído.

Para que o processo de autenticação seja mais rápido, preencha nos campos Nome de usuário, Senha e Senha da chave de Usuário as mesmas informações informadas lá no painel de controle do Pritunl, quando você criou o usuário.

Em seguida, clique em Adicionar.

Uma vez que a rede esteja adicionada, basta habilitar a conexão da VPN:


Windows

Para o ambiente Windows, assim como mac OS, existe um cliente específico do Pritunl, você pode encontrá-lo aqui.

Faça a descarga do binário e proceda com a instalação como qualquer outro programa.

Após instalado, abra o painel de controle do Pritunl, no menu superior vá em Users e clique em Get temporary profile links (ícone da corrente) na frente do usuário.

Copie o conteúdo do campo Temporary url to view profile links.

Abra o cliente Pritunl, clique em Import e cole o valor do seu perfil no campo Profile URI e depois cliqueem Import:

Uma vez importado o perfil, basta clicar em Connect, informar o PIN e pronto, você já está conectado na VPN.

Teste de conexão

Com a VPN ligada, acesse o site https://whatsmyip.com. O endereço apresentado deverá ser o mesmo IP público associado a sua instância EC2. No meu caso, o endereço de saída é o 3.13.195.58.

Uma dica bônus, para saber se sua conexão está com uma boa velocidade ou não, teste a velocidade através do website https://fast.com.


Conclusão

Uma conexão VPN pode ser bastante útil quando o assunto é transmissão de dados de forma segura, uma vez que a conexão é totalmente criptografada entre o cliente e o servidor de VPN, ou seja, o seu provedor de acesso não tem acesso aos dados trafegados.

Outro ponto relacionado a segurança, é a liberação de acesso a serviços restritos dentro de uma empresa (internal VPC) apenas para um endereço IP específico (IP da VPN) ao invés de deixar o serviço exposto publicamente na internet e travando o acesso apenas através de username e senha, além de conseguir acessar conteúdos restritos a algumas regiões do globo.

Referências

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.