Linux - bloqueie todas as conexões, exceto domínio IP dinâmico VPN

Linux - bloqueie todas as conexões, exceto domínio IP dinâmico VPN

Eu tenho uma VPN à qual me conecto (OpenVPN) via nome de domínio, não via IP. O IP da VPN é dinâmico, pode mudar a qualquer momento. Quero que a única comunicação da minha máquina com a Internet seja my.vpn.domain.comenadaoutro.

Eu usaria uma pesquisa OpenDNS como my.vpn.domain.compesquisa e acredito que seja segura o suficiente (supondo que também bloqueie todos os IPs/conexões que não pertencem ao domínio VPN) e não vejo melhores/outras opções baseadas na camada IP.

Meu objetivo é ter um killswitch VPN que seja realmente bom (sem vazamentos ou intervenção manual).

Depois de me conectar à VPN por meio de seu domínio, poderei my.vpn.domain.comsuspender a restrição e permitir que meu firewall/iptables permita apenas conexões por meio de tun0. Então, se a conexão VPN cair, comece novamente my.vpn.domain.comapenas, conecte-se à VPN e permita todos os tun0 etc.

Isso pode ser feito através do arquivo hosts ou de outra forma? Sou novo em scripts Linux.

Responder1

Por que não tentar algo assim:

Configure o iptables para descartar todas as consultas de DNS em sua interface sem túnel, mas permita my.vpn.domain

iptables -A INPUT -o eth0 -p udp -s $your_dns_server --sport 53 -m state --state ESTABLISHED     -j ACCEPT
iptables -A INPUT -o eth0 -p udp --dport 53 -j DENY

iptables -A OUTPUT -o eth0 -p udp --dport 53 -m string --string my.vpn.domain --algo bm -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp -d $your_dns_server --dport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 -j DROP

Configure o openvpn para enviar todo o tráfego pelo túnel, uma vez estabelecido

Por padrão, o OpenVpn não roteia todo o tráfego pelo túnel, mas pode ser configurado para fazer isso com redirect-gateway. Leia a seção 'Roteamento de todo o tráfego do cliente (incluindo tráfego da web) através da VPN'aqui.

Configure o openvpn para reconectar automaticamente

brinque com os valores de configuração ping-restart e keepalive.

ping 10
ping-restart 120
push "ping 10"
push "ping-restart 60"

or equivalently:

keepalive 10 60

Ajuste conforme necessário, mas em um mundo perfeito, se você discar suas configurações de iptables e as configurações de keepalive do openvpn, sua máquina só deverá ser capaz de consultar my.vpn.domain, estabelecer e restabelecer uma conexão openvpn e rotear apenas essa conexão Quando disponível.

Se você ainda não leu o documento openvpn sobreExecutando um servidor OpenVPN em um endereço IP dinâmicopara garantir que a configuração do servidor esteja correta.

... e se a máquina cliente for remota, certifique-se de permitir o SSH via iptables para não se bloquear. Vá com cuidado se você for novo no iptables.

informação relacionada