Serviço VPN gratuito Wireguard na AWS

Para que serve?

Com o aumento da censura à internet por regimes autoritários, um número crescente de recursos e sites úteis está sendo bloqueado. Isso inclui informações técnicas.
Assim, torna-se impossível usar a internet de forma plena e o direito fundamental à liberdade de expressão, consagrado na Declaração Universal dos Direitos Humanos.

Artigo 19
Toda pessoa tem direito à liberdade de opinião e de expressão; esse direito inclui a liberdade de ter opiniões sem interferência e a liberdade de buscar, receber e disseminar informações e ideias por quaisquer meios e independentemente de fronteiras.

Neste guia, em 6 etapas, vamos implantar nosso próprio serviço de VPN baseado na tecnologia Wireguard, na infraestrutura de nuvem Amazon Web Services (AWS), usando uma conta gratuita (por 12 meses), em uma instância (máquina virtual) com Ubuntu Server 18.04 LTS.
Tentei tornar este guia passo a passo o mais amigável possível para aqueles que estão distantes da TI. A única coisa necessária é paciência para repetir os passos descritos abaixo.

Nota

Etapas

  1. Registro de uma conta gratuita na AWS
  2. Criando uma instância AWS
  3. Conectando-se à instância AWS
  4. Configurando o Wireguard
  5. Configurando clientes VPN
  6. Verificando a correção da instalação da VPN

Links Úteis

1. Registro da conta AWS

Para o registro de uma conta gratuita da AWS, é necessário um número de telefone real e um cartão de crédito Visa ou Mastercard que esteja em condições de uso. Recomendo usar cartões virtuais que são fornecidos gratuitamente por Yandex.Money ou Carteira Qiwi. Para verificar a validade do cartão, será cobrado $1 durante o registro, que será devolvido posteriormente.

1.1. Abrindo o console de gerenciamento da AWS

Você deve abrir o navegador e ir para o endereço: https://aws.amazon.com/ru/
Clique no botão 'Registrar'

Serviço VPN gratuito Wireguard na AWS

1.2. Preenchimento de dados pessoais

Preencha as informações e clique no botão 'Continuar'

Serviço VPN gratuito Wireguard na AWS

1.3. Preenchimento de dados de contato

Preencha as informações de contato.

Serviço VPN gratuito Wireguard na AWS

1.4. Inserção de informações de pagamento.

Número do cartão, data de validade e nome do titular do cartão.

Serviço VPN gratuito Wireguard na AWS

1.5. Confirmação da conta

Nesta etapa, o número de telefone é confirmado e um total de 1$ é debitado do cartão de pagamento. Um código de 4 dígitos é exibido na tela do computador e uma chamada da Amazon é enviada para o telefone indicado. Durante a chamada, você deve digitar o código que aparece na tela.

Serviço VPN gratuito Wireguard na AWS

1.6. Escolha do plano tarifário.

Selecionamos — Plano Básico (gratuito)

Serviço VPN gratuito Wireguard na AWS

1.7. Acesso ao console de gerenciamento

Serviço VPN gratuito Wireguard na AWS

1.8. Seleção da localização do data center

Serviço VPN gratuito Wireguard na AWS

1.8.1. Teste de velocidade

Antes de escolher o data center, é recomendável testar através de https://speedtest.net a velocidade de acesso aos data centers mais próximos, nos meus locais, os resultados são:

  • Cingapura
    Serviço VPN gratuito Wireguard na AWS
  • Paris
    Serviço VPN gratuito Wireguard na AWS
  • Frankfurt
    Serviço VPN gratuito Wireguard na AWS
  • Estocolmo
    Serviço VPN gratuito Wireguard na AWS
  • Londres
    Serviço VPN gratuito Wireguard na AWS

O data center em Londres mostra os melhores resultados em velocidade. Portanto, eu escolhi este para a configuração posterior.

2. Criação da instância AWS

2.1 Criação da máquina virtual

2.1.1. Seleção do tipo de instância

Por padrão, a instância t2.micro é selecionada, que é a que precisamos, basta clicar no botão Continuar: Configurar Detalhes da Instância

Serviço VPN gratuito Wireguard na AWS

2.1.2. Configuração das parâmetros da instância

Posteriormente, conectaremos um IP público fixo à nossa instância, por isso nesta etapa desativamos a atribuição automática do IP público e clicamos no botão Continuar: Adicionar Armazenamento

