Como Configurar um Interruptor de Desativação para VPNs no Linux

A Linux killswitch is a must for any serious Linux VPN user. It guards your data against leaking to the internet by preventing anyone from accessing your data even if disconnected from the VPN. It also ensures that all information remains confidential regardless of what happens in between.

Para um cibercriminoso, um interruptor de desligamento é um pesadelo. É um obstáculo significativo que se coloca entre eles e seu alvo. Se a conexão com sua VPN cair por um segundo que seja porque seu computador ou telefone trava, desliga ou você acidentalmente corta o cabo – desde que você tenha um interruptor de desligamento ativado – nenhum desses dados pode ser acessado por ninguém.

Pré-requisitos

Para acompanhar, você vai precisar de:

  • O arquivo de configuração para se conectar ao seu provedor de VPN. Este artigo usa NordVPN como o provedor de VPN.
  • A Ubuntu device with the OpenVPN client. The examples will use Ubuntu 20.04 and OpenVPN 2.5.3.

Instalando o Firewall Descomplicado (UFW)

Neste tutorial, o killswitch do Linux depende da configuração do firewall. Primeiro, comece instalando o Firewall Descomplicado (UFW) no seu dispositivo e configurando o firewall para agir como o kill switch.

Antes de começar, certifique-se de que sua distribuição Linux está atualizada, ou seu firewall UFW pode não funcionar conforme o esperado. Por exemplo, o UFW pode não carregar as configurações na inicialização ou uma regra adicionada/removida não será carregada.

1. Execute sudo apt install ufw -y para instalar o firewall.

O firewall UFW é instalado por padrão na maioria das distribuições Ubuntu, então você pode já ter o UFW instalado.

2. Inicie o serviço UFW com sudo systemctl start ufw.

3. Verifique se a instalação do UFW foi bem-sucedida. Execute o comando sudo systemctl status ufw e, se for bem-sucedido, a saída mostrará um ativo (saído) em verde como visto abaixo.

Verifying that UFW is installed and running

4. Inicie o UFW com sudo ufw enable. Pressione Y e depois Enter quando perguntado se deseja Continuar com a operação (s|n)?

Enabling UFW on Ubuntu

Permitindo Protocolos de Acesso Remoto

Agora que o firewall está instalado, você precisa configurar o UFW para permitir quaisquer protocolos que deseje usar com a VPN.

Comece garantindo que você não fique bloqueado do seu cliente: você pode precisar fazer login via SSH se algo der errado com sua conexão OpenVPN. Se a conexão cair e você não conseguir fazer login via SSH, precisará acessar fisicamente o dispositivo para voltar a se conectar.

1. Permita conexões SSH com o comando sudo ufw allow ssh. O firewall UFW lê as portas e o protocolo no arquivo /etc/services e abre as portas de acordo. Você pode verificar a saída do comando abaixo.

Allowing SSH Connections on Ubuntu

É altamente recomendável adicionar uma camada extra de segurança exigindo que seus usuários se autentiquem com uma chave SSH ao se conectar via OpenVPN. Este procedimento protegerá contra ataques de força bruta e conexões não autorizadas.

2. Em seguida, você precisará adicionar regras para permitir o protocolo VNC, permitindo o tráfego nas portas correspondentes.

Quanto ao protocolo VNC, ele é opcional. O VNC permite acesso remoto, semelhante ao SSH. O VNC fornece um console gráfico, enquanto o SSH permite apenas um console de texto. Permita o tráfego VNC com o comando sudo ufw allow 5901:5910/tcp.

Esses comandos fornecerão uma saída como a abaixo.

Allowing remote access protocols on Ubuntu with UFW

3. Depois que suas regras forem adicionadas, certifique-se de que foram aplicadas com sucesso. O comando sudo ufw show added listará todas as regras adicionadas, como você pode ver abaixo.

Checking UFW existing rules

Configurando o VPN Kill Switch

Nesta seção, você aprenderá como configurar o kill switch real usando o firewall UFW. Para começar, execute os seguintes dois comandos.

  • sudo ufw default deny outgoing
  • sudo ufw default deny incoming

O comando ufw default deny bloqueia todo o tráfego de saída/entrada para/de sua máquina, exceto a conexão SSH explicitamente permitida e os protocolos remotos que você configurou nas seções anteriores. Você pode ver o resultado dos comandos na captura de tela abaixo.

Blocking traffic with UFW

Em seguida, adicione uma exceção ao conjunto de regras UFW para que sua máquina possa se conectar ao servidor VPN: você precisará do seu arquivo de configuração do servidor VPN. Neste tutorial, o arquivo OpenVPN é chamado de ata.ovpn e foi baixado do site da NordVPN.

O nome do seu arquivo de configuração do OpenVPN pode ser diferente. Este tutorial usa a convenção de nomenclatura “ata”, mas sinta-se à vontade para nomear o seu conforme considerar apropriado!

