Explicación detallada del enrutamiento VPN de sitio a sitio

Introducción

Una configuración de sitio a sitio es aquella en la que dos (o más) redes diferentes están conectadas entre sí utilizando un túnel OpenVPN. En este modelo de conexión, los dispositivos de una red pueden alcanzar los dispositivos de la otra red, y viceversa. La implementación de esto es, en lo que respecta al Servidor de Acceso, relativamente simple. La parte más difícil viene cuando se trata de cortafuegos y opciones de filtrado de seguridad, y la alteración de las tablas de enrutamiento en los routers y pasarelas de Internet, ya que hay tantos de ellos de diversas marcas y modelos, que no podemos documentarlos todos. Sin embargo, todos los routers deberían tener una cosa en común: la capacidad de enrutar el tráfico utilizando rutas estáticas. Con esa capacidad vienen los medios para enviar el tráfico de una red a otra, a través de un sistema de puerta de enlace que proporciona conectividad a la otra red. Un servidor de acceso OpenVPN con un cliente de puerta de enlace VPN de Linux constituye un sistema de puerta de enlace de este tipo, para formar un puente entre dos redes. Si su equipo de red también se ajusta adecuadamente, entonces se puede lograr una configuración de sitio a sitio que funcione de forma transparente para todos los dispositivos en las dos redes.

En esta página pretendemos proporcionarle una guía que le dé una idea de cómo funciona esto, para darle una comprensión de cómo se deben configurar las cosas para que funcionen.

Resumen de un ejemplo de configuración de sitio a sitio

En el diagrama de arriba, la sede de nuestra empresa de ejemplo está a la derecha, y allí hay ordenadores y servidores. Uno de los servidores tiene instalado el producto OpenVPN Access Server. Todos los ordenadores y servidores de esa red están conectados a un router (la pequeña caja cuadrada plana con el icono de un engranaje) que también proporciona acceso a Internet. A la izquierda hay una oficina subsidiaria que también tiene algunos ordenadores y servidores, todos conectados a su propio router que también proporciona acceso a Internet.

Uno de los servidores de la oficina subsidiaria tiene un programa cliente OpenVPN instalado en un sistema operativo Linux, que tiene una conexión de túnel OpenVPN activa con el OpenVPN Access Server de la sede. En este ejemplo de configuración de sitio a sitio, se ha abierto un acceso completo entre los ordenadores y servidores de la sede central y la oficina subsidiaria. En otras palabras, un usuario sentado en un ordenador de la oficina subsidiaria puede acceder a los servidores de la sede central como si estuviera allí, gracias a una conexión de túnel OpenVPN entre las dos redes. Este túnel OpenVPN viaja a través de Internet y su contenido está encriptado de forma segura.

Descripción paso a paso de cómo fluye el tráfico

