Configure nftables para permitir conexões somente através de uma VPN e bloquear todo o tráfego IPv6

0

Estou tentando configurar um firewall nftables na minha distribuição archlinux que permite apenas o tráfego por meio de uma VPN (e bloqueia todo o tráfego IPv6 para evitar vazamentos de IPv6)

Eu tenho brincado com isso por um tempo agora e acabei com uma configuração que me permite navegar na web, mesmo que, até onde eu entendo, até agora, não deveria me deixar fazer isso. O conjunto de regras é bem curto e se parece com isso:

table inet filter {
    chain input {
            type filter hook input priority 0; policy drop;
            jump base_checks
            ip saddr VPN_IP_ADRESS udp sport openvpn accept
    }

    chain forward {
            type filter hook forward priority 0; policy drop;
    }

    chain output {
            type filter hook output priority 0; policy drop;
            ip daddr VPN_IP_ADRESS udp dport openvpn accept
            oifname "tun0" accept
    }

    chain base_checks {
            ct state { related, established} accept
            ct state invalid drop
    }
}

Eu tentei encontrar meu caminho com tentativa e erro e tinha muitas outras regras lá, mas apenas com isso, eu posso me conectar ao servidor VPN primeiro e depois navegar na web. Depois que eu remover a última regra da cadeia de saída, ela não me permitirá mais navegar na web.

Eu sou completamente novo nisso e praticamente sem noção, tentando aprender. Infelizmente, a documentação sobre nftables não é tão extensa, então estou meio que preso no momento.

Pelo que entendi até agora, essa configuração deve permitir fazer uma conexão com a vpn, mas ela não deve permitir nenhum outro tráfego de entrada - ainda assim, posso navegar na web sem problemas.

Alguém sabe por que funciona e como devo proceder com a configuração do nftables para obter uma configuração mais completa?

    
por user246093 11.08.2017 / 16:18

1 resposta

0

Você permite o tráfego de entrada com state related e established . O tráfego HTTP é iniciado pelo seu cliente enviando uma solicitação, as respostas serão correspondidas pela regra established na cadeia de saída. Supondo que o seu roteamento vai via VPN, o tráfego inicial é aceito pela regra oif "tun0" accept .

    
por 11.08.2017 / 17:51