Tengo una VPN a la que me conecto (OpenVPN) mediante un nombre de dominio, no mediante IP. La IP de VPN es dinámica, puede cambiar en cualquier momento. Quiero que la única comunicación de mi máquina con Internet sea my.vpn.domain.com
ynadademás.
Usaría una búsqueda OpenDNS como my.vpn.domain.com
búsqueda, y creo que es lo suficientemente segura (suponiendo que también bloquee todas las IP/conexiones que no pertenecen al dominio vpn), y no veo mejores opciones basadas en la capa IP.
Mi propósito es tener un interruptor de interrupción de VPN que sea realmente bueno (sin fugas ni intervención manual).
Una vez que me haya conectado a la VPN a través de su dominio, debería poder my.vpn.domain.com
eliminar la restricción y permitir que mi firewall/iptables solo permita conexiones a través de tun0. Luego, si la conexión VPN se cae, comience nuevamente my.vpn.domain.com
solo, luego conecte VPN, luego permita todo tun0, etc.
¿Se puede hacer esto a través del archivo de hosts o de qué otra manera? Soy nuevo en las secuencias de comandos de Linux.
Respuesta1
¿Por qué no intentar algo como esto?
Configure iptables para descartar todas las consultas de DNS en su interfaz sin túnel, pero 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 openvpn para enviar todo el tráfico por el túnel una vez establecido
OpenVpn de forma predeterminada no dirige todo el tráfico por el túnel, pero se puede configurar para hacerlo con redirect-gateway
. Lea la sección 'Enrutamiento de todo el tráfico del cliente (incluido el tráfico web) a través de la VPN'aquí.
Configurar openvpn para reconectarse automáticamente
juegue con los valores de configuración ping-restart y keepalive.
ping 10
ping-restart 120
push "ping 10"
push "ping-restart 60"
or equivalently:
keepalive 10 60
Modifique según sea necesario, pero en un mundo perfecto, si marca la configuración de iptables y la configuración de openvpn keepalive, su máquina solo debería poder consultar my.vpn.domain, establecer y restablecer una conexión openvpn y enrutar esa conexión únicamente. Cuando esté disponible.
Si aún no ha leído el documento de openvpn sobreEjecutar un servidor OpenVPN en una dirección IP dinámicapara asegurarse de que la configuración del lado del servidor sea correcta.
...y si la máquina cliente es remota, asegúrese de permitir SSH a través de iptables para no bloquearse. Vaya con cuidado si es nuevo en iptables.