Serviço VPN gratuito Wireguard na AWS

2.1.3. Conexão de armazenamento

Definimos o tamanho do "disco rígido". Para nossos propósitos, 16 gigabytes são suficientes, e clicamos no botão Continuar: Adicionar Tags

Serviço VPN gratuito Wireguard na AWS

2.1.4. Configuração de tags

Se estivéssemos criando várias instâncias, poderíamos agrupá-las por tags, para facilitar a administração. Neste caso, essa funcionalidade é desnecessária, então clicamos imediatamente no botão Continuar: Configurar Grupo de Segurança

Serviço VPN gratuito Wireguard na AWS

2.1.5. Abertura de portas

Nesta etapa, configuramos o firewall, abrindo as portas necessárias. O conjunto de portas abertas é chamado de "Grupo de Segurança" (Security Group). Devemos criar um novo grupo de segurança, dar-lhe um nome, descrição, adicionar a porta UDP (Regra UDP Personalizada), no campo Rort Range é necessário designar o número da porta, do intervalo de portas dinâmicas 49152—65535. Neste caso, escolhi o número da porta 54321.

Serviço VPN gratuito Wireguard na AWS

Após preencher os dados necessários, clicamos no botão Revisar e Iniciar

2.1.6. Revisão de todas as configurações

Nesta página, revisamos todas as configurações da nossa instância, verificamos se todas as configurações estão corretas e clicamos no botão Iniciar

Serviço VPN gratuito Wireguard na AWS

2.1.7. Criação de chaves de acesso

Em seguida, aparece uma janela de diálogo que oferece a opção de criar ou adicionar uma chave SSH existente, com a qual iremos nos conectar remotamente ao nosso instância. Selecionamos a opção "Create a new key pair" para criar uma nova chave. Damos um nome a ela e clicamos no botão Baixar Par de Chaves, para baixar as chaves criadas. Armazene-as em um local seguro no disco do computador local. Depois de baixá-las, pressione o botão Iniciar Instâncias

Serviço VPN gratuito Wireguard na AWS

2.1.7.1. Salvando as Chaves de Acesso

Aqui está ilustrada a etapa de salvamento das chaves criadas na etapa anterior. Depois de termos pressionado o botão Baixar Par de Chaves, a chave é salva como um arquivo de certificado com a extensão *.pem. Neste caso, eu lhe dei o nome wireguard-awskey.pem

Serviço VPN gratuito Wireguard na AWS

2.1.8. Revisão dos Resultados da Criação da Instância

Em seguida, vemos uma mensagem de sucesso sobre o lançamento da instância que acabamos de criar. Podemos acessar a lista de nossas instâncias clicando no botão Ver instâncias

Serviço VPN gratuito Wireguard na AWS

2.2. Criação de um Endereço IP Externo

2.2.1. Iniciando a Criação de um IP Externo

Agora precisamos criar um endereço IP externo permanente, através do qual nos conectaremos ao nosso servidor VPN. Para isso, no painel de navegação no lado esquerdo da tela, é necessário selecionar o item IPs Elásticos da categoria REDE & SEGURANÇA e clicar no botão Alocar novo endereço

Serviço VPN gratuito Wireguard na AWS

2.2.2. Configurando a Criação de um IP Externo

Na próxima etapa, precisamos ter a opção Amazon pool (ativada por padrão), e clicamos no botão Alocar

Serviço VPN gratuito Wireguard na AWS

2.2.3. Revisão dos Resultados da Criação do Endereço IP Externo

Na próxima tela, será exibido o endereço IP externo que recebemos. É recomendável memorizá-lo, ou melhor ainda, anotá-lo. Ele nos será útil várias vezes no processo de configuração e uso do servidor VPN. Neste guia, como exemplo, estou usando o endereço IP 4.3.2.1. Depois de anotar o endereço, pressionamos o botão Fechar

Serviço VPN gratuito Wireguard na AWS

2.2.4. Lista de Endereços IP Externos

Em seguida, temos acesso à lista de nossos endereços IP públicos permanentes (IPs elásticos).

Serviço VPN gratuito Wireguard na AWS

2.2.5. Atribuindo um IP Externo à Instância

Nesta lista, escolhemos o endereço IP que recebemos e clicamos com o botão direito do mouse para abrir o menu suspenso. Nele, selecionamos a opção Associar endereço, para designá-lo à instância que criamos anteriormente.

