Eu tenho uma VPN e meu servidor frequentemente envia dados para um endereço IP privado que é roteado pela VPN. Quando o OpenVPN se estabelece ou morre, ele ativa/desativa as rotas.
Quero rotear nulo esse intervalo de IP privado de sair pela interface principal da Internet (eth0). Existe uma maneira fácil de fazer isso sem interferir nos comandos de rota provenientes do software VPN?
Iptables não vai fazer isso. eu tentei
iptables -A OUTPUT -i eth0 -p tcp -d 192.168.0.0/16 -j REJECT
Mas o iptables não funciona ao especificar uma interface na cadeia de saída.
Alguém sabe se existe uma maneira de adicionar uma rota fictícia apenas a uma interface específica (eth0), sem interferir em outras interfaces que possam estar usando essa rota?
Ps- Estou ciente de que 192.168.0.0/16 não é roteável pela INTERNET, mas por motivos de segurança, quero garantir que nenhum dado saia na rara chance de outro servidor local ou dispositivo de rede começar a escutar na sub-rede privada.
Sua especificação de interface na regra iptables está invertida.
Você especificou:
O uso
-i
corresponde ao tráfego que entra no sistema na interface nomeada.Em vez disso, você deseja corresponder ao tráfego que sai do sistema na interface nomeada, o que é feito com
-o
.(E você provavelmente não quer
-p tcp
entrar lá, caso contrário, o tráfego não TCP pode passar.)Além da resposta de Michael, acho que se deve bloquear o tráfego na
FORWARD
cadeia, pois aOUTPUT
cadeia se aplica apenas a pacotes gerados localmente e saindo do firewall. Tanto quanto eu sei, não se aplica a pacotes roteados.Você já tem a resposta que precisava para fazer isso com o iptables.
Se você quiser fazer isso com rotas, uma boa maneira é ter uma rota para 192.168.0.0/16 e fazer com que seu servidor vpn envie duas rotas um pouco mais específicas; no seu caso, as duas rotas seriam 192.168.0.0 /17 e 192.168.128.0/17
A rota /16 seria fixa e com roteamento nulo:
E seu servidor vpn (ou script vpn-up) forneceria os outros:
Na verdade, é isso que a
def1
opção do OpenVPN faz para substituir o gateway padrão sem mexer nas rotas existentes.