Como fazer uma VPN grátis com SoftEther e uma instância AWS EC2 Linux
Se você deseja configurar sua própria VPN gratuitamente, não há maneira mais fácil de fazer isso do que com SoftEther. SoftEther é uma solução VPN com software gratuito para conectar um servidor a um cliente. É relativamente fácil de usar em comparação com a configuração padrão do OpenVPN e oferece suporte a mais protocolos. Eles incluem OpenVPN, L2TP/IPSec, PPTP, SSTP e EtherIP.
Neste tutorial, mostraremos como configurar o SoftEther usando o protocolo L2TP/IPSec em uma instância Amazon Web Services EC2. Você pode usar o micronível da Amazon gratuitamente por um ano, desde que cumpra os limites de tempo, espaço e largura de banda.
Depois de configurada, você poderá usar sua VPN caseira como qualquer outra VPN comercial: contornar a censura, desbloquear conteúdo bloqueado geograficamente, proteger conexões Wi-Fi abertas e criptografar transferências de arquivos P2P. Até testamos isso com a Netflix e conseguimos contornar a VPN e o firewall proxy para assistir à Netflix dos EUA na Alemanha, algo com que muitos provedores de VPN pagos têm dificuldade (temos aqui uma lista de serviços pagos que superam o VPNNetflix banimento).
O que você precisa para criar sua própria VPN usando SoftEther:
Antes de começarmos, certifique-se de ter todos os seguintes ingredientes:
- Conta Amazon Web Services. Isso requer um cartão de crédito, mas você só será cobrado pelo que usar, o que provavelmente não será nada se você for prudente com o que está fazendo.
- PuTTy e PuTTygen para usuários do Windows. Baixe ambos aqui .
- Aplicativo cliente SoftEther para o seu sistema operacional
- Um conhecimento básico de comandos Unix e como os servidores funcionam com os clientes será extremamente útil na solução de problemas caso algo não saia exatamente como planejado.
Inicie uma instância EC2
Primeiro, precisamos criar uma instância EC2 na Amazon. Uma “instância” é um jargão para um servidor virtual. EC significa “Elastic Cloud”, o que significa que o servidor pode aumentar ou diminuir de tamanho conforme necessário. Apenas o menor tamanho de instância está disponível na avaliação gratuita, portanto, escolha esse.
- Depois de registrar uma conta AWS, abra o painel e clique em EC2.
- Clique no botão que diz “Iniciar instância”.
- Para este tutorial, usaremos Amazon Linux AMI, que é elegível para nível gratuito no momento da escrita. O Ubuntu Server 14.04 LTS também deverá funcionar, mas alguns detalhes serão diferentes. Clique no botão Selecionar.
- Certifique-se de que o nível t2.micro “qualificado para nível gratuito” esteja selecionado e clique em Avançar (nãoRevise e inicie) até chegar à Etapa 6: Configurar grupo de segurança.
- Para simplificar, vamos apenas mudar o Tipo para “Todo o Tráfego” e a Fonte para “Meu IP”. Se preferir mais segurança ou uma gama mais ampla de clientes do que apenas o seu computador, você pode abrir as portas 22, 443, 500, 992, 1194, 4500 e 5555. Dê ao grupo de segurança um nome que você reconheça, como “softether”.
- Clique em Revisar e iniciar e em Iniciar.
- Em seguida, você será solicitado a criar um par de chaves (ou usar um existente, se já tiver feito isso antes). Dê ao par de chaves um nome que você reconheça, como “softether”, e faça o download. Mantenha-o em algum lugar seguro e não o perca, caso contrário você não conseguirá acessar seu servidor.
- Clique em Iniciar instâncias. Role até o final desta página e clique em Exibir instâncias.
- Você deverá ver sua nova instância sendo inicializada. Clique nele para exibir as informações abaixo, incluindo o endereço DNS público. Precisaremos disso na próxima etapa, então copie-o para sua área de transferência.
Parabéns, você tem um servidor. Agora precisamos acessá-lo.
Acessando sua instância EC2
Para este tutorial, usaremos PuTTy e PuTTygen no Windows. Os usuários de Mac e Linux podem simplesmente usar seu terminal. Primeiro, precisamos gerar um arquivo de chave para que possamos acessar nosso servidor através de SSH.
- Abra o PuTTygen
- Clique em Carregar
- Navegue até onde você baixou seu par de chaves .pem. Clique no menu suspenso em seu navegador de arquivos para mostrar “Todos os arquivos”, caso contrário a chave .pem não aparecerá. Selecione o arquivo .pem e clique em Abrir.
- Clique em “Salvar chave privada” e confirme para salvar sem senha. Você deve fornecer a ele um nome de arquivo idêntico ao do arquivo .pem. Neste caso, “mais suave”.
Com o arquivo de chave privada .ppk em mãos, agora podemos nos conectar ao servidor.
- Abra o PuTTy
- Em Nome do host, cole o endereço DNS público da sua instância (começa com “ec2” e termina com “amazonaws.com”) no painel de instâncias do EC2.
- Na barra lateral esquerda, clique no ícone ‘+’ ao lado de SSH para expandi-lo e clique em “Auth”
- Ao lado do campo inferior, clique no botão Procurar. Navegue até o arquivo de chave privada (.ppk) que você acabou de criar. Clique em Abrir.
- Volte para a página Sessão na barra lateral esquerda. Nomeie a sessão com algo que você lembrará e clique em Salvar. Agora você pode se conectar instantaneamente a partir do PuTTy no futuro, sem precisar passar por todas essas etapas novamente.
- Clique em Abrir na parte inferior do PuTTy
- Clique em Sim para confirmar que você confia no servidor
- Na janela preta do terminal que aparece, será solicitado um nome de usuário. Supondo que você escolheu Amazon Linux AMI, digite “ec2-user” e pressione Enter.
Agora você está conectado por SSH ao seu servidor. Qualquer coisa que você digita no terminal PuTTy é um comando para o servidor, não para o seu computador local.
Instale SoftEther em sua instância EC2
Agora que você pode dar comandos ao seu servidor, podemos instalar o aplicativo de servidor SoftEther. Infelizmente, o SoftEther não está disponível em nenhum gerenciador de pacotes, então teremos que baixá-lo do site. Mas antes de fazermos isso, vamos ter certeza de que tudo está atualizado.
- No terminal PuTTy, digite |_+_| (observe que outras versões do Linux podem usar “apt-get” em vez de “yum”.
- Digite |_+_| e pressione Enter.
- Se o download acima falhar, você pode encontrar a versão mais recente do software SoftEther VPN Server aqui . Substitua o URL no comando acima pelo link de download no site da SoftEther.
- Copie o nome do arquivo que você acabou de baixar conforme exibido no terminal.
- Digite |_+_| e pressione Enter para descompactar o arquivo em um novo diretório chamado “vpnserver”.
- Para compilar esses arquivos, digite |_+_|
- Alguns usuários relataram que o pacote gcc não será instalado por meio do comando acima; nesse caso, você pode digitar e inserir |_+_|
- Digite e digite |_+_|
- Digite e digite |_+_|
- Digite “1” e pressione Enter três vezes para concluir o contrato de licença.
SoftEther agora está compilado e pode ser executado em seu servidor. Um passo mais perto!
Inicie o SoftEther como um serviço
A seguir vamos criar um arquivo na pasta init.d que iniciará automaticamente o SoftEther como um serviço sempre que o servidor for inicializado. Isso nos poupará o trabalho de ativá-lo manualmente sempre que pararmos e iniciarmos o servidor. Você pode pular esta etapa se desejar, mas isso pode economizar muito tempo a longo prazo. Primeiro, vamos mover o diretório SoftEther para outro lugar.
- Digite os seguintes comandos, pressionando Enter após cada linha:
- |_+_|
- |_+_|
- |_+_|
- Agora altere as permissões de arquivo para protegê-los usando os seguintes comandos:
- |_+_|
- |_+_|
- |_+_|
- Crie um arquivo digitando |_+_|
- No arquivo de texto vazio, cole o seguinte (você pode colar clicando com o botão direito no Windows):|_+_|
#chkconfig: 2345 99 01
# descrição: Servidor VPN SoftEther
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
teste -x $DAEMON || saída 0
caso “$1” em
começar)
$DAEMON início
toque em $LOCK
;;
parar)
Parada $DAEMON
rm$LOCK
;;
reiniciar)
Parada $DAEMON
dormir 3
$DAEMON início
;;
*)
echo “Uso: $0 {iniciar|parar|reiniciar}”
saída 1
esac
saída 0
- Pressione CTRL+O ('o' diferente de zero) e pressione Enter para salvar o arquivo. Em seguida, pressione CTRL+X para sair do Nano.
- Digite os seguintes comandos para fazer o Softether rodar na inicialização:
- |_+_| (isso pode já existir)
- sudo su
- |_+_|
- |_+_|
SoftEther agora será executado automaticamente na inicialização do servidor.
Verifique se o SoftEther está funcionando
Aqui faremos uma verificação rápida para ter certeza de que tudo está funcionando conforme desejado.
- Digite |_+_| e aperte Enter
- Digite |_+_| e aperte Enter
- Digite ‘3’ para escolher a terceira opção e pressione Enter
- Digite |_+_| e pressione Enter para executar o teste
Você deverá receber uma mensagem informando que todas as verificações foram aprovadas. Se não, algo deu errado.
Digite “exit” para sair do vpntools.
Configurando SoftEther
Em seguida, precisamos configurar o SoftEther para que possamos nos conectar a ele a partir do nosso PC cliente.
- Enquanto você ainda estiver no diretório vpnserver, digite |_+_|
- Escolha a opção 1 e pressione Enter
- Para o IP do nome do host, insira o endereço IP da instância do servidor EC2 seguido por dois pontos e a porta 5555. Você pode encontrar o IP da sua instância do servidor no painel do EC2. A entrada deve ficar assim: |_+_|
- Na próxima etapa, deixe a entrada em branco e pressione Enter para conectar-se a partir do nó Server Admin
- O prompt agora deve ser “Servidor VPN>”. Digite |_+_| e aperte Enter
- Digite uma senha de sua preferência e digite-a novamente para confirmar
- Em seguida, digite |_+_| e digite uma nova senha que você usará para fazer login quando não estiver no modo Server Admin
- Digite |_+_| e aperte Enter
- Digite |_+_|
- Digite |_+_|, substituindo “paul” por um nome de usuário de sua escolha.
- Você será solicitado a inserir um nome de grupo, nome completo e descrição para o novo usuário. Deixe o Nome do Grupo em branco e use o que quiser para os outros dois.
- Digite |_+_|, substituindo paul pelo nome de usuário que você acabou de criar. Digite e confirme uma senha para esse usuário.
- Repita as etapas 10 a 12 para quantos usuários desejar.
Algumas notas aqui. Na etapa 9, usamos Secure NAT como meio de conectar hubs à rede do servidor. Outra opção é a conexão Local Bridge, mas é mais complicada e requer a configuração de um servidor DHCP. O Secure NAT cuida do servidor DHCP para você.
Na etapa 12, usamos o comando UserPasswordSet para habilitar a autenticação por senha em um usuário específico. SoftEther oferece suporte a vários outros tipos de autenticação, que podem variar entre os usuários. Eles incluem domínio NT, anônimo, RADIUS, certificado individual e autenticação de certificado assinado.
Configure L2TP/IPSec no servidor VPN
Decidimos usar L2TP/IPSec como protocolo VPN neste tutorial por três motivos principais: a) é mais seguro que PPTP, b) é mais fácil de configurar que OpenVPN e c) funciona em vários sistemas operacionais, ao contrário do Windows. -somente SSTP.
- Ainda no prompt “VPN Server>” do vpncmd, digite |_+_|
- Em seguida, você receberá uma série de prompts de configuração. Abaixo daremos nossas respostas recomendadas:
- Habilite a função de servidor L2TP sobre IPsec – sim, habilite a VPN para uso em vários dispositivos, incluindo Windows PC, Mac OSX, iOS e Android
- Habilitar função de servidor L2TP bruto – não, não permitir conexões sem criptografia
- Habilite a função de servidor EtherIP / L2TPv3 sobre IPsec – sim, permita que roteadores com esta função integrada se conectem
- Em seguida vem a chave pré-compartilhada. Esta é uma senha com no máximo nove caracteres. Digite o que quiser.
- Para “HUB Virtual Padrão em caso de omissão do HUB no Nome de Usuário:”, basta digitar |_+_|
É isso! certifique-se de anotar todas as senhas que você criou acima e para que serve cada uma.
Conectando-se à sua VPN SoftEther caseira
Você pode se conectar à sua VPN usando qualquer cliente VPN compatível com L2TP que desejar, mas mostraremos como fazer isso com o aplicativo próprio da SoftEther. Comece baixando e instalando o cliente para o seu sistema operacional aqui .
- Abra o aplicativo SoftEther VPN Client Manager e clique em “Adicionar uma conexão VPN”
- Você será solicitado a criar um adaptador virtual, caso ainda não o tenha feito. Confirme e pressione OK para aceitar o nome padrão.
- Na janela Propriedades que aparece, digite o seguinte:
- ANome da configuraçãoda sua escolha
- Nome de anfitriãoé o endereço IP do seu servidor
- O número da porta é 5555 conforme especificado acima
- O nome do hub virtual é “VPN” conforme especificado acima
- Nome de usuário é o nome de usuário que você definiu no servidor acima, neste caso “paul”
- Senha é o que você definiu para esse usuário com a função UserPasswordSet acima
Deixe todo o resto com as configurações padrão e pressione OK. Agora, de volta à janela principal, clique duas vezes na conexão que você acabou de configurar para conectar.
Uma mensagem aparecerá informando que sua conexão VPN foi estabelecida. Parabéns! Agora você está conectado à sua VPN caseira!
Lembre-se de manter sua largura de banda dentro dos limites de nível gratuito da Amazon. A maneira mais fácil de fazer isso é clicar com o botão direito em sua instância no Console AWS e clicar no link “Adicionar/Editar Alarmes”. Você pode configurar seu servidor para parar ou até mesmo encerrar após algumas horas de inatividade. O nível gratuito permite 750 horas por mês (que cobre o mês inteiro), então você não precisa fazer isso. No entanto, os usuários que ultrapassarem o ano inicial de serviço gratuito ou fizerem mais com sua conta da AWS podem evitar cobranças desnecessárias por tempo de servidor não utilizado.
Em algum lugar deste tutorial, algo provavelmente dará errado para você. Se você realmente deseja uma VPN, mas não está disposto a solucionar problemas, provavelmente é melhor optar por um serviço VPN pago. Há um bom número de produtos prontos para uso serviços VPN gratuitos , mas eles têm suas limitações. Os usuários do Linux podem encontrar uma lista de nossos favoritos VPNs para distribuições Debian e Fedora aqui . As VPNs de assinatura paga também permitem canalizar o tráfego da Internet através de dezenas de localizações geográficas, enquanto uma instância EC2 é limitada a apenas uma. Confira nossas análises de VPN aqui!