Hemos creado una serie de imágenes que muestran cómo una solicitud de un ordenador cliente en la oficina subsidiaria llega a un servidor de aplicaciones en la oficina central, y cómo se envía una respuesta de vuelta. Cada paso del proceso se muestra claramente con líneas resaltadas e información de red relevante. Basta con recorrer las imágenes para ver una progresión paso a paso. Vale la pena señalar que este tipo de configuración todavía permite que otros clientes VPN se registren en el servidor de acceso OpenVPN y obtengan acceso a cualquiera de los dispositivos en estas 2 redes. Además, una configuración de sitio a sitio no necesita limitarse a una red subsidiaria, puede ser múltiple con la misma facilidad.

  • Cómo configurar el servidor de acceso OpenVPN para el sitioto-site

    Estamos asumiendo que ya tienes una instalación de OpenVPN Access Server funcionando, y que está instalado en su red privada detrás de un router con acceso a Internet y tiene una dirección IP privada, con el reenvío de puertos configurado para que pueda ser alcanzado desde el exterior, y con la configuración adecuada para que sea realmente alcanzable con un programa cliente OpenVPN desde el exterior. En otras palabras, que tenga una instalación del Servidor de Acceso OpenVPN que funcione y permita a los clientes OpenVPN conectarse. Si aún no ha instalado el Servidor de Acceso, hágalo primero. Consulte la página de opciones de instalación del Servidor de Acceso para obtener más información.

    En esta sección se describen los ajustes que hay que configurar en el Servidor de Acceso OpenVPN para hacer posible una configuración de sitio a sitio. Vamos a suponer que estamos configurando la configuración de sitio a sitio como se muestra en las imágenes de arriba, con las subredes utilizadas allí. Si sus subredes son diferentes, y es muy probable que lo sean, debe ajustarlas según sea necesario para que se ajusten a su situación. Nota importante: para que el site-to-site funcione es necesario que las subredes sean diferentes en las dos redes.

    Vaya a la interfaz de administración y vaya a la configuración de la VPN. En el elemento titulado Should VPN clients have access to private subnets (¿Deberían los clientes VPN tener acceso a subredes privadas?) establezca la selección en Yes, using routing (advanced) (Sí, utilizando enrutamiento (avanzado)) y en el campo de texto grande justo debajo especifique la subred de la red donde se encuentra su OpenVPN Access Server. Para compararlo con el ejemplo de configuración de sitio a sitio descrito en la serie de imágenes anterior, esto sería 192.168.70.0/24. Asegúrese de que la casilla para permitir el acceso desde las subredes privadas se deja marcada. Ahora guarde la configuración y actualice los servidores en ejecución.

    A continuación, vaya a Permisos de usuario y cree un nuevo usuario y contraseña. Si utiliza un sistema de autenticación externo como PAM, RADIUS o LDAP, asegúrese de que la cuenta existe allí. Por supuesto, tendrá que ser capaz de entrar y utilizar esta cuenta. En la nueva cuenta de usuario, marque la casilla de privilegios de inicio de sesión automático. A continuación, haga clic en «Mostrar» para ver más ajustes. Establezca la opción Configurar puerta de enlace VPN en sí y en el campo de texto grande que aparece debajo, introduzca la subred de la red remota donde se va a instalar el sistema de puerta de enlace del cliente Linux OpenVPN. En el ejemplo de configuración de sitio a sitio descrito en la serie de imágenes anterior, esto sería 10.0.60.0/24. Ahora guarde la configuración y actualice los servidores en ejecución.

    En lo que respecta al programa OpenVPN Access Server, esto es lo que completa una configuración de sitio a sitio en este extremo. Quedan varias cosas por configurar. El router de la red en la que se encuentra el Servidor de Acceso debe saber que existen subredes adicionales y que se puede acceder a ellas contactando con la dirección IP privada de la instalación del Servidor de Acceso. En nuestra red de ejemplo, el Servidor de Acceso OpenVPN tiene una IP de 192.168.70.222. También tiene una subred de cliente VPN de 172.16.0.0/20 y eventualmente tendrá una conexión de sitio a sitio corriendo a la subred 10.0.60.0/24. Para que el router conozca estas subredes adicionales, busque en la documentación de su dispositivo router, y busque cómo añadir rutas estáticas. Estas son las rutas estáticas que hay que añadir:

    • Red 172.16.0.0 con máscara de subred 255.255.240.0 a través de la pasarela 192.168.70.222
    • Red 10.0.60.0 con máscara de subred 255.255.255.0 a través de la pasarela 192.168.70.222
    • Notarás que estamos especificando una máscara de subred. La mayoría de los equipos de enrutamiento quieren que se especifique de esta manera en lugar de utilizar el formato CIDR con el /24 y /20 y así sucesivamente. Hay tablas que puede buscar en línea que puede utilizar para convertir fácilmente una a la otra.

      Con las nuevas rutas estáticas en su lugar, siempre que el tráfico ahora llega al router que tiene como destino una dirección IP en algún lugar de 172.16.0.0/20 o 10.0.60.0/24, sabrá que debe reenviar esto al servidor de acceso OpenVPN en la dirección IP 192.168.70.222. A continuación, lo reenviará a donde tenga que ir, ya que sabe cómo contactar con esas dos subredes.

      Cómo configurar el cliente OpenVPN Linux Gateway

      Preferimos utilizar un sistema operativo Linux para manejar el papel de un cliente VPN que también sirve como puerta de enlace. Preferimos Ubuntu LTS en una máquina virtual o en un hardware dedicado. Simplemente tenemos las mejores experiencias con él, y hay herramientas simples disponibles en Linux que son gratuitas y fáciles de instalar y utilizar para diagnosticar cualquier problema que pueda surgir. Además, Linux es de uso gratuito y puede funcionar en equipos muy ligeros. Incluso una Raspberry Pi3 o similar puede encargarse de esta tarea, y también hay sistemas embebidos que pueden hacerlo. Dejando de lado el equipo, si tienes un sistema operativo Linux con un cliente OpenVPN que pueda conectarse al Servidor de Acceso OpenVPN, y puedes habilitar algo llamado reenvío de IP, entonces deberías ser capaz de poner en marcha un cliente OpenVPN Linux Gateway con bastante facilidad. No es necesario instalar el programa OpenVPN Access Server en este sistema cliente Linux.

      Lo que sí necesita es el programa cliente de código abierto OpenVPN para Linux. En Ubuntu puedes instalarlo con el comando apt-get install openvpn. Con el programa cliente ahora instalado, va a buscar cualquier archivo *.conf en el directorio /etc/openvpn/ y al iniciar el sistema intentará conectarlo y mantenerlo conectado. Lo que necesitamos ahora es obtener el perfil de conexión de inicio de sesión automático para la cuenta de usuario creada para la conectividad sitio a sitio, y guardarlo en el directorio /etc/openvpn/. Para ello, primero debemos obtener el archivo:

      Accede a la interfaz de usuario del cliente del servidor de acceso OpenVPN utilizando un navegador web, haz clic en el menú desplegable de conexión y cámbialo por el de inicio de sesión. Introduzca el nombre de usuario y la contraseña de la cuenta de usuario que creó para la conectividad de sitio a sitio y haga clic en ir. Se le presentará una lista de archivos disponibles para esta cuenta de usuario. Localice el perfil de inicio de sesión automático y descárguelo. Se llamará client.ovpn.

      Transfiera este archivo client.ovpn a su sistema cliente Linux (con SCP o WinSCP o copiando y pegando el contenido del archivo en un editor de texto como nano) y colóquelo en el directorio /etc/openvpn/. Cambie el nombre del archivo a algo como headquarters.conf. El nombre del archivo no es particularmente importante, pero la extensión debe terminar con .conf para que el demonio OpenVPN lo recoja. Ahora reinicie el sistema operativo cliente de Linux. Ahora debería conectarse automáticamente y debería poder ver esta conexión en el resumen de usuarios actuales del servidor de acceso OpenVPN.

      A continuación, active el reenvío de IP en el sistema cliente Linux. El reenvío de IP es la función de un sistema operativo que le permite aceptar un paquete de red entrante en una interfaz de red y, si el destino está en otra red, reenviarlo allí. Esto es lo que necesitas cuando los paquetes que entran desde tu red necesitan ir al túnel VPN, o viceversa. En Ubuntu puedes hacer esto fácilmente abriendo /etc/sysctl.conf con un editor de texto como nano, y descomentando la línea #net.ipv4.ip_forward=1. Descomentar significa eliminar el carácter #. Luego salga y guarde el archivo. Ahora reinicie el sistema operativo del cliente Linux.

      En lo que respecta al sistema de puerta de enlace del cliente Linux de OpenVPN, esto es lo que completa una configuración de sitio a sitio en este extremo. Ahora sólo queda una cosa por configurar. El router de la red en la que se encuentra el cliente de la pasarela Linux debe saber que existen subredes adicionales y que se puede acceder a ellas contactando con la dirección IP privada de la instalación del cliente de la pasarela Linux. En nuestra red de ejemplo, el sistema de puerta de enlace del cliente OpenVPN Linux tiene una IP de 10.0.60.55. También forma parte de la subred cliente VPN de 172.16.0.0/20 que existe en el Servidor de Acceso y ahora tendrá una conexión sitio a sitio que se ejecuta a la subred 192.168.70.0/24. Para que el enrutador conozca estas subredes adicionales, busque en la documentación de su dispositivo enrutador, y busque cómo agregar rutas estáticas. Tenga en cuenta que debe añadir estas rutas estáticas en el router de la red de la oficina subsidiaria donde está el sistema cliente OpenVPN Linux Gateway, no en la red donde está el Servidor de Acceso. Estas son las rutas estáticas que hay que añadir:

      • Red 172.16.0.0 con máscara de subred 255.255.240.0 a través de la puerta de enlace 10.0.60.55
      • Red 192.168.70.0 con máscara de subred 255.255.255.0 a través de la puerta de enlace 10.0.60.55
      • Al igual que con las rutas estáticas en el otro router, observará que estamos especificando una máscara de subred. La mayoría de los equipos de enrutamiento quieren que se especifique de esta manera en lugar de utilizar el formato CIDR con el /24 y /20 y así sucesivamente. Hay tablas que puede buscar en línea que puede utilizar para convertir fácilmente una a la otra.

        Con las nuevas rutas estáticas en su lugar, siempre que el tráfico ahora llega al router que tiene como destino una dirección IP en algún lugar de 172.16.0.0/20 o 192.168.70.0/24, sabrá que debe reenviar esto al cliente OpenVPN Linux Gateway en la dirección IP 10.0.60.55. Entonces lo reenviará a donde tenga que ir, ya que sabe cómo contactar con esas dos subredes.

        Solución de problemas

        Siguiendo los pasos de configuración anteriores, tanto el servidor de acceso OpenVPN como el cliente OpenVPN Linux Gateway deberían funcionar perfectamente. Sin embargo, hay un gran número de posibles problemas que se pueden encontrar con los equipos circundantes. Por ejemplo, puede haber cortafuegos en los equipos cliente y servidor que bloqueen el tráfico de subredes «desconocidas». En las redes en la nube como Amazon AWS, los grupos de seguridad y la comprobación de la fuente pueden ser un factor de bloqueo del tráfico. Además, las rutas estáticas podrían haberse configurado mal para que funcionen desde la interfaz LAN a la WAN, de modo que se intente enviar el tráfico a Internet en lugar de permanecer puramente en el lado LAN del router. Lamentablemente, hay demasiados problemas posibles que se encuentran completamente fuera del servidor de acceso OpenVPN y su cliente de puerta de enlace Linux OpenVPN conectado para documentarlos todos. En su lugar, hemos tratado de proporcionar los medios para diagnosticar la conexión usted mismo.

        Tenemos una guía de solución de problemas que ayudará a determinar el punto en el que el tráfico se rompe. Eso nos llevará a conclusiones para resolver efectivamente el problema.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *