Com a crescente censura da Internet por regimes autoritários, um número crescente de recursos e sites úteis da Internet está sendo bloqueado. Incluindo informações técnicas.
Assim, torna-se impossível o pleno uso da Internet e viola-se o direito fundamental à liberdade de expressão, consagrado no art. Declaração universal dos direitos humanos.
Artigo 19
Todos têm direito à liberdade de opinião e expressão; este direito inclui a liberdade de, sem interferência, ter opiniões e de procurar, receber e transmitir informações e ideias por qualquer meio e independentemente de fronteiras
Neste guia, implantaremos nosso próprio freeware* em 6 etapas. serviço VPN baseado em tecnologia Vigia, em infraestrutura de nuvem Amazon Web Services (AWS), usando uma conta gratuita (por 12 meses), em uma instância (máquina virtual) gerenciada por Servidor Ubuntu 18.04 LTS.
Tentei tornar este passo a passo o mais amigável possível para pessoas que não são de TI. A única coisa necessária é perseverança em repetir as etapas descritas abaixo.
Nota
AWS fornece nível de uso gratuito por um período de 12 meses, com limite de 15 gigabytes de tráfego por mês.
Inscrever-se para uma conta gratuita da AWS requer um número de telefone real e um cartão de crédito Visa ou Mastercard válido. Eu recomendo usar cartões virtuais que são fornecidos gratuitamente Yandex ou Carteira QIWI. Para verificar a validade do cartão, é descontado $ 1 durante o cadastro, que posteriormente é devolvido.
Número do cartão, data de validade e nome do titular do cartão.
1.5. Verificação de conta
Nesta fase, o número de telefone é confirmado e $ 1 é debitado diretamente do cartão de pagamento. Um código de 4 dígitos é exibido na tela do computador e o telefone especificado recebe uma ligação da Amazon. Durante uma chamada, você deve discar o código mostrado na tela.
1.6. Escolha do plano tarifário.
Escolha - plano básico (grátis)
1.7. Faça login no console de gerenciamento
1.8. Escolhendo a localização do centro de dados
1.8.1. Teste de velocidade
Antes de escolher um centro de dados, é recomendável testar através de https://speedtest.net velocidade de acesso aos data centers mais próximos, na minha localização os seguintes resultados:
Cingapura
Paris
Frankfurt
Estocolmo
Londres
O data center de Londres apresenta os melhores resultados em termos de velocidade. Então eu escolhi para uma maior personalização.
2. Crie uma instância da AWS
2.1 Criar uma máquina virtual
2.1.1. Selecionando um tipo de instância
Por padrão, a instância t2.micro é selecionada, que é o que precisamos, basta pressionar o botão A seguir: Configurar detalhes da instância
2.1.2. Definindo opções de instância
No futuro, conectaremos um IP público permanente à nossa instância, portanto, neste estágio, desativamos a atribuição automática de um IP público e pressionamos o botão Próximo: Adicionar armazenamento
2.1.3. Conexão de armazenamento
Especifique o tamanho do "disco rígido". Para nossos propósitos, 16 gigabytes são suficientes e pressionamos o botão Próximo: Adicionar Tags
2.1.4. Configurando tags
Se criássemos várias instâncias, elas poderiam ser agrupadas por tags para facilitar a administração. Nesse caso, essa funcionalidade é supérflua, pressione imediatamente o botão Próximo: Configurar grupo de segurança
2.1.5. Abrindo portas
Nesta etapa, configuramos o firewall abrindo as portas necessárias. O conjunto de portas abertas é chamado de Grupo de Segurança. Devemos criar um novo grupo de segurança, dar-lhe um nome, descrição, adicionar uma porta UDP (Custom UDP Rule), no campo Rort Range, atribuir um número de porta do intervalo portas dinâmicas 49152-65535. Nesse caso, escolhi o número da porta 54321.
Após preencher os dados solicitados, clique no botão Revisar e iniciar
2.1.6. Visão geral de todas as configurações
Nesta página há uma visão geral de todas as configurações de nossa instância, verificamos se todas as configurações estão em ordem e pressionamos o botão Apresentação livro
2.1.7. Criando Chaves de Acesso
Em seguida, vem uma caixa de diálogo oferecendo para criar ou adicionar uma chave SSH existente, com a qual posteriormente nos conectaremos remotamente à nossa instância. Selecionamos a opção "Criar um novo par de chaves" para criar uma nova chave. Dê um nome e clique no botão Download Par de chavespara baixar as chaves geradas. Salve-os em um local seguro em seu computador local. Depois de baixado, clique no botão. Instâncias de lançamento
2.1.7.1. Salvando Chaves de Acesso
Aqui é mostrada a etapa de salvar as chaves geradas na etapa anterior. Depois que pressionamos o botão Download Par de chaves, a chave é salva como um arquivo de certificado com extensão *.pem. Neste caso, dei-lhe um nome wireguard-awskey.pem
2.1.8. Visão geral dos resultados da criação de instâncias
Em seguida, vemos uma mensagem sobre o lançamento bem-sucedido da instância que acabamos de criar. Podemos ir para a lista de nossas instâncias clicando no botão visualizar instâncias
2.2. Criando um endereço IP externo
2.2.1. Iniciando a criação de um IP externo
Em seguida, precisamos criar um endereço IP externo permanente através do qual nos conectaremos ao nosso servidor VPN. Para fazer isso, no painel de navegação do lado esquerdo da tela, selecione o item IPs elásticos da categoria REDE E SEGURANÇA e pressione o botão Alocar novo endereço
2.2.2. Configurando a criação de um IP externo
Na próxima etapa, precisamos habilitar a opção piscina amazônica (ativado por padrão) e clique no botão distribuir
2.2.3. Visão geral dos resultados da criação de um endereço IP externo
A próxima tela exibirá o endereço IP externo que recebemos. Recomenda-se memorizá-lo, e é melhor até escrevê-lo. ele será útil mais de uma vez no processo de configuração e uso do servidor VPN. Neste guia, uso o endereço IP como exemplo. 4.3.2.1. Depois de inserir o endereço, pressione o botão Fechar
2.2.4. Lista de endereços IP externos
Em seguida, somos apresentados a uma lista de nossos endereços IP públicos permanentes (IP elásticos).
2.2.5. Atribuir um IP externo a uma instância
Nesta lista, selecionamos o endereço IP que recebemos e pressionamos o botão direito do mouse para abrir um menu suspenso. Nele, selecione o item endereço associadopara atribuí-lo à instância que criamos anteriormente.
2.2.6. Configuração de atribuição de IP externo
Na próxima etapa, selecione nossa instância na lista suspensa e pressione o botão Jurídico
2.2.7. Visão geral dos resultados da atribuição de IP externo
Depois disso, podemos ver que nossa instância e seu endereço IP privado estão vinculados ao nosso endereço IP público permanente.
Agora podemos nos conectar à nossa instância recém-criada de fora, de nosso computador via SSH.
3. Conecte-se a uma instância da AWS
SSH é um protocolo seguro para o controle remoto de dispositivos de computador.
3.1. Conexão via SSH de um computador com Windows
Para se conectar a um computador com Windows, primeiro você precisa baixar e instalar o programa massa de vidraceiro.
3.1.1. Importar chave privada para Putty
3.1.1.1. Depois de instalar o Putty, você precisa executar o utilitário PuTTYgen que o acompanha para importar a chave do certificado no formato PEM, em um formato adequado para uso no Putty. Para fazer isso, selecione o item no menu superior Conversões->Importar chave
3.1.1.2. Escolhendo uma chave AWS no formato PEM
Em seguida, selecione a chave que salvamos anteriormente na etapa 2.1.7.1, no nosso caso, seu nome wireguard-awskey.pem
3.1.1.3. Definindo opções de importação de chaves
Nesta etapa, precisamos especificar um comentário para esta chave (descrição) e definir uma senha e confirmação para segurança. Ele será solicitado toda vez que você se conectar. Assim, protegemos a chave com uma senha contra uso indevido. Você não precisa definir uma senha, mas é menos seguro se a chave cair em mãos erradas. Depois de pressionarmos o botão Salvar chave privada
3.1.1.4. Salvando uma chave importada
Uma caixa de diálogo para salvar arquivo é aberta e salvamos nossa chave privada como um arquivo com a extensão .ppkadequado para uso no programa massa de vidraceiro.
Especifique o nome da chave (no nosso caso wireguard-awskey.ppk) e pressione o botão Salvar.
3.1.2. Criando e configurando uma conexão no Putty
3.1.2.1. Criar uma conexão
Abra o programa Putty, selecione uma categoria Número da (está aberto por padrão) e no campo Nome do host insira o endereço IP público do nosso servidor, que recebemos na etapa 2.2.3. No campo Sessão salva insira um nome arbitrário para nossa conexão (no meu caso wireguard-aws-londres) e, em seguida, pressione o botão Salvar para salvar as alterações que fizemos.
3.1.2.2. Configurando o login automático do usuário
Mais na categoria Conexão, escolha uma subcategoria Data e no campo Nome de usuário de login automático insira nome de usuário ubuntu é o usuário padrão da instância na AWS com Ubuntu.
3.1.2.3. Escolhendo uma chave privada para conectar via SSH
Em seguida, vá para a subcategoria Conexão/SSH/Autenticação e ao lado do campo Arquivo de chave privada para autenticação aperte o botão Squeaky toy… para selecionar um arquivo com um certificado de chave.
3.1.2.4. Abrindo uma chave importada
Especifique a chave que importamos anteriormente na etapa 3.1.1.4, no nosso caso é um arquivo wireguard-awskey.ppk, e pressione o botão aberto.
3.1.2.5. Salvando configurações e iniciando uma conexão
Voltando à página da categoria Número da pressione o botão novamente Salvar, para salvar as alterações que fizemos anteriormente nas etapas anteriores (3.1.2.2 - 3.1.2.4). E então apertamos o botão Abra para abrir a conexão SSH remota que criamos e configuramos.
3.1.2.7. Configurando a confiança entre hosts
Na próxima etapa, na primeira vez que tentamos nos conectar, recebemos um aviso, não temos confiança configurada entre os dois computadores e perguntamos se devemos confiar no computador remoto. vamos apertar o botão Sim, adicionando-o assim à lista de hosts confiáveis.
3.1.2.8. Inserindo uma senha para acessar a chave
Depois disso, uma janela de terminal é aberta, onde é solicitada a senha da chave, se você a definiu anteriormente na etapa 3.1.1.3. Ao inserir uma senha, nenhuma ação na tela ocorre. Se você cometer um erro, você pode usar a tecla Retrocesso.
3.1.2.9. Mensagem de boas-vindas na conexão bem-sucedida
Depois de inserir a senha com sucesso, é exibido um texto de boas-vindas no terminal, informando que o sistema remoto está pronto para executar nossos comandos.
4. Configurando o Servidor Wireguard
As instruções mais atualizadas para instalar e usar o Wireguard usando os scripts descritos abaixo podem ser encontradas no repositório: https://github.com/isystem-io/wireguard-aws
4.1. Instalando o WireGuard
No terminal, digite os seguintes comandos (você pode copiar para a área de transferência e colar no terminal pressionando o botão direito do mouse):
4.1.1. Clonando um repositório
Clone o repositório com os scripts de instalação do Wireguard
Execute como administrador (usuário root) o script de instalação do Wireguard
sudo ./initial.sh
O processo de instalação solicitará alguns dados necessários para configurar o Wireguard
4.1.3.1. Entrada do ponto de conexão
Digite o endereço IP externo e abra a porta do servidor Wireguard. Obtivemos o endereço IP externo do servidor na etapa 2.2.3 e abrimos a porta na etapa 2.1.5. Nós os indicamos juntos, separando-os com dois pontos, por exemplo 4.3.2.1:54321e depois pressione a tecla Entrar Saída de amostra:
Enter the endpoint (external ip and port) in format [ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321
4.1.3.2. Inserindo o endereço IP interno
Digite o endereço IP do servidor Wireguard na sub-rede VPN segura, se você não sabe o que é, basta pressionar a tecla Enter para definir o valor padrão (10.50.0.1) Saída de amostra:
Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):
4.1.3.3. Especificando um servidor DNS
Digite o endereço IP do servidor DNS ou apenas pressione a tecla Enter para definir o valor padrão 1.1.1.1 (DNS público da Cloudflare) Saída de amostra:
Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):
4.1.3.4. Especificando a interface WAN
Em seguida, você precisa inserir o nome da interface de rede externa que escutará na interface de rede interna da VPN. Basta pressionar Enter para definir o valor padrão para AWS (eth0) Saída de amostra:
Enter the name of the WAN network interface ([ENTER] set to default: eth0):
4.1.3.5. Especificando o nome do cliente
Digite o nome do usuário VPN. O fato é que o servidor Wireguard VPN não poderá iniciar até que pelo menos um cliente tenha sido adicionado. Neste caso, digitei o nome Alex@mobile Saída de amostra:
Enter VPN user name: Alex@mobile
Em seguida, deve ser exibido na tela um código QR com a configuração do cliente recém-adicionado, que deve ser lido utilizando o cliente móvel Wireguard no Android ou iOS para configurá-lo. E também abaixo do código QR, o texto do arquivo de configuração será exibido em caso de configuração manual de clientes. Como fazer isso será discutido abaixo.
4.2. Adicionando um novo usuário VPN
Para adicionar um novo usuário, você precisa executar o script no terminal add-client.sh
sudo ./add-client.sh
O script pede um nome de usuário: Saída de amostra:
Enter VPN user name:
Além disso, o nome dos usuários pode ser passado como um parâmetro de 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/{ИмяКлиента} arquivo de configuração do cliente será criado /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, e a tela do terminal exibirá um código QR para configurar clientes móveis e o conteúdo do arquivo de configuração.
4.2.1. Arquivo de configuração do usuário
Você pode exibir na tela o conteúdo do arquivo .conf, para configuração manual do cliente, utilizando o comando cat
[Interface]
PrivateKey = Приватный ключ клиента
Address = IP адрес клиента
DNS = ДНС используемый клиентом
[Peer]
PublicKey = Публичный ключ сервера
PresharedKey = Общи ключ сервера и клиента
AllowedIPs = Разрешенные адреса для подключения (все - 0.0.0.0/0, ::/0)
Endpoint = IP адрес и порт для подключения
4.2.2. Código QR para configuração do cliente
Você pode exibir um código QR de configuração para um cliente criado anteriormente na tela do terminal usando o comando qrencode -t ansiutf8 (neste exemplo, um cliente chamado Alex@mobile é usado):
Depois disso, você precisa importar a configuração lendo o código QR com a configuração do cliente (consulte o parágrafo 4.2.2) e dê um nome a ela:
Depois de importar a configuração com sucesso, você pode habilitar o túnel VPN. Uma conexão bem-sucedida será indicada por um esconderijo de chaves na bandeja do sistema Android
5.2. Configuração do cliente Windows
Primeiro você precisa baixar e instalar o programa TunSafe para Windows é o cliente Wireguard para Windows.
5.2.1. Criando um arquivo de configuração de importação
Clique com o botão direito do mouse para criar um arquivo de texto na área de trabalho.
5.2.2. Copie o conteúdo do arquivo de configuração do servidor
Em seguida voltamos ao terminal Putty e exibimos o conteúdo do arquivo de configuração do usuário desejado, conforme descrito no passo 4.2.1.
Em seguida, clique com o botão direito do mouse no texto de configuração no terminal Putty, após a conclusão da seleção, ele será copiado automaticamente para a área de transferência.
5.2.3. Copiando a configuração para um arquivo de configuração local
Neste campo, voltamos ao arquivo de texto que criamos anteriormente na área de trabalho e colamos o texto de configuração nele da área de transferência.
5.2.4. Salvando um arquivo de configuração local
Salve o arquivo com extensão .conf (neste caso denominado london.conf)
5.2.5. Importando um arquivo de configuração local
Em seguida, você precisa importar o arquivo de configuração para o programa TunSafe.
5.2.6. Configurando uma conexão VPN
Selecione este arquivo de configuração e conecte-se clicando no botão Contato.
6. Verificando se a conexão foi bem-sucedida
Para verificar o sucesso da conexão através do túnel VPN, você precisa abrir um navegador e acessar o site https://2ip.ua/ru/
O endereço IP exibido deve corresponder ao que recebemos na etapa 2.2.3.
Em caso afirmativo, o túnel VPN está funcionando com sucesso.
No terminal Linux, você pode verificar seu endereço IP digitando:
curl http://zx2c4.com/ip
Ou você pode simplesmente ir ao pornhub se estiver no Cazaquistão.