Serviço VPN gratuito Wireguard na AWS

2.2.6. Configurando a Atribuição do IP Externo

Na próxima etapa, escolhemos nossa instância a partir da lista suspensa e clicamos no botão Associar

Serviço VPN gratuito Wireguard na AWS

2.2.7. Visão geral dos resultados da atribuição do IP externo

Após isso, podemos ver que nossa instância está vinculada ao nosso endereço IP público fixo e seu endereço IP privado.

Serviço VPN gratuito Wireguard na AWS

Agora podemos nos conectar à nossa nova instância externamente, do nosso computador via SSH.

3. Conectando-se à instância AWS

SSH — é um protocolo seguro de controle remoto de dispositivos de computação.

3.1. Conexão por SSH de um computador com Windows

Para conectar de um computador com Windows, primeiro é necessário baixar e instalar o programa Putty.

3.1.1. Importando a chave privada para Putty

3.1.1.1. Após a instalação do Putty, é necessário abrir a ferramenta PuTTYgen que vem junto com ele para importar a chave do certificado no formato PEM para o formato utilizável pelo programa Putty. Para isso, no menu superior, selecionamos a opção Conversions->Import Key

Serviço VPN gratuito Wireguard na AWS

3.1.1.2. Seleção da chave AWS no formato PEM

Em seguida, escolhemos a chave que previamente salvamos na etapa 2.1.7.1, no nosso caso seu nome é wireguard-awskey.pem

Serviço VPN gratuito Wireguard na AWS

3.1.1.3. Definindo os parâmetros de importação da chave

Neste passo, precisamos especificar um comentário para esta chave (descrição) e definir uma senha para segurança, além da sua confirmação. Ela será solicitada a cada conexão. Assim, protegemos a chave com uma senha contra o uso não autorizado. A senha pode ser deixada em branco, mas isso é menos seguro, caso a chave caia em mãos erradas. Em seguida, pressionamos o botão Save private key

Serviço VPN gratuito Wireguard na AWS

3.1.1.4. Salvando a chave importada

Uma janela de diálogo para salvar o arquivo é aberta, e salvamos nossa chave privada como um arquivo com a extensão .ppk, apropriada para uso no programa Putty.
Escrevemos o nome da chave (no nosso caso, wireguard-awskey.ppk) e pressionamos o botão Salvar.

Serviço VPN gratuito Wireguard na AWS

3.1.2. Criando e configurando a conexão no Putty

3.1.2.1. Criando a conexão

Abrimos o programa Putty, selecionamos a categoria Sessão (ela está aberta por padrão) e no campo Host Name digitamos o endereço IP público do nosso servidor, que obtivemos na etapa 2.2.3. No campo Saved Session digitamos um nome arbitrário para nossa conexão (no meu caso, wireguard-aws-london), e depois pressionamos o botão Salvar para salvar as alterações que fizemos.

Serviço VPN gratuito Wireguard na AWS

3.1.2.2. Configurando o login automático do usuário

Em seguida, na categoria Conexão, selecionamos a subcategoria Dados e no campo Auto-login username digitamos o nome do usuário ubuntu — este é o usuário padrão da instância na AWS com Ubuntu.

Serviço VPN gratuito Wireguard na AWS

3.1.2.3. Seleção da chave privada para a conexão por SSH

Em seguida, vamos para a subcategoria Conexão/SSH/Auth e ao lado do campo Arquivo de chave privada para autenticação clicamos no botão Procurar… para selecionar o arquivo do certificado da chave.

Serviço VPN gratuito Wireguard na AWS

3.1.2.4. Abrindo a chave importada

Indicamos a chave que importamos anteriormente na etapa 3.1.1.4, neste caso, este é o arquivo wireguard-awskey.ppk, e pressionamos o botão Abrir.

Serviço VPN gratuito Wireguard na AWS

3.1.2.5. Salvando configurações e iniciando a conexão

Voltando à página da categoria Sessão clicamos mais uma vez no botão Salvar, para salvar as alterações que fizemos nas etapas anteriores (3.1.2.2 — 3.1.2.4). Em seguida, pressionamos o botão Abrir para abrir a conexão remota que criamos e configuramos via SSH.

Serviço VPN gratuito Wireguard na AWS

3.1.2.7. Configurando a confiança entre hosts

