Pplware

Tutorial VPN L2TP sobre IPSec com o SoftEther

Para quem tem um Raspberry Pi (aproveite a promoção do Pplware – ver aqui) lá por casa, certamente já teve a necessidade de se ligar a ele a partir do exterior ou então aceder a um outro serviço que apenas está disponível quando estamos ligados à rede local.

A melhor solução e a mais segura é estabelecer um túnel VPN e nesse sentido hoje ensinamos como instalar um servidor VPN L2TP sobre IPSec num Raspberry Pi 2 usando o SoftEther VPN.

O SoftEther VPN  é um software relativamente recente e surpreendeu-nos muito pela positiva. Apesar de ser gratuito e open-source, é de nível profissional e de fácil configuração comparado com outras soluções VPN.

É extremamente completo, com muitas funcionalidades avançadas, como por exemplo integração com servidores RADIUS, routers CISCO, criação de Virtual Hubs (separação de ligações para segurança), configuração de permissões por utilizador, bridging, clustering, etc. Além disso dispõe de um serviço de DNS dinâmico, não sendo assim necessário configurar um destes serviços à parte, caso o vosso pacote de internet não ofereça um IP estático.

Para além de L2TP sobre IPSec, suporta também outros tipos de VPNs como OpenVPN, SSTP etc. Optamos por L2TP sobre IPSec por ser considerada uma solução bastante segura, caso seja bem configurada e por a maior parte dos sistemas operativos (Windows, MAC OSX, IOS, Android…) terem suporte nativo a este tipo de VPNs, não sendo necessário instalar software adicional para se realizar a ligação.

Configuração no Raspberry Pi 2

Para obterem e compilar o SoftEther basta que executem os seguintes comandos num terminal:

wget http://www.softether-download.com/files/softether/v4.15-9546-beta-2015.04.05-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.15-9546-beta-2015.04.05-linux-arm_eabi-32bit.tar.gz
tar zxvf softether-vpnserver-v4.15-9546-beta-2015.04.05-linux-arm_eabi-32bit.tar.gz
cd vpnserver
sudo make

Em seguida vamos mover o directório de instalação, configurar as permissões correctas, fazer o download e activar um script para inicialização automática no boot e iniciar o serviço.

cd ..
sudo mv vpnserver /usr/local
cd /usr/local/vpnserver
sudo chmod 600 *
sudo chmod 700 vpncmd vpnserver
sudo sed -i 's/AcceptOnlyTls false/AcceptOnlyTls true/g' /usr/local/vpnserver/vpn_server.config
sudo wget http://pipplware.pplware.pt/pipplware/dists/stable/main/misc/vpnserver -O /etc/init.d/vpnserver
sudo chmod 755 /etc/init.d/vpnserver
sudo update-rc.d vpnserver defaults
sudo /etc/init.d/vpnserver start
sudo /usr/local/vpnserver/vpncmd

O servidor é também configurado para aceitar apenas TLS devido ao POODLE e outras vulnerabilidades. O ultimo comando é para definir uma password de administração do servidor, para posteriormente configurarem remotamente através do programa SoftEther VPN Server Manager for Windows.

Pressionar 1 seguido de Enter 3 vezes e executar:

ServerPasswordSet

Insiram uma password à vossa escolha. Se tiverem intenção de gerirem o(s) servidor(es) através da internet (não incluído no tutorial) escolham uma password forte, por questões óbvias de segurança. No fim escrevam o comando “exit” seguido de Enter. E está completa a configuração no Raspberry Pi. Vamos agora configurar o servidor usando o SoftEther VPN Server Manager no Windows.

Configuração da VPN usando o SoftEther VPN Server Manager for Windows

Numa máquina com o Windows fazer o download da ultima versão do SoftEther VPN Server Manager for Windows aqui e instalar. Durante o processo, seleccionem “Admin Tools Only”.

Após a instalação, iniciar o programa e clicar em “New Setting”. Preencher os campos:

Clicar em OK e depois duplo-click na nova entrada criada. No próximo ecrã, seleccionar apenas “Remote Access VPN Server” e “Next”. Escrever um “Virtual Hub Name” à escolha e fazer OK.

No próximo ecrã, é-nos apresentado o serviço DDNS gratuito do SoftEther VPN:

