Conexión automática a OpenVPN solo cuando se usa Wifi, no en Ethernet

Conexión automática a OpenVPN solo cuando se usa Wifi, no en Ethernet

Tengo un servidor OpenVPN configurado en mi red doméstica usando dispositivos TAP (en lugar de TUN), de modo que los clientes que se conectan a la red de forma remota están conectados a la misma subred que mi red doméstica (cableada).

Sin embargo, tengo una computadora portátil que conecto en casa usando Ethernet y uso WiFi en otros lugares (trato de no usar WiFi en casa; es un desastre en los edificios de apartamentos abarrotados de Manhattan). También me gusta tener direcciones IP fijas para cada dispositivo en mi red, así que arreglo la configuración IP para su adaptador Ethernet y uso la misma IP también para el dispositivo TAP cuando me conecto a la VPN (usando undirectorio de configuración del clienteen el lado del servidor).

¿Existe una forma buena y mínimamente pirateada de configurar el servicio OpenVPN en mi computadora portátil para que solo se conecte a OpenVPN cuando la conexión Ethernet no esté activa? Tener el servicio OpenVPN ejecutándose automáticamente en segundo plano es muy conveniente y no quiero tener que apagarlo manualmente cada vez que me conecto a Ethernet, pero intentar conectarlo a la misma red en la que ya estoy físicamente. VPN usando la misma dirección IP que ya estoy usando obviamente no es una buena idea...

Estoy seguro de que podría piratear algo junto con los scripts de inicio, pero me gustaría minimizar mi divergencia con la configuración oficial de Ubuntu tanto como sea posible. Realmente agradecería que alguien pudiera pensar en un enfoque más "adecuado".

Respuesta1

Jugué y encontré una solución que funciona para mi configuración. No es una solución completamente general, por lo que es de esperar que alguien pueda venir y ofrecer una solución más sólida.

En lugar de deshabilitar OpenVPN en mi computadora portátil cuando estoy en Ethernet, simplemente configuré ufw (Uncomplicated Firewall) en el servidor OpenVPN de mi red para rechazar conexiones de la subred local; Sin embargo , es un poquito más complicado que simplemente crear reglas usando sudo ufw allow ...y sudo ufw deny ...:

  • Primero, si está ejecutando ufw en una máquina que conecta una VPN a una red local (lo cual estoy haciendo), necesita configurar ufw para permitir el reenvío de tráfico, ya que lo elimina de forma predeterminada. Esto significa cambiar DEFAULT_FORWARD_POLICY="DROP"a DEFAULT_FORWARD_POLICY="ACCEPT"./etc/default/ufw

  • En segundo lugar, debes asegurarte de agregar reglas en el orden correcto; ufw procesa las reglas una por una y usa la que rechaza conexiones a OpenVPN (puerto 1149) dentro de su subred antes de permitirlas desde afuera solo si las crea en ese orden; en mi caso, esto significó ejecutar sudo ufw delete deny from 192.168.16.0/20 to any port 1194(no, eso no es un error tipográfico, de hecho uso una subred /20 localmente :D) antes de ejecutar sudo ufw allow 1194.

  • Por último, debe asegurarse de que las conexiones de su red local realmentehacerParece que provienen de su red local, por lo que se invoca la regla ufw.

La última parte es importante porque inicialmente ese no era el caso cuando intenté los dos primeros pasos; mi computadora portátil OpenVPN está configurada automáticamente para intentar conectarse a mi VPN en mydomainname.com, que está asignada dinámicamente al enrutador de mi hogar, que a su vez reenvía el puerto 1194 a la computadora que ejecuta mi VPN en 192.168.16.1. Puede que este no sea el caso para todos los enrutadores, pero al menos para mi enrutador, conectarse mydomainname.comdesde la subred local crea una conexión al servidor OpenVPN que parece tener la dirección IP del enrutador, en lugar de la de la computadora portátil. (Y es una larga historia, pero en realidad quiero permitir el acceso VPN desde otros dispositivos conectados al enrutador, en una subred diferente; tengo una configuración doméstica bastante complicada: D).

La solución en mi caso terminó siendo configurar el servidor DNS de mi enrutador con una asignación estática de mydomainname.coma 192.168.16.1, de modo que, de lo contrario, mydomainname.comse resuelva directamente 192.168.16.1en la IP externa de mi enrutador. Esto funciona para mí, pero su kilometraje puede variar.

información relacionada