Como se manterem seguros em férias? Está na altura do post anual sobre VPN – Edição 2024.

Olá a todos,

Nota do autor: Este é um repescamento de um post já com alguns anos, mas que julgo necessário voltar a fazer. Tenho visto quantidades absurdas de pessoas, nas praias, nos cafés, a usarem redes wifi não seguras, sem cuidado nenhum pela sua segurança online, utilizando em redes partilhadas, acessos não encriptados.

Desde o post inicial sobre os acessos de férias através de openVPN, tenho andado para fazer uma atualização do mesmo, mas desta vez com ipsec e wireguard, que no momento são nativos de 99% dos telemóveis Android e IOS.
Sei que existem bastantes ROM’s que não suportam os módulos de openVPN e chegou então a altura de corrigir esta lacuna.

Com o verão em full swing, o plafond de tráfego que temos nos nossos telemóveis começa a escassear, especialmente porque os operadores só ofereceram 15 dias de tráfego ilimitado num período de 3 meses.

Com a proliferação dos acessos municipais, MEO wifis da vida e cafés com internet wifi gratuita estes acessos são certamente uma solução, mas que coloca alguns problemas sérios de segurança – a Gartner a cerca de 4 anos publicou que 80% dos hotspots públicos estavam sobre algum tipo de sniffing ou auditoria não descritiva. Infelizmente este estudo envelheceu tão bem como leite ao ar livre e a coisa alem e não ter melhorado, piorou e muito.

Como resolver a questão da segurança e evitar que voltemos ao estonteante mundo da internet RDIS em 1999 (128K/s para os leitores mais novos) quando batemos na política de utilização responsável (?!) imposta pelos operadores?

Nada mais fácil. Usar um cliente vpn com compressão de tráfego ativa em modo de road warrior.

WireGuard VPN: a New, Secure, and Fast VPN Protocol

Comecemos pela configuração de ipsec:

O que é IPsec VPN e como funciona - Surfshark

Os componentes nesta receita são: um servidor ipsec e um cliente (seja em IOS seja em Android).
No meu caso está no cluster opnsense de perímetro do meu homelab que serve igualmente como concentrador de openVPN, IPSEC e Wireguard.
O resto é simples, sendo o truque apenas configurarem o agente de ipsec no vosso telemóvel, ou tablet.

No lado esquerdo do homescreen da nossa firewall, deverão ir a VPN, ipsec, Tunnel Settings:

No meu caso tenho já dois endpoints de vpn criados, um para o meu acesso a internet e ao homelab, e o outro para salvaguardar a privacidade dos meus filhos quando andam na internet fora de casa.

Em seguida e após clicarem no + no fundo do menu, ser-vos-a apresentado um menu como o seguinte onde deverão escolher os seguintes pontos a semelhança dos meus.

Nota que no caso da interface, devem escolher a interface que está virada para a internet – no meu caso especifico a interface tem o ip 192.168.1.1 -, ou se tiverem o router do operador a frente, deverão nele efetuar o NAT/PAT para os portos de IPSEC c/Nat:

Deveremos escolher um My Identifier especifico a nossa escolha – Em alguns casos chamado de Group Name – e uma chave pre-shared, tambem chamado de pre-shared secret.

Seguidamente será altura de configurar o túnel ESP que na pratica é o que transporta o nosso tráfego.

Nesta secção devem ter atenção aos seguintes itens: address – 0.0.0.0/0 – é para terem acesso a tudo via a VPN e não apenas a um endereçamento especifico.
Algoritmos de encriptação, escolhendo o mais alto e complexo possível, tendo em conta sempre da existência de suporte por parte do equipamento cliente – telemóvel, tablet, etc.

Nota: Os algoritmos e cifras apresentadas são o denominador comum mais baixo que são suportados nos telemóveis e tablets android que tive acesso e são utilizados no meu ambiente.
Não são portanto as mais seguras mas as mais compatíveis. Será questão de testarem com os vossos equipamentos e encontrarem o equilíbrio entre funcionalidade e segurança.


Em seguida iremos configurar a parte de suporte ao cliente móvel, o chamado de road warrior.


Nesta secção devem indicar uma rede de endereços que irá ser dada a todos os clientes ipsec que se liguem neste endpoint, um backend de autenticação caso tenham como eu IPA ou em alternativa possuam um LDAP ou AD e os vossos servidores internos de DNS, ou em alternativa os do vosso operador ou outros DNS providers que sejam free.

Finalmente coloquem o NAT Transversal em Force e o Responder only, se estiverem como eu através de um router que só suporte TCP/IP e não ESP.


Em seguida, será altura de configurar as permissões de tráfego na firewall em si (terá aparecido entretanto uma tab de IPSEC) e os clientes IPSEC que se irão ligar.

Um excelente howto para configuração dos clientes pode ser encontrado aqui.

E para Wireguard?

What is Wireguard? | OperaVPS

Nada mais simples. É ir ao menu inicial das VPN’s, no mesmo sitio do ipsec:

 

Em seguida, escolher Wireguard e configurar apropriadamente.

Efetuar enable, dar um nome ao nosso novo tunel, escolher uma rede e porta e em seguida os peers que se podem ligar a nossa instancia.
Carregando no icon de configuração (lápis) podemos validar:

 

Onde temos, o nome por nós escolhido, uma chave publica que ele pode gerar, uma chave privada que servirá de credencial de autenticação, a porta a escuta, e o nosso endereçamento de tunel.
No meu caso, para extra flair, e como tenho um cluster de firewall a funcionar, tenho o meu serviço de wireguard dependente da presença ou não de um endereço de carp no nó da firewall que irá correr o serviço.

Finalmente, e se no vosso caso tiverem ou quiserem ter uma configuração site to site, do lado do “cliente” temos:

Na pratica a mesma coisa, se o cliente está enabled para se ligar a nossa instancia, o endpoint onde nos iremos ligar para estabelecer o site to site, configurações de autenticação e porta destino.
Não esquecer os allowed ip ranges que são ranges que o cliente de lá, poderá aceder do lado de cá, sendo um site to site.

Pensamentos finais,

O procedimento em si tem tradeoffs em termos de velocidade e consumo extra de bateria nos telemóveis (devido a compressão, encriptação, desencriptação e descompressão dos dados).

No entanto, ganha-se bastante em segurança – caso usem o procedimento para aceder via public wifi’s ou para poupar em tráfego utilizado – é notar o a diferença no tamanho de dados descomprimidos vs o tamanho com a compressão no gráfico abaixo. A mesma escala pode ser utilizada para a quantidade de dados transmitidos comprimidos ou descomprimidos.

Infelizmente não irá eliminar a PUR, ou evitar totalmente o downgrade da velocidade pelo operador, mas irá fazer que isto só aconteça lá mais para a frente no mês ?

Existem no entanto, dados que não podem ser comprimidos, ou tem baixa taxa de compressão pela sua natureza, por exemplo ficheiros jpg ou mp4, mas para todo o texto (por exemplo texto da stream de um jornal ou de um social media site), a compressão efetiva faz muita diferença no resultado final.

Nota: gráfico tirado da compressão de ficheiros e dados obtido via google – tamanho menor é melhor.

Fica ainda o ultimo alerta que caso usem serviços de tráfego sem contabilização – por exemplo meogo ou substitutos do meo music que não contam para tráfego em telemóveis MEO – tem de ter a VPN desativada sob pena de ter o tráfego gratuito contabilizado (está a acontecer um redirect de tráfego que por não ir diretamente para os servidores da PT é contabilizado).

Caso tenham duvidas ou sugestões, sabem onde me podem encontrar.

Abraço e boas férias!
Nuno