Serviço Wireguard VPN gratuito na AWS

Serviço Wireguard VPN gratuito na AWS


O raciocínio


O aumento da censura da Internet por regimes autoritários expande o bloqueio de recursos úteis da Internet, impossibilitando o uso da WEB e, em essência, viola o direito fundamental à liberdade de opinião e expressão consagrado na Declaração Universal dos Direitos Humanos .


Artigo 19
Todo mundo tem direito à liberdade de opinião e expressão; esse direito inclui a liberdade de manter opiniões sem interferência e de buscar, receber e transmitir informações e idéias através de qualquer mídia e independentemente de fronteiras.

A seguir, estão as instruções detalhadas de 6 etapas para pessoas que não são de TI implantarem o serviço VPN * gratuito na tecnologia Wireguard na infraestrutura de nuvem Amazon Web Services (AWS) , usando uma conta gratuita de 12 meses, em uma Instância (máquina virtual) executada pelo Ubuntu Server 18/04 LTS.


Tentei tornar esse guia o mais amigável possível para pessoas distantes da TI. A única coisa necessária é assiduidade na repetição das etapas descritas abaixo.


Nota


Etapas


  1. Registre a conta da AWS.
  2. Crie uma instância da AWS.
  3. Conecte-se à instância da AWS.
  4. Configure o servidor Wireguard.
  5. Configure clientes VPN.
  6. Verifique a conexão VPN.



Os autores



1. Registre a conta gratuita da AWS


Para registrar uma conta da AWS, você precisa enviar um número de telefone válido e um cartão bancário (Visa ou Mastercard). Eu recomendo o uso de cartões virtuais fornecidos gratuitamente pela carteira Yandex.Money ou Qiwi .
A AWS verifica a validade do cartão deduzindo 1 $ no registro seguido pelo reembolso.


1.1 Abrindo o AWS Management Console


Siga o link: https://aws.amazon.com/ , clique no botão Criar uma conta da AWS .


Página inicial do Amazon AWS


1.2 Criação de conta da AWS


Preencha os dados e clique no botão Continuar .


Criação de conta da AWS


1.3 Informações de contato da conta da AWS


Informações de contato da conta da AWS


1.4 Especificar informações de cobrança


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


Especificar informações de cobrança


1.5 Verificação da conta


A AWS verifica seu número de telefone e debita $ 1 em seu cartão bancário. Em seguida, você deve obter um código de 4 dígitos na tela do computador e receber uma chamada da Amazon. Durante uma chamada, você precisa discar o código de 4 dígitos mostrado na tela.


Verificação da conta


1.6 Escolhendo um plano de suporte da AWS


Escolha um plano básico (gratuito).


Escolhendo um plano de suporte da AWS


Faça login no AWS Management Console


Faça login no AWS Management Console


1.8 Escolhendo a localização do Datacenter


Escolhendo a localização do Datacenter


1.8.1 Teste de velocidade da Internet


Recomendamos que você execute um teste de velocidade nos datacenters mais próximos em https://speedtest.net/ e escolha o melhor para se conectar.


A seguir estão os resultados do teste de velocidade da minha localização:


  • Cingapura
    Cingapura
  • Paris
    Paris
  • Frankfurt am Main
    Frankfurt am Main
  • Estocolmo
    Estocolmo
  • Londres
    Londres

O Datacenter em Londres mostra o melhor resultado de velocidade, então eu o escolhi para prosseguir.


2. Crie uma instância da AWS


2.1 Crie uma máquina virtual (instância)


2.1.0 Siga as etapas de criação da instância


2.1.0.1 Vá para a página Inicialização da Instância, escolha o serviço EC-2


Vá para a página Inicialização da Instância, escolha o serviço EC-2


2.1.0.2 Iniciar um servidor virtual, conhecido como Amazon EC-2 Instance


Iniciar um servidor virtual, conhecido como Amazon EC-2 Instance


2.1.0.3 Escolha Amazon machine Image (Sistema operacional) - o Ubuntu Server 18.04 LTS


Escolha Amazon machine Image (Sistema operacional)


2.1.1 Escolha o tipo de instância


O tipo de instância t2.micro é definido por padrão e é o caminho certo. Clique no botão Avançar: Configurar detalhes da instância para continuar.


Escolha o tipo de instância


2.1.2 Configurar detalhes da instância


Desative a atribuição automática do IP público, pois você atribuirá um estático à sua Instância. Clique no botão Avançar: Adicionar armazenamento .


Configurar detalhes da instância


2.1.3 Adicionar armazenamento


Especifique o tamanho da unidade - os 16 GB são suficientes.
Clique em Avançar: botão Adicionar tags .


Adicionar armazenamento


2.1.4 Adicionar Tags