Na próxima etapa, ao tentar se conectar pela primeira vez, recebemos um aviso de que não temos confiança configurada entre os dois computadores e é perguntado se devemos confiar no computador remoto. Clicaremos no botão Sim, adicionando-o assim à lista de hosts confiáveis.

Serviço VPN gratuito Wireguard na AWS

3.1.2.8. Inserindo a senha para acessar a chave

Depois disso, uma janela de terminal se abre, solicitando a senha da chave, caso você a tenha configurado anteriormente na etapa 3.1.1.3. Ao inserir a senha, nenhuma ação aparece na tela. Se cometer um engano, você pode usar a tecla Backspace.

Serviço VPN gratuito Wireguard na AWS

3.1.2.9. Mensagem de boas-vindas sobre conexão bem-sucedida

Após a entrada bem-sucedida da senha, o texto de boas-vindas aparece no terminal, informando que o sistema remoto está pronto para executar nossos comandos.

Serviço VPN gratuito Wireguard na AWS

4. Configurando o servidor Wireguard

As instruções mais atualizadas para instalação e uso do Wireguard utilizando os scripts descritos abaixo podem ser encontradas no repositório: https://github.com/isystem-io/wireguard-aws

4.1. Instalando o Wireguard

No terminal, digitamos os seguintes comandos (pode ser copiado para a área de transferência e colado no terminal pressionando o botão direito do mouse):

4.1.1. Clonando o repositório

Clonamos o repositório com os scripts de instalação do Wireguard

git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws

4.1.2. Acessando o diretório dos scripts

Acessamos o diretório do repositório clonado

cd wireguard_aws

4.1.3. Iniciando o script de inicialização

Executamos como administrador (usuário root) o script de instalação do Wireguard

sudo ./initial.sh

Durante a instalação, serão solicitadas certas informações necessárias para configurar o Wireguard

4.1.3.1. Inserindo o ponto de conexão

Insira o IP externo e a porta aberta do servidor Wireguard. O IP externo do servidor foi obtido na etapa 2.2.3, e a porta foi aberta na etapa 2.1.5. Indique-os juntos, separados por dois pontos, por exemplo 4.3.2.1:54321, e depois pressione a tecla Enter
Exemplo de saída:

Insira o endpoint (ip externo e porta) no formato [ipv4:porta] (por exemplo, 4.3.2.1:54321): 4.3.2.1:54321

4.1.3.2. Inserindo o IP interno

Insira o endereço IP do servidor Wireguard na sub-rede VPN protegida, se não souber o que é isso, basta pressionar a tecla Enter para definir o valor padrão (10.50.0.1)
Exemplo de saída:

Insira o endereço do servidor na sub-rede VPN (formato CIDR) ([ENTER] definido como padrão: 10.50.0.1):

4.1.3.3. Especificando o servidor DNS

Insira o endereço IP do servidor DNS, ou simplesmente pressione a tecla Enter para definir o valor padrão 1.1.1.1 (DNS público do Cloudflare)
Exemplo de saída:

Insira o endereço IP do servidor DNS (formato CIDR) ([ENTER] definido como padrão: 1.1.1.1):

4.1.3.4. Especificando a interface WAN

Agora é necessário inserir o nome da interface de rede externa que irá escutar a interface de rede interna VPN. Basta pressionar Enter para definir o valor padrão para AWS (eth0)
Exemplo de saída:

Insira o nome da interface de rede WAN ([ENTER] definido como padrão: eth0):

4.1.3.5. Especificando o nome do cliente

Insira o nome do usuário VPN. O fato é que o servidor VPN Wireguard não poderá iniciar até que pelo menos um cliente seja adicionado. Neste caso, digitei o nome Alex@mobile
Exemplo de saída:

Insira o nome do usuário VPN: Alex@mobile

Depois disso, deve aparecer na tela um código QR com a configuração do cliente recém-adicionado, que deve ser escaneado usando o cliente móvel Wireguard no Android ou iOS, para sua configuração. Além disso, abaixo do código QR aparecerá o texto do arquivo de configuração para o caso de configuração manual dos clientes. Como fazer isso será explicado a seguir.

Serviço VPN gratuito Wireguard na AWS

4.2. Adicionando um novo usuário VPN

Para adicionar um novo usuário, é necessário executar o script no terminal add-client.sh

sudo ./add-client.sh

O script solicitará o nome de usuário:
Exemplo de saída:

