iptables bloqueia vpn da reconexão

1

Estou tendo um pouco de dificuldade com uma solução que eu criei para acesso VPN.

Aqui está o que eu quero:

  • todo o tráfego proveniente do dilúvio sempre passa pela VPN
  • quando a VPN é desconectada, a conexão à Internet do dilúvio é cortada
  • quando a VPN desconecta, ainda consigo acessar o daemen localmente por meio do SSH e do thin client
  • quando a VPN se reconectar, quero que a inundação restabeleça a conexão.

Aqui estão os iptables atuais que eu tenho:

sudo iptables -A OUTPUT -m owner --gid-owner pi -o lo -j ACCEPT
sudo iptables -A OUTPUT -m owner --gid-owner pi -d 10.0.0.0/16 \! -o tun0 -j ACCEPT
sudo iptables -A OUTPUT -m owner --gid-owner pi  \! -o tun0 -j REJECT

Isso funciona, mais ou menos. Tem alguns problemas:

  • após a desconexão da VPN, ela não pode se reconectar por causa da minha segunda regra (suponho)

Depois de alguma pesquisa, parece que não há nenhum recurso no iptables para aplicar regras baseadas no processo / aplicativo, apenas pelo gid ou uid. Isso está correto?

Então, meu raciocínio está correto de que a única solução seria executar um invasor como um usuário diferente e, em seguida, segmentar esse usuário específico nas regras de iptable? Desta forma, a VPN (que atualmente é executada pelo mesmo usuário como inundada) pode se reconectar.

PS. uma auditoria do meu iptables atual seria apreciada!

Obrigado a todos, agradeço a ajuda!

    
por William 10.12.2017 / 05:56

1 resposta

0

Suas regras do Netfilter estão na ordem errada: O terceiro nunca é atingido porque é um caso especial da segunda regra.

Em condições normais, os pacotes enviados por openvpn pertencem à raiz, porque o privilégio de superusuário é necessário para configurar uma interface e um roteamento. Assim, as regras específicas do usuário não devem corresponder.

Você pode usar tcpdump para verificar se os pacotes da nova conexão OpenVPN saem do seu sistema. Se não, você pode usar o TRACE alvo do Netfilter para ver o que acontece com eles.

    
por 10.12.2017 / 15:50