Se você tiver várias instâncias, poderá agrupá-las por tags para permitir uma melhor administração. No entanto, essa funcionalidade é excedente. Portanto, pulamos isso pressionando o botão Avançar: Configurar grupo de segurança .


Adicionar Tags


2.1.5 Abrindo portas


Configure o firewall atribuindo portas abertas. O conjunto de portas abertas é chamado de "Grupo de Segurança". Você precisa criar um novo "Grupo de Segurança", dar um nome, uma descrição e uma porta UDP (Regra UDP Personalizada).
No campo Intervalo de portas, especifique um número de porta do intervalo 49152 - 65535 de portas dinâmicas . No meu caso, escolho o número da porta 54321.
Clique no botão Revisar e Iniciar para concluir esta etapa.


Abrindo portas


2.1.6 Revisar as configurações de inicialização da instância


Revise e verifique todas as configurações do Início da Instância e, se tudo estiver OK, clique no botão Iniciar .


Revisar as configurações de inicialização da instância


2.1.7 Criando chaves de acesso


Crie ou adicione uma chave SSH existente na caixa de diálogo que você usará para conexão remota à sua instância.
Escolha o "Criar um novo par de chaves" para gerar uma nova chave. Dê um nome e clique no botão Download do par de chaves para baixar a chave gerada na unidade do PC. Clique no botão Iniciar instâncias .


Criando chaves de acesso


2.1.7.1 Salvar chaves privadas (.pem)


Ao clicar no par de chaves de download, você salva a chave como um arquivo .pem.
Para melhor gerenciamento, atribuai um nome wireguard-awskey.pem ao arquivo.


Salvar chaves privadas


2.1.8 Resumo do Início da Instância


Em seguida, você deverá ver uma mensagem sobre o lançamento bem-sucedido da Instância que você criou. Você pode visitar a lista de suas instâncias clicando no botão Exibir instâncias .


Resumo do Início da Instância


2.2 Criando um endereço IP externo


2.2.1 Crie um IP externo


A seguir, é criada um endereço IP externo que você usará para se conectar ao servidor VPN.
Encontre os IPs elásticos na categoria REDE E SEGURANÇA do painel de navegação. Clique no botão Alocar novo endereço .


Crie um IP externo


2.2.2 Configuração de IP externo


Na próxima etapa, você precisa habilitar o pool da Amazon (que é por padrão) e clicar no botão Alocar


Configuração de IP externo


2.2.3 Visão geral do endereço IP


A próxima janela exibe um endereço IP externo atribuído pelo pool da Amazon. Anote, pois você precisará dele para o processo de configuração e para a instalação do servidor VPN. Neste guia, como exemplo, eu uso o endereço IP 4.3.2.1 .
Depois de concluir esta etapa, clique no botão Fechar .


Visão geral do endereço IP


2.2.4 Lista de endereços IP externos


Em seguida, você deve obter uma lista dos seus endereços IP públicos (IPs do Elastics).


Lista de endereços IP externos


2.2.5 Atribuir um IP externo à instância


Escolha o endereço IP da lista (consulte 2.2.3) e clique no botão direito do mouse para obter um menu suspenso.
Nesse menu, escolha o endereço Associado para atribuir um IP à instância criada.


Atribuir um IP externo à instância


2.2.6 Associar endereço à instância


No menu suspenso, selecione a Instância criada e clique no botão Associar .


Associar endereço à instância


2.2.7 Resumo da atribuição de IP externo


Agora você deve ter uma Instância criada com um endereço IP público atribuído. Isso permite que você faça uma conexão remota com a Instância de fora (do seu PC) via SSH.


Resumo da atribuição de IP externo


3. Conecte-se à instância da AWS


O SSH é um protocolo seguro para gerenciar dispositivos de computador remoto.


3.1 Conecte-se a partir de um PC com Windows via SSH


Baixe e instale um Putty para fazer uma conexão a partir do PC com Windows.


3.1.1 Importar chave privada para Putty


3.1.1.1 Importar chave da AWS para o Putty


Inicie um utilitário PuTTYgen para corresponder à sua chave da AWS no formato .pem com um formato .ppk adequado para o Putty.
Para fazer isso, selecione Conversões -> Import Key no menu superior.


Importar chave da AWS para o Putty


3.1.1.2 Chave da AWS no formato PEM


Em seguida, escolha a chave com a qual você lidou no 2.1.7.1
No meu caso, é wireguard-awskey.pem .


Chave da AWS no formato PEM


3.1.1.3 Defina os parâmetros de importação de chaves


Nesta etapa, você precisa especificar os parâmetros de importação da Chave - o comentário da chave e a senha da chave . Você precisará deles em todas as conexões. Também protege a chave em si com uma senha contra acesso não autorizado.
Você pode pular a atribuição de senha. Mas isso tornará sua conexão menos segura caso a chave caia nas mãos erradas.
Quando terminar, clique no botão Salvar chave privada .