Insira o nome do usuário VPN: 

Além disso, o nome do usuário pode ser passado como um parâmetro do script (neste caso Alex@mobile):

sudo ./add-client.sh Alex@mobile

Como resultado da execução do script, no diretório com o nome do cliente no caminho /etc/wireguard/clients/{ИмяКлиента} um arquivo com a configuração do cliente será criado /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, e na tela do terminal aparecerá um código QR para a configuração de clientes móveis e o conteúdo do arquivo de configuração.

4.2.1. Arquivo de configuração do usuário

Para exibir o conteúdo do arquivo .conf na tela, para configuração manual do cliente, você pode usar o comando cat

sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf

resultado da execução:

[Interface]
PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit+jbzT5cshNUi8zlM=
Address = 10.50.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = mLnd+mul15U0EP6jCH5MRhIAjsfKYuIU/j5ml8Z2SEk=
PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 4.3.2.1:54321

Descrição do arquivo de configuração do cliente:

[Interface]
PrivateKey = Chave privada do cliente
Address = Endereço IP do cliente
DNS = DNS utilizado pelo cliente

[Peer]
PublicKey = Chave pública do servidor
PresharedKey = Chave compartilhada entre servidor e cliente
AllowedIPs = Endereços permitidos para conexão (todos - 0.0.0.0/0, ::/0)
Endpoint = Endereço IP e porta para conexão

4.2.2. Código QR de configuração do cliente

O código QR de configuração para o cliente criado anteriormente pode ser exibido na tela do terminal usando o comando qrencode -t ansiutf8 (neste exemplo, estamos usando um cliente chamado Alex@mobile):

sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8

5. Configuração de clientes VPN

5.1. Configuração do cliente móvel Android

O cliente oficial Wireguard para Android pode ser instalado a partir da loja oficial Google Play

Após isso, é necessário importar a configuração, lendo o código QR com a configuração do cliente (veja seção 4.2.2) e dando um nome a ele:

Serviço VPN gratuito Wireguard na AWS

Após a importação bem-sucedida da configuração, o túnel VPN pode ser ativado. A conexão bem-sucedida será indicada pelo ícone de chave na barra de status do Android

Serviço VPN gratuito Wireguard na AWS

5.2. Configuração do cliente Windows

Primeiramente, é necessário baixar e instalar o programa TunSafe para Windows — este é o cliente Wireguard para Windows.

5.2.1. Criação do arquivo de configuração para importação

Clique com o botão direito para criar um arquivo de texto na área de trabalho.

Serviço VPN gratuito Wireguard na AWS

5.2.2. Copiando o conteúdo do arquivo de configuração do servidor

Em seguida, retornamos ao terminal Putty e exibimos o conteúdo do arquivo de configuração do usuário desejado, como descrito no passo 4.2.1.
Depois, selecione com o botão direito o texto da configuração no terminal Putty; ao final da seleção, ele será copiado automaticamente para a área de transferência.

Serviço VPN gratuito Wireguard na AWS

5.2.3. Copiando a configuração para o arquivo de configuração local

Depois disso, voltamos ao arquivo de texto que criamos anteriormente na área de trabalho e colamos nele o texto da configuração da área de transferência.

Serviço VPN gratuito Wireguard na AWS

5.2.4. Salvando o arquivo de configuração local

Salve o arquivo com a extensão .conf (neste caso com o nome london.conf)

Serviço VPN gratuito Wireguard na AWS

5.2.5. Importando o arquivo de configuração local

Agora é necessário importar o arquivo de configuração no programa TunSafe.

Serviço VPN gratuito Wireguard na AWS

5.2.6. Estabelecendo a conexão VPN

Selecione este arquivo de configuração e conecte-se, clicando no botão Conectar.
Serviço VPN gratuito Wireguard na AWS

6. Verificação da conexão bem-sucedida

Para verificar a conexão através do túnel VPN, abra o navegador e acesse o site https://2ip.ua/ru/

Serviço VPN gratuito Wireguard na AWS

O endereço IP exibido deve coincidir com aquele que obtivemos na etapa 2.2.3.
Se for esse o caso, o túnel VPN está funcionando corretamente.

No terminal do Linux, você pode verificar seu endereço IP digitando o comando:

curl http://zx2c4.com/ip

Ou você pode simplesmente acessar um site adulto se estiver no Cazaquistão.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster