No se pueden cambiar las rutas con el cliente VPN

8

Mi conexión VPN fuerza todo el tráfico de Internet a través del túnel, y eso es muy lento. Quiero poder canalizar solo ciertas direcciones IP y hacerlo a mi lado (del lado del cliente).

Me estoy conectando a una VPN con Cliente FortiSSL , la tabla de rutas se ve así antes de establecer una conexión:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.101     40
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.0.0    255.255.255.0         On-link     192.168.0.101    276
    192.168.0.101  255.255.255.255         On-link     192.168.0.101    276
    192.168.0.255  255.255.255.255         On-link     192.168.0.101    276
    192.168.119.0    255.255.255.0         On-link     192.168.119.1    276
    192.168.119.1  255.255.255.255         On-link     192.168.119.1    276
  192.168.119.255  255.255.255.255         On-link     192.168.119.1    276
    192.168.221.0    255.255.255.0         On-link     192.168.221.1    276
    192.168.221.1  255.255.255.255         On-link     192.168.221.1    276
  192.168.221.255  255.255.255.255         On-link     192.168.221.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link     192.168.119.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.221.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.0.101    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link     192.168.119.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.221.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.0.101    276

Después de conectarlo se ve así:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.101   4265
          0.0.0.0          0.0.0.0         On-link        172.16.0.1     21
        127.0.0.0        255.0.0.0         On-link         127.0.0.1   4531
        127.0.0.1  255.255.255.255         On-link         127.0.0.1   4531
  127.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
       172.16.0.1  255.255.255.255         On-link        172.16.0.1    276
      192.168.0.0    255.255.255.0         On-link     192.168.0.101   4501
    192.168.0.101  255.255.255.255         On-link     192.168.0.101   4501
    192.168.0.255  255.255.255.255         On-link     192.168.0.101   4501
    192.168.119.0    255.255.255.0         On-link     192.168.119.1   4501
    192.168.119.1  255.255.255.255         On-link     192.168.119.1   4501
  192.168.119.255  255.255.255.255         On-link     192.168.119.1   4501
    192.168.221.0    255.255.255.0         On-link     192.168.221.1   4501
    192.168.221.1  255.255.255.255         On-link     192.168.221.1   4501
  192.168.221.255  255.255.255.255         On-link     192.168.221.1   4501
   200.250.246.74  255.255.255.255      192.168.0.1    192.168.0.101   4245
        224.0.0.0        240.0.0.0         On-link         127.0.0.1   4531
        224.0.0.0        240.0.0.0         On-link     192.168.119.1   4502
        224.0.0.0        240.0.0.0         On-link     192.168.221.1   4502
        224.0.0.0        240.0.0.0         On-link     192.168.0.101   4502
        224.0.0.0        240.0.0.0         On-link        172.16.0.1     21
  255.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
  255.255.255.255  255.255.255.255         On-link     192.168.119.1   4501
  255.255.255.255  255.255.255.255         On-link     192.168.221.1   4501
  255.255.255.255  255.255.255.255         On-link     192.168.0.101   4501
  255.255.255.255  255.255.255.255         On-link        172.16.0.1    276

El cliente VPN pone una ruta de alcance general con una métrica más baja que todas mis otras rutas y esto enruta todo el tráfico de Internet a través del túnel. Intenté cambiar la métrica de mi ruta de Internet predeterminada a un valor inferior:

C:\Windows\system32>route change 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 10 if 13
OK!

Pero nada cambió.

Luego intenté eliminar la ruta "catch-all" de la VPN, la que tiene la métrica 21 arriba:

C:\Windows\system32>route delete 0.0.0.0 mask 0.0.0.0 if 50
OK!

Y se rompió todo:

C:\Windows\system32>ping 8.8.8.8

Pinging 8.8.8.8 with 32 bytes of data:
PING: transmit failed. General failure.

También intenté cambiar la métrica en los adaptadores, pero el Cliente FortiSSL anula todas las configuraciones cuando se conecta, por lo que no ayudó.

La solución debe venir de mi lado, ya que la gente del otro lado tarda días en responder.

Estoy ejecutando Windows 7 x64 si eso ayuda.

- ACTUALIZACIÓN (2013-12-24) -

Gracias a mbrownnyc La punta de, examiné el tema con Rohitab y descubrió que el cliente FortiSSL observa la tabla de rutas con el NotifyRouteChange Llamada de API de ayuda de IP.

Puse un punto de interrupción antes NotifyRouteChange Llamé y usé la opción "Omitir llamada" para evitar que FortiSSL reiniciara las métricas de ruta, y ahora tengo

Routes with metrics favoring my Wifi adapter

Sin embargo, cuando ejecuto tracert, mi ruta aún sale a través de la VPN:

C:\Windows\system32>tracert www.google.com

Tracing route to www.google.com [173.194.118.83]
over a maximum of 30 hops:

  1    45 ms    47 ms    45 ms  Jurema [172.16.0.1]

¿Hay algún aspecto de la red de Windows que no conozca que pueda favorecer una determinada ruta incluso si las métricas de las rutas de impresión dicen lo contrario?