Defina os parâmetros de importação de chaves


3.1.1.4 Salve a chave .ppk importada


Você pode salvar sua chave privada em um formato .ppk adequado ao Putty na caixa de diálogo Salvar arquivo.
Especifique o nome da chave (no meu caso, wireguard-awskey.ppk ) e clique no botão Salvar .


Salve a chave .ppk importada


3.1.2 Crie e configure uma conexão no Putty


3.1.2.1 Faça uma conexão


Execute o programa Putty, escolha a categoria Session (está aberta por padrão) e, no campo Host Name , digite o endereço IP público do servidor. Lembro que você obteve seu endereço IP público na etapa 2.2.3 .
Atribua um nome à conexão no campo Sessão salva (para mim é wireguard-aws-london ). Clique no botão Salvar .


Faça uma conexão


3.1.2.2 Definir um login automático do usuário


Escolha a subcategoria Dados na categoria Conexão . Digite o nome de usuário de login automático ubuntu no campo Nome de usuário de login automático . (o ubuntu é o usuário de instância padrão na AWS com o Ubuntu).


Definir um login automático do usuário


3.1.2.3 Use uma chave privada para uma conexão SSH


Siga o caminho Conexão -> SSH -> subcategoria Auth e clique no botão Procurar para escolher o arquivo de chave privada.


Use uma chave privada para uma conexão SSH


3.1.2.4 Abra o arquivo de chave privada


Especifique a chave que você importou anteriormente na etapa 3.1.1.4 - wireguard-awskey.ppk e clique no botão Abrir .


Abra o arquivo de chave privada


3.1.2.5 Salvar alterações e iniciar uma conexão remota SSH


Na janela Session da janela Putty configuration, pressione o botão Save para aplicar todas as alterações feitas em ( 3.1.2.2 - 3.1.2.4 ).
Clique no botão Abrir para iniciar a conexão remota SSH pronta para uso.


Salvar alterações e iniciar uma conexão remota SSH


3.1.2.7 Definir uma confiança entre hosts


Na primeira conexão, você deve receber um aviso sobre a falta de confiança entre dois computadores (hosts). O sistema pergunta se você confia no host remoto. Clique em Sim para adicionar o host remoto à lista de confiança.


Definir uma confiança entre hosts


3.1.2.8 Digite a senha para ativar a chave


Em uma janela do terminal Putty, digite a senha da chave que você definiu na etapa
3.1.1.3 Ao digitar a senha, ela não mostra nenhuma ação na tela. Não se preocupe, se você cometer um erro, poderá usar a tecla Backspace.


Digite a senha para ativar a chave


3.1.2.9 Conexão bem sucedida


Depois de digitar a senha correta, você receberá um texto de boas-vindas. Ele informa que o sistema remoto está pronto para executar seus comandos.


Conexão bem sucedida


4. Configure o servidor Wireguard


Abaixo está a instrução para uma instalação e gerenciamento Wireguard guiado por script.
Eu mantenho a versão mais recente da instrução no repositório: https://github.com/isystem-io/wireguard-aws


4.1 Instalar o wireguard


Digite os seguintes comandos no terminal Putty.
Você pode copiá-los para a área de transferência e colar no terminal pressionando o botão direito do mouse.


4.1.1 Clonar o repositório de scripts


Clone um repositório de scripts de instalação do Wireguard:


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

4.1.2 Diretório do repositório de scripts


Vá para o diretório do repositório clonado:


 cd wireguard_aws 

4.1.3 Script de inicialização


Execute o script de instalação do Wireguard sob direitos de administrador (usuário root):


 sudo ./initial.sh 

O script solicita que você forneça os seguintes dados para configurar o Wireguard.


4.1.3.1 Definir ponto de extremidade de conexão (IP: porta)


Digite o endereço IP externo (consulte 2.2.3 ) e a porta aberta (consulte 2.1.5 ) do servidor Wireguard. Use o seguinte formato IP: port , por exemplo, 4.3.2.1:54321 . Pressione a tecla Enter para confirmar.


 Enter the endpoint (external ip and port) in format[ipv4:port] (eg 4.3.2.1:54321): 4.3.2.1:54321 

4.1.3.2 Definir endereço IP interno


Digite o endereço IP do servidor Wireguard em uma sub-rede VPN segura. Se você não souber o que é, pressione a tecla Enter para definir o valor padrão ( 10.50.0.1 ).


 Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1): 

4.1.3.3 Especifique o servidor DNS


Digite o endereço IP do servidor DNS ou pressione a tecla Enter para definir o valor padrão 1.1.1.1 (DNS público do Cloudflare).


 Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1): 

4.1.3.4 Especifique a interface WAN


Digite o nome da interface de rede externa. Essa interface detectará a interface de rede interna da VPN.
Pressione Enter para definir o padrão para a AWS ( eth0 )


 Enter the name of the WAN network interface ([ENTER] set to default: eth0): 

4.1.3.5 Especifique o nome do cliente


O servidor Wireguard VPN não pode ser iniciado até você adicionar pelo menos um cliente. Digite um nome de usuário VPN.
No meu caso, digitei o nome do Alex @ mobil.


 Enter VPN user name: Alex@mobile 

Depois disso, você deve receber um código QR de uma configuração de cliente adicionada. Este QR aplica a configuração do usuário ao cliente móvel Wireguard no Android ou iOS.
O texto do arquivo de configuração também é exibido com o QR. Você precisará no caso de configuração manual dos clientes, conforme discutido abaixo.


Concluindo a instalação do Wireguard


4.2 Adicionar novo usuário VPN


Para adicionar um novo usuário, você precisa executar o script add-client.sh no terminal


 sudo ./add-client.sh 

O script pede o nome de usuário:


 Enter VPN user name: 

O nome de usuário pode seguir como um parâmetro de script (no meu caso, o nome de usuário é Alex @ mobile):


 sudo ./add-client.sh Alex@mobile 

A execução do script leva à criação do arquivo de configuração do cliente no diretório do cliente.
Arquivo de configuração do cliente: /etc/wireguard/clients/{ClientName}/{ClientName}.conf .
Diretório do cliente:
/etc/wireguard/clients/{ClientName}


4.2.1 Arquivo de configuração do usuário


Execute o comando cat para obter o conteúdo do arquivo .conf para configuração manual do cliente.


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

o resultado da execução do comando da seguinte maneira:


 [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 = Client's private key Address = Client IP Address DNS = DNS used by the client [Peer] PublicKey = Public key server PresharedKey = Shared server and client key AllowedIPs = Allowed addresses for connection (all - 0.0.0.0/0, :: / 0) Endpoint = IP address and port for connection 

4.2.2 Configuração do cliente com código QR


Execute o comando qrencode -t ansiutf8 para obter o QR de uma configuração de cliente criada. (no meu caso, o novo nome do cliente é Alex @ mobile).


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

5. Configurar clientes VPN


5.1 Configuração do cliente móvel Android


Faça o download do cliente móvel Wireguard para Android na loja oficial do GooglePlay .


Digitalize o código QR para importar a configuração do cliente (consulte 4.2.2 ) e atribua um nome a ele.


Configuração do cliente móvel Android


Após importar a configuração, você pode ativar o túnel da VPN. Um pequeno símbolo de chave no sistema Android confirma a conexão VPN.


Conexão Wireguard estabelecida com sucesso no Android


5.2 Instalação do cliente Windows


Baixe e instale o TunSafe , que é um cliente Wireguard para Windows.


5.2.1 Crie um arquivo de texto local para importar a configuração


Crie um arquivo de texto fictício na área de trabalho do seu PC.


Criando um arquivo de texto


5.2.2 Copie o arquivo de configuração do servidor


Copie o conteúdo do arquivo de configuração do servidor.
Depois, volte ao terminal Putty e exiba o conteúdo do arquivo de configuração do usuário (consulte 4.2.1 ).
Use o botão direito do mouse para copiar o texto de configuração no terminal Putty.


Copiando texto com configuração


5.2.3 Cole o texto de configuração em um arquivo de texto local


Cole o texto de configuração da área de transferência no arquivo de texto fictício que criamos anteriormente na área de trabalho (consulte 5.2.1 ).


Colar texto com configuração


5.2.4 Salve o arquivo de configuração local


Salve o arquivo de texto como o formato .conf (no meu caso como london.conf )


Salve o arquivo de configuração local


5.2.5 Importar arquivo de configuração local


Importe o arquivo de configuração para o programa TunSafe.


Importar arquivo de configuração local para o TunSafe


5.2.6 Estabelecer uma conexão VPN


No programa TunSafe, selecione o arquivo de configuração importado e clique no botão Conectar .


Estabelecer uma conexão VPN


6. Verifique a conexão VPN


Use https://2ip.ua/en/ resource para verificar a conexão do túnel da VPN. Se o endereço IP exibido corresponder ao endereço 2.2.3 , o túnel da VPN estará instalado e funcionando.


Conectando-se a um servidor VPN através do TunSafe


Em um terminal Linux, você pode verificar seu endereço IP executando o seguinte comando:


 curl http://zx2c4.com/ip 

Source: https://habr.com/ru/post/pt449234/


All Articles