Em termos de segurança, vejo alguns possíveis vazamentos:
- O iptables não bloqueia o tráfego IPv6. Você vai querer adicionar regras ip6tables que espelham suas regras do iptables.
- É possível que em algum momento você tenha uma interface de rede diferente da wlp6s0 voltada para a Internet. Para cuidar disso, eu recomendo regras que permitam tráfego lo e para tun0 (ou qualquer que seja sua interface VPN), para permitir o tráfego em qualquer interface para o servidor VPN, e para bloquear todo o tráfego.
- Você especifica apenas o IP do servidor VPN e não um protocolo ou porta. Se o servidor VPN também executar outros serviços, você estará permitindo que o tráfego seja desmarcado.
Também há alguns problemas de usabilidade com as regras que você já tem:
- Parece que você especificou seu servidor VPN por nome de host e não por endereço IP. Sem exceção às suas regras de DNS, você não poderá resolver esse nome de host se ainda não estiver na VPN. Obviamente, a maneira mais simples de contornar isso é usar um IP em vez de um nome de host, mas você pode não ser capaz de fazer isso se for dinâmico. Consertar isso com segurança não é tão simples quanto permitir todo o tráfego de DNS para resolver1.opendns.com, já que você poderia acabar vazando todo o tráfego de DNS para eles.
- Você não tem uma exceção para o DHCP, portanto, não poderá obter um endereço IP dinâmico. Se você usa um endereço IP estático, isso não importa, mas se você não fizer isso, você não conseguirá se conectar à rede.