Em seguida, examine o arquivo de configuração do OpenVPN ata.opvn com o comando sudo head /etc/ata.ovpn. A saída resultante inclui informações como a porta, o protocolo e o endereço IP do servidor VPN ao qual você se conecta, com o NordVPN mostrado como exemplo abaixo.

Para elaborar o comando UFW correto, observe as informações de porta, protocolo e endereço IP público resultantes do arquivo de configuração.

Opening an OpenVPN config file, the above example is for NordVPN.

Em seguida, crie o comando ufw allow out da seguinte forma: sudo ufw allow out to 69.28.83.134 porta 1194 proto udp. Como você pode ver, o endereço IP e a porta usados são da linha de configuração que começa com remote e o protocolo da linha que começa com proto.

Neste exemplo, usa-se a NordVPN como provedor de VPN. Para a NordVPN, a porta UDP 1194 deve estar aberta. Se, por exemplo, você usar a Express VPN, a porta UDP 1195 deve estar aberta, e não a porta 1194. Cada provedor de VPN pode ter portas UDP exclusivas.

Criando uma Exceção no Firewall para OpenVPN

Claro, para uma usabilidade adequada, é necessário permitir o OpenVPN através do firewall. Até este ponto, você bloqueou todo tráfego de entrada e saída, com exceção de algumas portas.

Para começar, é preciso encontrar o nome da interface de rede que o cliente OpenVPN está usando. Execute o comando ifconfig para listar todos os nomes de interfaces de rede configuradas, conforme mostrado abaixo.

Listing network interface names on Ubuntu.

Observe a interface de rede com o nome tun0 na lista resultante. A interface tun0 é a interface VPN por onde todo o tráfego de entrada e saída passa e a interface a ser permitida. Trata-se de uma interface virtual adicionada durante a inicialização, o que significa simplesmente que não é uma conexão física. Essa interface é a padrão no OpenVPN.

Adicione uma exceção no firewall para a interface do túnel VPN que você encontrou com o comando ifconfig para forçar todo o tráfego por ela. Caso contrário, não haverá acesso à internet, e sua função de desativação de conexão falhará. Execute o comando abaixo para adicionar uma exceção para o tráfego do OpenVPN na interface tun0.

sudo ufw allow out on tun0 from any to any
Allowing outgoing traffic on the tun0 interface.

Algumas aplicações, como acessar um aplicativo de chat de voz enquanto joga, exigem conexões de entrada através da VPN. Para permitir conexões de entrada, execute o seguinte comando:

sudo ufw allow in on tun0 from any to any
Allowing ingoing traffic to tun0 interface

Configurando o Cliente OpenVPN

Nesta seção final, você configurará o cliente OpenVPN para funcionar como um serviço utilizando a configuração que você criou anteriormente.

Comece renomeando seu arquivo ata.opvn para **(seu nome de arquivo pode ser diferente)** ata.conf. Para executar o cliente OpenVPN como um serviço de sistema em segundo plano, o nome do arquivo deve ter a extensão *.conf. Além disso, você também moverá o arquivo para o diretório /etc/openvpn.

Mova o arquivo de configuração com o comando sudo mv /root/ata.ovpn /etc/openvpn/ata.conf.

Moving and renaming the OpenVPN configuration file.

Agora, altere o diretório para /etc/openvpn e verifique se o arquivo está lá.

cd /etc/openvpn
ls
Showing files in the /etc/openvpn directory

Com o arquivo de configuração no diretório /etc/openvpn, inicie o serviço do cliente OpenVPN com o comando systemctl. Para iniciar o serviço, execute: sudo systemctl start [email protected].

A parte “ata” do nome do cliente OpenVPN vem do nome do arquivo de configuração usado. O seu pode ser diferente de acordo com o nome do arquivo.

Starting the OpenVPN service.

Para verificar se o serviço OpenVPN está em execução, use o comando systemctl status da seguinte maneira.

sudo systemctl status [email protected]

Como mostrado abaixo, o status verde ativo (executando) do serviço OpenVPN é exibido.

Checking the OpenVPN service status.

Por fim, você precisa configurar seu dispositivo para se conectar ao seu serviço de VPN automaticamente. Conectar automaticamente à VPN garante que o OpenVPN esteja sempre em execução, mesmo se você reiniciar sua máquina.

Execute o comando sudo systemctl enable [email protected], e a partir de agora, uma vez que o serviço OpenVPN seja iniciado, ele conectará automaticamente seu dispositivo à VPN.

Enable the OpenVPN service.

Conclusão

Este artigo mostrou a você todos os passos necessários para configurar um killswitch Linux para sua conexão VPN. Um kill switch desconecta a conexão de rede do seu computador se a conexão cair inesperadamente, impedindo vazamentos de dados e mantendo você seguro online.

Source:
https://adamtheautomator.com/linux-killswitch/