¿Cómo rechazar rutas que son EMPUJADAS por el servidor OpenVPN?

27

Cuando establezco una conexión de cliente OpenVPN a través de Internet a nuestro servidor corporativo OpenVPN, empuja varias rutas estáticas. Desafortunadamente, estas rutas rompen cierta conectividad dentro de mi entorno de red local, ya que chocan con mis propias rutas. ¿Cómo puedo rechazar esas rutas?

mbaitoff
fuente

Respuestas:

30

Los tiempos han pasado, y a partir de 2017 (OpenVPN 2.4) esto es posible con

pull-filter accept "route 192.168."
pull-filter ignore "route 172."
pull-filter accept "route 1"
pull-filter ignore "route "

Este (ejemplo artificial) permitirá aprender rutas que comienzan con 192.168, ignora todas las 172. rutas, permite otras rutas a 1. cualquier cosa y luego ignora todas las demás rutas.

Para ignorar redirect-gatewaypuedes:

pull-filter ignore redirect-gateway

Estos comandos se agregan a su archivo de configuración del cliente.

Del mismo modo, puede usar la palabra clave rejectque le dice al servidor VPN que no fue aceptada. No estoy seguro del uso de esto.

Y finalmente, también puede filtrar otras opciones de configuración. Usé esto para ignorar los servidores DNS que se ofrecen, porque DNS es manejado por un servidor local para mí.

Criggie
fuente
3
Tenga en cuenta que esto solo funciona en OpenVPN 2.4.x.
ab77
Trabajé en OpenVPN 2.4.7 usando la GUI de OpenVPN 11.13.0 en Windows 10 para resolver conflictos de subred entre dos servidores de acceso OpenVPN, ambos usando configuraciones predeterminadas que necesito al mismo tiempo. ¡Gracias por proporcionar la pieza final para que funcione!
flickerfly
24

Después de un extenso estudio del openvpnmanual, he encontrado una respuesta a mi pregunta:

Si no desea que las rutas se ejecuten automáticamente, pero que sean manejadas por su propia herramienta, use la siguiente opción:

   --route-noexec
          Don't add or remove routes automatically.  Instead pass routes to --route-up script using environmental variables.

Si está aceptando todo lo que empuja el servidor excepto las rutas, use la siguiente opción:

  --route-nopull
          When used with --client or --pull, accept options pushed by server EXCEPT for routes.
          When used on the client, this option effectively bars the server from adding routes to the client's routing table, however note that
          this option still allows the server to set the TCP/IP properties of the client's TUN/TAP interface.
mbaitoff
fuente
2
Para su información, también puede usarla route-nopullen el archivo de configuración .opvn: stackoverflow.com/questions/35698215/…
knocte
1

No se puede negar rutas individuales, por eso si usted tiene acceso para editar la configuración de OpenVPN, entonces puede detener efectivamente el servidor --pushing cualquier configuración para que mediante la eliminación de todas las instancias del cliento pullde su configuración. En su lugar, deberá agregar tls-clientsi esta directiva aún no existe en su configuración ( clientes solo un sinónimo de pull, tls-client).

Por supuesto, si hace eso, perderá todas las rutas y cualquier otra configuración que normalmente se le pushindicaría, por lo que deberá configurar estas configuraciones manualmente después de que aparezca su túnel.

Mike Insch
fuente
Hola Mike, ¿y cómo configurar manualmente una ruta a la subred que me interesa? (10.0.0._) ¿alguna forma de configurar esto en el archivo .opvn?
Knocte
ruta 10.0.0.0 255.0.0.0
markhorrocks