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.com
enadaoutro.
Eu usaria uma pesquisa OpenDNS como my.vpn.domain.com
pesquisa 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.com
suspender 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.com
apenas, 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.