Privacidad con tu propia VPN
Hay quienes ya usan una VPN para entretenimiento, por ejemplo, para ver una serie o película en Netflix que no está disponible en Brasil.
En un uso corporativo, una VPN es mucho más útil que solo mirar videos: puedes enmascarar tu conexión, engañando al servidor de destino.
Cada vez son más las empresas estadounidenses que contratan profesionales de otros países y continentes para prestar servicios que van desde el desarrollo hasta el Facilities (compra de suministros). Algunas webs norteamericanas, especialmente las tiendas online, bloquean el acceso desde algunos países. En un escenario como éste, una VPN puede ser la solución.
Una VPN no es más que un túnel de acceso, es decir, en lugar de navegar por internet a través del proveedor de acceso local (TIM, Vivo, Claro, etc…), utilizas tu conexión a internet solo para hacer la conexión con el servidor VPN y el servidor será tu nueva fuente de datos. Esta mecánica engaña a los sitios web e, incluso si vives en un continente lejos de Estados Unidos, podrás acceder a los sitios web de ese país, siempre y cuando tu servidor VPN esté ubicado en ese país.
Además, una conexión VPN es una conexión mucho más segura ya que está encriptada de extremo a extremo.
Nuestros objetivos para este artículo serán:
- Navegar en un entorno seguro, donde nuestros datos no estén expuestos ni siquiera al proveedor de acceso que estemos utilizando;
- Ocultar nuestra dirección IP para que podamos acceder a sitios web bloqueados fuera de los Estados Unidos.
Ambiente y Herramientas
Para este artículo, utilizaremos una cuenta de Amazon Web Services (AWS). Pero no te preocupes, vamos a utilizar un servidor que forma parte de la cuota gratuita de AWS. Para hacer el trabajo, te recomiendo que ya crees, si aún no lo ha hecho, tu cuenta de AWS.
Hay varios software de servidor VPN, el más famoso quizás sea OpenVPN, pero para este artículo usaremos Pritunl.
Como solo queremos navegar por Internet en un entorno más seguro y acceder a sitios web estadounidenses bloqueados fuera de los Estados Unidos, Pritunl resolverá nuestro problema de una manera simple y segura.
De forma didáctica, y también para que vayas avanzando poco a poco, vamos a seguir este paso a paso.
Passos
- Setup AWS.
- Crear un servidor EC2 - Free tier.
- Instalar las atualizaciones de SO.
- Pritunl.
- Instalación.
- Configuración.
- Usuario, Empresa y Servidor.
- Reglas de Firewall.
- Cliente VPN.
- Instalación y configuración de VPN.
- Prueba de conexión.
Setup AWS
No cubriré la creación de una cuenta de AWS y la configuración del acceso a un servidor EC2 usando una clave en este tema. Supongo que estos pasos ya están completados en tu cuenta de AWS.
Creando el servidor
Con la consola de AWS abierta, abre el panel de EC2 buscando en el cuadro de búsqueda EC2. Luego haz clic en EC2.
Con el panel de control de sus instancias EC2 abierto, haga clic en el botón denominado Ejecutar Instancia (Executar instância).
- Nombree: pritunl-vpn.
- Imágenes: Ubuntu.
- AMI: Ubuntu Server 22.04 LTS → Calificado para uso gratuito.
- Tipo de instancia: t2.micro → Calificado para uso gratuíto.
- Par de llaves: selecciona cualquier par de llaves que ya tengas o crea una nueva si es necesario.
- Configuraciones de red: Marca el checkbox de Permitir tráfico SSH, HTTPs e HTTP. Todos de cualquier lugar (0.0.0.0/0).
- Después de marcar los checkboxes, selecciona Editar. En el campo descrito como Atribuir IP público automáticamente, selecciona deshabilitar.
Deja el resto de configuraciones por defecto y haz clic en Ejecutar instancia (Executar Instância). En unos segundos, tendrás una nueva instancia para iniciar los trámites de actualización de paquetes e instalación de Pritunl.
Vamos a crear una IP fija para esta instancia, ya que queremos conservar esta IP para nuestras conexiones futuras, incluso si la máquina se apaga o se reinicia.
Abre el Panel de control de EC2, selecciona IP elásticas y haz clic en Asignar dirección IP elástica. En la siguiente pantalla, simplemente selecciona el botón Asignar y se enlazará una IP pública a su cuenta, quedando lista para asociarse con una instancia EC2.
Con la nueva IP asignada, es hora de asociar la IP con tu instancia de Pritunl que se está ejecutando.
En la lista de IP asignadas, selecciona la IP creada y luego haz clic en Acciones y luego en Asociar dirección IP elástica.
En la siguiente pantalla, haz clic en el cuadro de texto Instancia y selecciona la instancia EC2 recién creada para nuestro servidor Pritunl. En mi caso, su nombre es pritunl-vpn. Luego, haga clic en Asociar.
Ten en cuenta que, en este ejemplo, la IP pública asociada era 3.13.195.58.
Elige tu instancia EC2. Considera también que en el campo Dirección IPv4 pública, esta IP ya está asociada a nuestra instancia, es decir, la dirección que usaremos para acceder a nuestro servidor VPN es 3.13.195.58.
Actualizando los paquetes
Hagamos el primer acceso a la instancia utilizando la clave de seguridad seleccionada al crear la instancia.
Asegúrate de que la clave esté segura (chmod 400 revelo-vpn.pem).
Para acceder a nuestro servidor desde el mismo directorio donde se encuentra su clave de acceso, escriba ssh -i revelo-vpn.pem ubuntu@3.13.195.58.
Cambia la dirección de la IP (3.13.195.58) por la IP pública asociada, creada en tu cuenta AWS.
Ahora instalemos algunos paquetes básicos y también actualicemos los paquetes del servidor con los comandos:
Pritunl
Para la instalación de Pritunl, es necesario agregar algunas claves de seguridad y algunos repositorios no comunes en la distribución de Ubuntu.
Pritunl usa la base de datos MongoDB para almacenar la configuración.
Instalación
Agreguemos el repositorio usando los siguientes comandos:
Y también agregaremos las claves públicas para los repositorios de MongoDB y Pritunl y luego actualizaremos el sistema:
Una vez que los repositorios están configurados, podemos continuar con la instalación real de MongoDB y Pritunl con el siguiente comando:
Después de la instalación, inicia y habilita ambos servicios:
Puedes verificar si los servicios se están ejecutando con el comando:
El resultado debería ser algo como esto:
Una vez que se ejecuta Pritunl, el siguiente paso es generar una clave de configuración para Pritunl. Usaremos esta clave en el próximo paso para la configuración y seguridad de la base de datos.
En la línea de comando ejecuta:
El resultado será un hash. Cópialo y, a través de tu navegador, accede a la dirección IP pública de tu servidor. Recibirás un mensaje que indica que la conexión no es segura, pero está bien: tú mismo/a creaste el servidor.
Después de la confirmación, deberías ver una pantalla similar a ésta:
Pega ese hash generado por el comando setup-key y haz clic en Guardar.
Bien, hasta ahora nuestra base de datos ya está configurada y segura.
El siguiente paso es generar datos de acceso inicial.
Verás una pantalla similar a la siguiente:
Sigue las instrucciones y escribe en la línea de comando:
En respuesta al comando, ahora tienes dos datos: el usuario predeterminado (pritunl) y una contraseña generada automáticamente. Copia y pega los dos datos de la pantalla anterior y haz clic en Iniciar sesión.
En la siguiente pantalla, aparecerá una interfaz solicitando información que se puede configurar más adelante. Sugiero encarecidamente que se cambien, al menos, dos datos: 1) Nombre de usuario y 2) Nueva contraseña.
El Usuario y contraseña serán la nueva credencial para acceder al panel de Pritunl.
Ahora tienes el servidor funcionando. En el próximo tema, procederemos con la configuración de usuarios y organizaciones dentro del servidor.
Configuración
Pritunl sigue la jerarquía: Usuario > Organización > Servidor. Cada ítem tiene sus particularidades en cuanto a configuración.
Como usamos la versión gratuita de Pritunl, estamos limitados a un solo servidor, lo cual es más que suficiente para nuestro caso.
Creando una Organización
Comencemos la configuración creando una Organización.
En el menú superior, haz clic en Usuarios y luego en el botón Agregar organización.
En el cuadro de diálogo, asigna un nombre a tu organización. En mi caso, la nombré Org-007.
Creando un Usuario
Con la organización creada, ahora es el momento de crear un usuario. Selecciona el menú superior Usuarios y luego pulsa el botón Agregar usuario.
Este será el usuario con derecho a acceder a la VPN. No debe confundirse con el usuario que tiene derecho a acceder a la consola de Pritunl.
Introduce un nombre y un PIN. En mi caso, elegí el nombre JamesBond-007 y el pin 7000007.
Crear un Server
Con el Usuario y la Organización creados, necesitamos generar un servidor y anexar la organización al mismo.
Para esto, selecciona en el menú superior Servers y luego el botón Add Server.
En la siguiente ventana, asigna un nombre al servidor y haz clic en el botón Add. En mi caso, me quedo con Secret-Server.
Pasemos a asociar nuestra organización, y todos los usuarios creados dentro de ella, en nuestro servidor.
Clic en el botón Attach Organization. Por defecto, los campos ya estarán rellenados, así que basta con hacer clic en Attach:
Ahora, selecciona el botón Start Server.
Reglas de Firewall
El último paso es la liberación del puerto de acceso de nuestro servidor para el acceso, a su vez, de los clientes.
Al hacer clic en Server, nota que este servidor tiene un puerto específico para accesos. Dicho puerto debe ser liberado en el Routing Tables de nuestro servidor en AWS.
En nuestro caso, el puerto especificado fue el 17551/udp.
En la consola de AWS, selecciona tu instancia EC2 en ejecución y haz clic en la pestaña Seguridad (o Segurança). Enseguida, pulsa el link de Grupos de seguridad (Grupos de segurança).
Serás redirigido/a a las configuraciones de firewall de tu instancia. En la guía Reglas de entrada, selecciona Editar reglas de entrada.
A continuación, haz clic en Añadir regla. Vamos a liberar el acesso del puerto de comunicación de nuestro servidor Pritunl. En nuestro ejemplo fue el 17551 del protocolo UDP. Además de eso, informa la IP de Origen: 0.0.0.0/0. Enseguida, selecciona Guardar Reglas.
En este punto, ya tenemos todo nuestro servidor VPN creado, configurado y listo para usar.
En el siguiente punto, veremos cómo utilizar un cliente VPN en Windows y otro en Linux para acceder a nuestro servidor.
Cliente VPN
Linux
Estoy utilizando Ubuntu como ambiente Linux. El proceso es bastante simple, pues ya viene una instalación por defecto con el cliente instalado. Basta importar el archivo .ovpn.
Para encontrar este archvo, en el dashboard do Pritunl, haz clic en Users y, enseguida, en el ícono de Descarga de perfil:
Al descomprimir este archivo, encontrarás otro archivo con la extensión .ovpn.
En la configuración de Ubuntu, haz clic en Red y luego en el signo + junto a VPN. Selecciona la opción Importar desde archivo y elige el archivo recién extraído.
Para que el proceso de autenticación sea más rápido, completa los campos Nombre de usuario, Contraseña y Contraseña de la Clave de usuario con la misma información colocada allí en el panel de control de Pritunl, cuando creaste el usuario.
Luego haga clic en Agregar.
Una vez que la red esté agregada, basta habilitar la conexión de VPN:
Windows
Para el ambiente Windows, así como en mac OS, existe un cliente específico de Pritunl. Puedes encontrarlo aquí.
Descarga el binario y procede con la instalacióm como cualquier otro programa.
Ya instalado, abre el panel de control do Pritunl, ve a Users en el menú superior y haz clic en Get temporary profile links (ícono de corriente) al frente del usuario.
Copia el contenido del campo Temporary url to view profile links.
Abre el cliente Pritunl, haz clic en Import y pega el valor de tu perfil en el campo Profile URI para luego seleccionar Import:
Una vez importado el perfil, basta con pulsar en Connect, indicar el PIN y ¡listo!, ya estás conectado a la VPN.
Prueba de conexión
Con la VPN enlazada, ingresa al site https://whatsmyip.com. La dirección presentada deberá ser la misma IP pública asociada a tu instancia EC2. En mi caso, la dirección de salida es 3.13.195.58.
Un consejo extra: para saber si tu conexión tiene buena velocidad o no, prueba la velocidad a través del sitio web https://fast.com.
Conclusión
Una conexión VPN puede ser muy útil a la hora de transmitir datos de forma segura, ya que la conexión está totalmente encriptada entre el cliente y el servidor VPN, es decir, tu ISP no tiene acceso a los datos que se transfieren.
Otro punto relacionado con la seguridad es la liberación del acceso a servicios restringidos dentro de una empresa (VPC interna) solo para una dirección IP específica (IP VPN), en lugar de dejar el servicio expuesto públicamente en internet y bloquear el acceso solo a través de usuario y contraseña, además de poder acceder a contenidos restringidos a algunas regiones del globo.
Espero que la guía haya sido de utilidad.
¡Saludos!
Referencias
- Pritunl - https://pritunl.com/
- Whatsmyip - https://whatsmyip.com/
- Fast - https://fast.com
Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.