¿Cómo conectarse a un sistema operativo invitado VirtualBox a través de una VPN?

¿Cómo conectarse a un sistema operativo invitado VirtualBox a través de una VPN?

Tengo un invitado de Oracle Linux que ejecuta un servidor web en VirtualBox en un host de Windows 7. Necesito configurar la red para poder hacer 3 cosas:

  1. el anfitrión puede conectarse con el invitado a través de un navegador y ssh
  2. el invitado puede hablar con otros servidores en la red interna a través de la VPN del anfitrión
  3. El huésped puede acceder a Internet exterior.

Leí algunas respuestas y probé algunas configuraciones, y esto es lo que sucede:

puenteado

  1. el anfitrión no puede comunicarse con el huésped
  2. el invitado no puede ver a través de VPN
  3. el huésped puede acceder a internet

NAT

  1. el anfitrión no puede comunicarse con el huésped
  2. el huésped puede ver a través de VPN
  3. el huésped no puede acceder a internet

Solo anfitrión

las 3 condiciones fallan.

Red NAT

  1. el anfitrión no puede comunicarse con el huésped
  2. el huésped puede ver a través de VPN
  3. el huésped no puede acceder a internet

También debo señalar que a veces el host se conecta a través de una VPN, mientras que otras veces simplemente se conecta directamente a la red corporativa. Cuando se conecta directamente, un adaptador puente satisface las 3 condiciones. Lo ideal sería una configuración que satisfaga las 3 condiciones independientemente de si hay una VPN o una conexión directa.

Respuesta1

tuve elexactomismo problema y lo solucioné, por lo que estaré encantado de explicarle el problema y la solución en detalle.

Sin involucrar una VPN

Es importante comprender la configuración que se requiere para cumplir con sus requisitos.sininvolucrando una VPN. Además, esta información supone que ningún firewall de software está interfiriendo, ni en el host ni en el invitado.

Sin una VPN, esto normalmente se soluciona creando dos adaptadores de red en la configuración de la máquina virtual.

El primer adaptador debe configurarse en NATmodo, lo que permite al invitado acceder a los recursos de la red (incluido Internet) a través de la interfaz de red del host.

Adaptador 1: NAT

El segundo adaptador debe configurarse en Host-only, lo que permite la comunicación bidireccional entre el anfitrión y el invitado.

Este adaptador es un poco más complejo de configurar que el primero, porque requiere modificar las preferencias de red global de VirtualBox para configurar el adaptador de solo host (nota: esto requiere privilegios de administrador).

En VirtualBox, vaya a File -> Preferences -> Network. Haga clic en la Host-only Networkspestaña y haga clic en el pequeño +icono para agregar un nuevo adaptador. Se le pedirá que aumente los permisos de VirtualBox.

AdapterEs obligatorio completar la pestaña; Debería verse así (ignore el adaptador etiquetado #2; que se usa para algo no relacionado):

Preferencias de red 1

Los valores en la DHCPpestaña del servidor son opcionales. Si tiene la intención de codificar la dirección IP para este adaptador dentro de la configuración de red del invitado, entonces estos valores son innecesarios. Si, por el contrario, desea utilizar DHCP, los valores podrían verse así:

Preferencias de red 2

El último paso con respecto a la configuración de VirtualBox es volver a la configuración de red de la VM y agregar el segundo adaptador, que hace referencia al adaptador de solo host que acabamos de crear:

Adaptador 2: solo host

Ahora, en el sistema operativo invitado, la red debe configurarse para utilizar estas dos interfaces de red.

En Debian o Ubuntu GNU/Linux, la configuración es tan sencilla como modificarla /etc/network/interfacespara que quede así:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The secondary network interface
auto eth1
iface eth1 inet static
     address 192.168.56.101
     netmask 255.255.255.0

(El purista puede preferir utilizar el /etc/network/interfaces.ddirectorio, pero eso está más allá del alcance de esta explicación)

Reinicie los servicios de red del invitado o, más simplemente, reinicie toda la máquina virtual invitada y todo debería "simplemente funcionar".

En este punto, uno debería poder hacer ping a la máquina virtual invitada 192.168.56.101y recibir una respuesta (siempre que un firewall de software no esté interfiriendo).

Del mismo modo, uno debería poder hacer ping al host en 10.0.2.2. Esta dirección IP parece estar "codificada" en la implementación NAT de VirtualBox, o al menos especificada mediante alguna directiva de configuración no obvia, y hay poca información disponible sobre su origen. Pero, por desgracia, "simplemente funciona".

Dada esta configuración, se cumplen las tres condiciones descritas en su pregunta.

Ingrese: la VPN

Pero aquí está el problema. La introducción de la VPN provoca un problema espectacular (bueno, dependiendo de la VPN específica y su configuración).

Las VPN modernas son capaces deTúnel dividido, que es necesario para que la configuración de VirtualBox antes mencionada funcione según sus tres requisitos. Por (buenas) razones de seguridad, el túnel dividido a menudo está deshabilitado, y este es precisamente el problema en su caso (y el mío).

Cuando se conecta a la VPN, el cliente VPN (Cisco AnyConnect Secure Mobility Client, 3.1.02026, en mi caso) examina las tablas de enrutamiento de la computadora host, las recuerda y luego las cubre con valores que generalmente provienen de alguna fuente centralizada. ubicación administrada (es decir, incluso con privilegios de administrador local, es imposible anular la configuración).

Puede examinar las tablas de enrutamiento usted mismo abriendo command.exe(en Windows):

C:\>route print

Antes de conectarse a la VPN, la tabla de enrutamiento contiene entradas cruciales que permiten que esta configuración de VirtualBox funcione correctamente. La conexión a la VPN hace que se eliminen estas entradas, lo que impide la comunicación entre el anfitrión y el invitado.

(Hay muchas otras entradas que he omitido aquí porque son irrelevantes para la causa raíz de este comportamiento).

Antes de conectarse a la VPN:

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

Después de conectarse a la VPN:

     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

El cliente VPN elimina las siguientes líneas:

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266

Sin esas dos últimas entradas, el anfitrión y el invitado no pueden comunicarse, y este es precisamente el comportamiento previsto cuando el túnel dividido está deshabilitado en la configuración de VPN.

Normalmente, estos dos comandos restaurarían esas rutas:

C:\>route ADD 192.168.56.0 MASK 255.255.255.0 192.168.56.1 METRIC 266
C:\>route ADD 192.168.56.255 MASK 255.255.255.255 192.168.56.1 METRIC 266

Pero el cliente VPN permanece alerta: intercepta los intentos de modificar la tabla de enrutamiento. Mi cliente parece permitir la segunda entrada, pero no la primera. (Y puede allanar ambos de forma periódica; no hice pruebas para eso).

SiSu VPN específica y su configuración asistente permiten habilitar el túnel dividido, normalmente se activa así:

Cliente VPN de Cisco: permite el acceso a los recursos de la LAN

Al desconectarse de la VPN, los clientes VPN con buen comportamiento restaurarán las tablas de enrutamiento que estaban vigentes antes de conectarse. Mi cliente VPN parece hacer esto de manera confiable, lo cual es beneficioso porque significa que no es necesario reiniciar la máquina virtual invitada cuando me conecto o me desconecto de la VPN. En tales casos, el adaptador secundario de la VM se reinicia, pero vuelve a adquirir su dirección IP de forma automática y transparente, restaurando la comunicación entre el host y el invitado casi de inmediato. Mejor aún, los montajes NFS entre el host y el invitado (estoy usando montajes CIFS) permanecen conectados a través de las operaciones de conexión/desconexión de VPN.

En el improbable caso de que su VPN permita el túnel dividido, puede ser una simple cuestión de habilitarlo, en cuyo caso, me encantaría saber de usted si "todo simplemente funciona" o no.

Respuesta2

Cómo uso mi VPN de host de Windows en una máquina Linux invitada

1-) Abre la configuración de tu VPN. Especifique algunos números de puerto locales.

configuración de VPN

2-) Abra la configuración de su máquina virtual. Asegúrese de que la red esté conectada a NAT. Luego haga clic en Avanzado y Reenvío de puertos.

ingrese la descripción de la imagen aquí

3-) Haga clic para agregar regla e ingrese los mismos números de puerto que ha especificado en su VPN

reenvío de puertos

4-) Inicie su Máquina Virtual. Vaya a su Configuración de red. Seleccione manual e ingrese 10.0.2.2 (Puerta de enlace NAT de virtualbox predeterminada) en la dirección IP y los puertos que hemos especificado antes.

configuración de red de Linux

5-) Abre Firefox, ve a whoer.net y comprueba si tu VPN funciona. TODO LISTO

quién

información relacionada