Cómo configurar una VPN para su equipo de desarrollo web

Publicado: 2021-10-11

La característica principal de la Internet moderna es su disponibilidad constante. No es necesario almacenar datos localmente, a los que se puede acceder rápidamente a través de la red. Surgen más problemas si estos datos de repente no están disponibles en un momento impredecible. La mayoría de los desarrolladores trabajan de forma remota y pueden carecer de recursos si provienen de ciertas partes. En este artículo, veremos cómo puede configurar una VPN para su equipo de desarrollo web.

Problemas comunes de Internet

¿Qué significa prácticamente la inaccesibilidad de un recurso de Internet?

- Algunas bibliotecas no se descargan: el entorno de desarrollo del proyecto no va a suceder. Este es el problema principal y más grande!

- Zoom, Slack o Telegram no funcionan; no podrá ponerse en contacto con sus colegas.

- Algunos sitios no están disponibles, por ejemplo, GitHub: es imposible publicar su trabajo.

Estos no son todos los ejemplos posibles, pero incluso ellos pueden reducir significativamente la productividad del equipo.

¿Quién es culpable?

En la práctica, las restricciones descritas anteriormente suelen ser implementadas por el proveedor de Internet. Y no tiene sentido culpar al proveedor por ellos porque las restricciones fueron introducidas por los actos administrativos de los estados. El proveedor debe dedicarse a los negocios, no a la lucha política.

Pero a veces, el proveedor resulta ser un villano. Por ejemplo, por alguna razón desconocida, pueden bloquear el tráfico en puertos TCP específicos o modificar el tráfico http sin cifrar y cambiar el código html de la página, agregar anuncios. Esto es lo que espera de algunos estafadores, pero ciertamente no de una gran empresa, por lo que es doblemente desagradable (si está interesado, busque en Google "publicidad en los sitios de otras personas").

¿Qué hacer?

Una vez que la escala del problema dejó en claro que debe resolverse a nivel de la empresa y no dejarse a merced de los miembros del equipo, puede usar la tecnología VPN.

VPN es una red privada virtual. Este es el nombre de un grupo de tecnologías que le permiten crear una red informática virtual, inexistente físicamente (superpuesta), basada en una red informática física existente.

Esto proporciona oportunidades adicionales para aumentar la privacidad. En una red física, como primera aproximación, su tráfico está disponible para todos los participantes en el intercambio de red, todos los enrutadores, etc. No hay participantes adicionales en la red virtual, solo usted y el punto al que se conecta. Si está configurando uno para su equipo de desarrollo web, este es un servidor VPN. Se está tendiendo un túnel encriptado entre ustedes dos.

Las interfaces de red virtual TUN se crean en la máquina cliente y el servidor. El intercambio de datos cifrados se produce directamente entre ellos. Sus datos están protegidos de manera efectiva contra ataques de intermediarios (MITM). Nadie que tenga acceso físico al equipo a través del cual pasa su tráfico puede interceptar o reemplazar su información.

También le permite acceder a recursos que no están disponibles en su red doméstica pero que están disponibles en el servidor VPN.

Con la tecnología VPN, el cliente se convierte en parte de la subred de la que forma parte el servidor. Y puede acceder a los recursos de esta subred. Esto se puede usar para eludir restricciones y resolver cualquier otro problema que requiera una conexión remota y segura a una subred.

Elegir una implementación de VPN

Decidir es no hacer. Hay varias implementaciones de tecnología VPN gratuitas comunes. Puede probar esta prueba gratuita de Surfshark VPN para tener una experiencia de lo que podría obtener.

Qué más puede elegir después de obtener la VPN correcta

IPsec es un conjunto de protocolos para la transmisión segura de datos. Apareció a mediados de los 90. Es grande y flexible pero difícil de configurar y de bajo nivel. Demasiado complicado para algunos propósitos.

WireGuard es un proyecto joven (2015) destinado a una preparación rápida para el trabajo. Potencialmente más rápido en la transferencia de datos que diferentes VPN, utiliza protocolos de encriptación más modernos: multiplataforma, disponible en todos los sistemas principales. La desventaja es lo mismo que la ventaja. Para garantizar una instalación rápida y sencilla, se toman muchas decisiones de bajo nivel en el núcleo del programa. Por ejemplo, el uso del protocolo UDP, que podría no ser efectivo para todos.

Elegir la forma de comenzar y usar

A mano

La forma más obvia es alquilar un VPS, conectarse a través de SSH y crear un servidor siguiendo la guía. Este es un proceso bastante largo debido a muchos comandos y archivos que deben moverse manualmente.

Con este método, cada vez que crees un nuevo servidor, tendrás que volver a hacerlo. Para ahorrar tiempo, puede utilizar sistemas de gestión de configuración o sistemas de contenedorización.

Los sistemas de gestión de configuración son un software que permite automatizar la configuración de servidores remotos (puppet, ansible, etc.). La ventaja de este enfoque es que puede configurar un servidor VPN remoto con un par de comandos. Y todas las configuraciones, las plantillas de configuraciones se colocan explícitamente en formato de texto en la máquina de control. Puede crear un script de implementación usted mismo o tomar uno listo, por ejemplo, en GitHub.

Se adopta un enfoque ligeramente diferente en los sistemas de contenedores. El sistema de contenedorización virtual más común es docker. Instalar un contenedor docker con una VPN en un servidor remoto puede ser incluso más rápido que instalar un servidor a través de ansible, lo cual es una ventaja. Sin embargo, la lista de configuraciones disponibles puede estar limitada por los desarrolladores de imágenes. Las imágenes son archivos binarios, por lo que es posible que no funcione si necesita corregir alguna configuración exótica.

Arquitectura del servidor

Primero, como ya se mencionó, la tecnología VPN se puede usar para conectarse, por ejemplo, a una subred cerrada a través de una computadora que sea parte de esta subred y, al mismo tiempo, un servidor VPN. Si tiene recursos valiosos en su subred, no le gustaría que nadie se conectara al servidor VPN. Para hacer esto, la mayoría de las VPN generalmente lo convierten en una máquina separada, sin conexión a ninguna red, tal vez en una caja fuerte (no es broma). Y las solicitudes de firma y certificados firmados se transfieren a medios extraíbles.

Inicio del servidor

Para ejecutar el script ansible, debe instalar ansible en su computadora, alquilar un servidor virtual con Debian/Ubuntu y configurar el acceso al servidor a través de SSH. Al alquilar un servidor, tenga en cuenta que algunos servicios no le permiten crear una interfaz tun o realizar el reenvío de paquetes. Por favor, compruebe esto antes de comprar.

Toda la interacción con el servidor se lleva a cabo mediante tres comandos:

1. Ejecute el script para crear un servidor y una autoridad de certificación.

2. Registro de un nuevo usuario.

3. Revocar un certificado por nombre de cliente.

El desarrollo de formas de eludir los bloqueos es, en muchos sentidos, similar a la relación entre depredadores y presas en la naturaleza. Para cada nuevo movimiento, hay un contramovimiento. Las conexiones VPN no son una excepción.

Cuando usa una VPN, puede usar una variedad de recursos de red. Pero, dado que todos los datos le llegan a través del túnel desde el servidor VPN, para el proveedor parece que está intercambiando datos con una sola dirección IP.