Vou tratar isso como um problema XY : seu objetivo ( X) é que alguns aplicativos usem uma VPN e deixem de ter conexão com a Internet quando a VPN for desativada. Você pensa que precisa (Y) para fazer isso com regras de firewall e um kill switch, mas há uma solução muito mais fácil: namespaces de rede .
Portanto, configure o OpenVPN para criar a interface tun
em um novo namespace de rede (por exemplo, esta questão ). Em seguida, inicie todos os seus aplicativos que devem acessar a Internet somente através da VPN dentro deste namespace (usando ip netns exec
, veja o link acima). Se a VPN for desativada, os aplicativos não terão mais acesso à Internet. Se subir novamente, eles terão novamente acesso.
Como bônus, qualquer aplicativo em execução no namespace principal ainda poderá acessar a internet diretamente, sem a VPN (e, portanto, com uma conexão mais rápida).
Tentar fazer isso com regras de firewall está mais envolvido, porque é claro que você só pode configurar as regras de firewall depois que todos os endereços IP relacionados à VPN forem conhecidos. Um firewall funciona em bases IP, então não há como evitar isso.
Eu não tenho ideia do que o AFWall + realmente faz (você tentou descobrir?). Talvez esteja usando namespaces internamente ...