Alterem o Dynamic DNS Hostname se desejarem, apontem este endereço e façam Exit. Será este o endereço usado para se fazer a ligação depois nos clientes. Se já tiverem um DDNS configurado que pretendam usar em alternativa, simplesmente ignorem este passo e façam Exit.

No próximo ecrã seleccionem a primeira opção, L2TP over IPSec:

Em baixo devem escolher uma chave partilhada (Pre-Shared Key) com uma password forte mas de preferência com menos de 9 caracteres senão clientes Android podem ter problemas. Todos os clientes terão de saber esta chave para se poderem conectar, para além de uma chave individual específica de cada utilizador, que será configurada mais tarde.

Fazer OK e no próximo ecrã seleccionar a opção “Disable VPN Azure” uma vez que não temos interesse neste serviço.

De seguida iremos configurar cada utilizador. Selecionar “Create Users” e configurar como desejado:

Neste caso, para manter as coisas simples, seleccionamos apenas “Password Authentication” e definimos uma password para o utilizador em questão. Relembramos que devem definir uma password forte. Para máxima segurança podem definir uma data de expiração da conta, definir politicas de segurança para o utilizador em questão e usar um certificado de autenticação ou via RADIUS em vez de password. Estas opções não são cobertas neste tutorial.

Fazer OK para terminar. Caso desejem, podem adicionar já mais utilizadores, para isso façam “New” no próximo ecrã, caso contrário façam “Exit”.

Após saírem do menu de configuração dos utilizadores, em “Step 3. Set Local Bridge” devem seleccionar a interface de ligação á rede do servidor, no nosso caso, a interface Ethernet (eth0) do Raspberry Pi. “Close” em seguida.

O próximo ecrã é o painel principal de controlo do nosso servidor VPN:

Aqui podemos controlar tudo relativamente ao servidor VPN, como hubs virtuais, ver o status do servidor, conexões, encriptação etc. Mais uma vez, para manter as coisas simples não vamos falar sobre todas as opções, apenas realizar as configurações finais:

Em “Management of Listeners”, eliminar todas as portas, excepto a 443.

Clicar em “OpenVPN / MS-SSTP Setting” , desmarcar as duas caixas e fazer OK.

Clicar em “Encryption and Network”. Em “Encryption Algorithm Name”, selecionar “AES256-SHA” ou outra, conforme desejarem. Quanto mais para baixo, mais forte é a encriptação, mas exige maior capacidade de processamento. Em “VPN over ICMP / DNS Settings”, desmarcar as duas caixas e fazer OK. Ok novamente para voltar ao painel da imagem em cima.

Por fim fazer Exit e está terminada a configuração da VPN.

Configuração do router

O último passo a fazer é configurar o vosso router para aceitar e reencaminhar as ligações VPN para o vosso Raspberry/servidor. Esta parte depende bastante do router do vosso ISP, pelo que terão de adaptar ao vosso caso. Neste tutorial é usado um Thomson TG784n, usado por 2 grandes operadoras nacionais:

Escrever o endereço de IP do vosso router num browser e fazer login:

Ir a Ferramentas -> Partilha de Jogos e Aplicações -> Criar novo jogo ou aplicação e configurar conforme a imagem em cima. O protocolo a usar é o UDP e as portas a reencaminhar são a 500 (ISAKMP) e 4500 (IPSec NAT Traversal). No fim clicar em Aplicar.

De seguida ir a Ferramentas -> Partilha de Jogos e Aplicações -> Associar jogo ou aplicação a um equipamento de rede local. Seleccionar a aplicação criada em cima (SoftEther), atribuir ao servidor (Raspberry)e clicar em Adicionar:

Por fim carregar em Aplicar. E está tudo terminado!

Nota: Devem apenas abrir no router, as portas indicadas no tutorial para o exterior para não comprometer a segurança. Aconselhamos também o uso de uma firewall para além da do router.

Agora precisam apenas de configurar os dispositivos que pretendem ligar ao vosso servidor VPN. Como referimos no início do tutorial, quase todos os aparelhos actuais são compatíveis com este tipo de servidor VPN, não precisando de instalar qualquer aplicação adicional para se conectarem, basta usar os clientes nativos do sistema operativo. Se configuraram conforme o indicado precisarão dos seguintes dados:

Esperemos que tenham gostado de mais um tutorial e que vos possa ser útil.

Exit mobile version