Outro dia me deparei com o fato de que, quando conecto à VPN pelo Pop_OS (baseado no Ubuntu 19.10), a comunicação continua pela interface VPN e também pelo adaptador comum via IPv6.

Naturalmente isso não é ideal, pois se usamos a VPN para fins privados, isso vaza nosso endereço IP, tornando-nos rastreáveis sem nenhum esforço. A melhor solução é desativar completamente a obtenção de endereço IPv6 já no kernel (editando o GRUB), mas geralmente uso IPv6 para outros fins, então só quero desativá-lo quando estiver conectado à VPN.

Para isso, vamos criar um script que automaticamente desative o IPv6:

sudo vim /etc/network/if-up.d/disableipv6

E insira isto:

#!/bin/sh

if [ "$IFACE" = "tun0" ]; then
  sysctl -w net.ipv6.conf.all.disable_ipv6=1
  sysctl -w net.ipv6.conf.default.disable_ipv6=1
fi

Se você não usa o adaptador tun0, troque-o no script (ex.: para tap0).

Depois torne o script executável:

sudo chmod +x /etc/network/if-up.d/disableipv6

Com isso pronto, vamos criar o par correspondente, que reabilita o IPv6 após a desconexão:

sudo vim /etc/network/if-post-down.d/enableipv6

E copie isto:

#!/bin/sh

sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.default.disable_ipv6=0

E também torne este executável:

sudo chmod +x /etc/network/if-post-down.d/enableipv6

Depois teste se, após conectar e desconectar, há um endereço IPv6 atribuído à interface de rede com o comando ‘ifconfig -a’.