Juliano
fuente
¿No es el punto para que su cliente VPN aplique esa política? La compañía probablemente tiene una política de seguridad que requiere que usted no use un túnel dividido, y eludir esa política sería un riesgo de seguridad.
Ryan Ries
Muy por el contrario. Ahora tengo acceso a los servicios web restringidos de IP de los socios de esta compañía, ya que mi tráfico web sale a través de su dirección IP de Internet. Es una configuración muy perezosa por su parte, ya que en "Voy a canalizar todo a través de la VPN para que nunca tenga que agregar otra IP o subred a la tabla de rutas".
@Juliano El objetivo de evitar un túnel dividido es evitar que los usuarios entren en un túnel y luego tengan acceso a los datos en el otro túnel. Espero que tenga el mismo acceso a la red a la que está haciendo el túnel, que tendría si estuviera en la red. Sin embargo, no desea utilizar un túnel dividido para otorgar ese acceso al mundo.
BillThor
2
En realidad, si estuviera en esa red, podría configurar mis rutas y métricas para dar prioridad a la conexión a Internet que deseara (3g / 4g, es decir,). Tendría esa opción porque no estaría sujeto a un cliente VPN ridículamente restrictivo. En teoría, prevenir el túnel dividido suena bien, pero me limita mucho más que si estuviera físicamente en esa red. Ustedes están justificando una implementación de seguridad que me está perjudicando en lugar de ayudarme a encontrar una salida, que es la pregunta en cuestión. ¿Cómo puedo pasar por alto esto?
También hay métricas de interfaz: ncpa.cpl & gt; Propiedades de NIC & gt; Propiedades de entrada de la pila IP v4 & gt; Pestaña General / Avanzado & gt; Métrica automática. Mira allí en ambas interfaces. Ver también esta entrada de blog sobre Windows multihomed .
mbrownnyc

Respuestas:

2

Tenga en cuenta que no estoy usando la notación de red regular para direccionar aquí (como CIDR o incluso host/mask notación, para no confundir al que pregunta).

En lugar de eliminar su ruta de "puerta de enlace predeterminada" ( 0.0.0.0 mask 0.0.0.0 ) para que su pila de red no tenga idea de dónde enviar la mayoría de los paquetes, intente elevar la métrica de la ruta VPN por debajo de la de su ruta predeterminada (en este caso 4265 ).

Después de conectar con el cliente Fortigate:

route change 0.0.0.0 mask 0.0.0.0 172.16.0.1 metric 4266 if N

Donde N es el número de interfaz para el fortissl interfaz devuelta a principios de route print.

La pila de redes debe tratar esto correctamente:

  • La ruta que "incluye las direcciones de destino" manejará los paquetes (la ruta le dice a la pila de la red que envíe paquetes destinados a this IP a this gateway para más enrutamiento).
  • Todos los paquetes con una IP de destino 172.16.*.* será enviado a la VPN; porque la pila de la red de Windows sabe que si hay una dirección adjunta a una interfaz, entonces esa interfaz es la forma en que accede a otras IP en ese rango de direcciones. Puedo obtener más explícito con el rango si publica la "Máscara de subred" para el 172.16.0.1.

Debe determinar las direcciones IP de los recursos a los que necesita acceder a través de la VPN. Puedes hacerlo fácilmente usando nslookup [hostname of resource] Cuando está conectado sin haber ajustado las rutas.

[despotricar]

No tengo ningún problema en permitir el túnel dividido a través de VPN, especialmente debido al problema de uso que cita. Si su departamento de TI considera un mecanismo de seguridad de túnel dividido, necesitan repensar lo que están haciendo:

  • El acceso de los clientes de VPN a los recursos debe ser aislado y restringido en gran medida, como si se accediera a ellos a través de Internet (porque los activos donde no se ejerce el control completo representan un riesgo mayor que los activos donde se pueden afirmar algunos).
  • Deben integrar un mecanismo de control de acceso a la red para clientes VPN. Esto podría permitirles aplicar algunas políticas en los equipos cliente (como "¿Están las definiciones de antivirus actualizadas?", Etc., etc.).
  • Considere usar una solución rígida como El Escritorio Virtual VPN SSL de Fortigate (que es bastante fácil de configurar y gratis [me parece] con la licencia SSL VPN).

[/despotricar]

mbrownnyc
fuente
Cuando trato de cambiar la métrica de ruta 0.0.0.0 de la VPN a un valor más alto que la ruta de Internet, FortiSSL Client configura mi ruta de Internet a una métrica aún más alta.
Juliano
Había dos rutas de puerta de enlace predeterminadas en la tabla "después". El 0.0.0.0 de la VPN y el 0.0.0.0 de la tarjeta wifi. Eliminé la puerta de enlace predeterminada de la VPN, pero dejé la de la tarjeta wifi, que debería hacer que fuera como antes, pero rompió todo. O fortissl hace algo a la pila para evitar que las personas hagan lo que estoy tratando de hacer, o lo estoy haciendo mal.
Juliano
Son interfaces diferentes, por lo que debería poder ajustar los costos de ruta de las rutas por separado. Si el cliente observa la tabla de enrutamiento, nada te ayudará. El cliente VPN de Cisco está configurado con un archivo PRF que se puede controlar en el sistema. El cliente SSL Fortigate es probablemente el mismo, ya sea registro o archivo. Simplemente no estoy seguro de dónde estaría el escenario. Hurgue un poco y puede encontrar algo que le permita configurar el cliente. Además, el "soporte para túnel dividido" se configura en "lado del servidor" / en la unidad Fortigate.
mbrownnyc
Mira dentro: HKEY_CURRENT_USER\Software\Fortinet\SslvpnClient. Tunnel debería ser interesante Por favor, devuelva lo que encuentre. O responde y marca como community wiki para que puedas ayudar a los demás.
mbrownnyc
1
Demasiado. No estoy seguro de su situación, pero ¿vale la pena presentar una solicitud de túnel dividido? De lo contrario, parece que tendrás que secuestrar algunas llamadas API con algo como rohitab o los desvíos de MSFT. ¡Podría ser un proyecto de fin de semana divertido!
mbrownnyc