Software

Cómo instalar un servidor OpenVPN en un sistema Linux

crear proxy openvpn

Día a día transmitimos una ingente cantidad de información pero, ¿sabemos por dónde circula ésta? O algo aún más importante: ¿sabemos cuán segura es? Gracias a OpenVPN conseguiremos que lo sea.

En esta sencilla guía paso a paso, te mostraremos cómo añadir una capa de seguridad para la próxima vez que te conectes a un punto de acceso Wi-Fi gratuito: aeropuertos, centros comerciales, hoteles o restaurantes, por ejemplo.

Para conseguir tal cosa, haremos uso de una VPN, lo que se conoce como una red privada virtual.

Existen muchos tipos de VPN, pero OpenVPN combina características que la hacen muy atractiva: es compatible con una gran variedad de dispositivos, tiene un mínimo impacto en el rendimiento  y es una solución de código abierto.

Antes de continuar, necesitas una serie de elementos para continuar:

  • Un servidor con sistema operativo Debian o Ubuntu
  • Driver TUN/TAP habilitado en el servidor (es posible que tengas que enviar un ticket de soporte a tu proveedor para que te lo habiliten)
  • 15 minutos de tiempo libre 🙂
  • Conexión a internet (aunque si estás leyendo esta guía, probablemente ya la tengas)

► Te recomendamos encarecidamente nuestra guía sobre los distintos tipos de servidores.

El servidor que especificamos en el primer punto lo utilizaremos para alojar la instancia de OpenVPN a la cual nos conectaremos posteriormente. Evidentemente, esto corre por tu cuenta, aunque hay infinidad de proveedores con precios muy variopintos que son accesibles para todo tipo de usuarios.

Es más, un servidor OpenVPN apenas consume recursos, por lo que podemos alojarlo en lo que comúnmente se conoce como un NAT VPS o, traducido al castellano, servidores privados virtuales NAT.

¿Qué quiere decir NAT? NAT significa Network Address Translation. Éste es un mecanismo usado en forma de “parche” para el protocolo de enrutamiento IPv4, el cual escasea direcciones IP. Lo que hacen estos proveedores es ofrecer un servidor virtual como cualquier otro, pero con la diferencia de que no te asignan una dirección IPv4 pública, sino una privada con ciertos puertos abiertos, sistema similar al que podemos encontrar en el router de nuestra misma casa.

Este sistema permite abaratar costes tanto al proveedor como al cliente, ya que la IPv4 tiene un número limitado de direcciones IP únicas y ya se han agotado todas. Estos servidores cuestan en torno al precio de dos cafés de manera anual, es decir, sobre unos cuatro euros.

Un ejemplo de proveedor es Linux22, el cual ofrece servidores tanto gratuitos como de pago en los que podrás probar sin problema alguno lo que explicamos en esta guía.

Es más, en esta guía hemos utilizado el servidor gratuito del proveedor anteriormente comentado. El servidor utilizado en esta guía cuenta con las siguientes especificaciones de hardware:

  • 1 CPU virtual compartida
  • 64 MB de RAM (32 MB SWAP)
  • 1 GB de disco duro
  • NAT IPv4 con 20 puertos (más un bloque /80 de IPv6)

Como se puede apreciar, son especificaciones modestas pero más que suficientes para hacer funcionar un servidor OpenVPN sin despeinarse.

Explicado todo esto, empecemos con la guía.

 

Puesta a punto del sistema operativo

Lo primero que recibiremos de nuestro proveedor, sea el que sea, será un correo electrónico con la información de acceso a nuestro servidor. En él se nos mostrará información como la dirección IP del servidor, los puertos asignados (en caso de que sea un servidor NAT), la contraseña del usuario root o la información de acceso al panel de control.

Teniendo la información que respecta al acceso al servidor a mano, abriremos un Terminal o un programa compatible con conexiones SSH como PuTTY, el cual se puede descargar desde su página oficial.

Lo primero que debemos hacer es conectarnos a nuestro servidor y acceder como usuario root, pues es el que usaremos a lo largo de toda la guía. Además, en esta guía me basaré en Debian Stretch, pero probablemente funcione sin problemas en cualquier otra versión de Ubuntu.

Al estar dentro del servidor, veremos algo como lo siguiente:

 Figura 1.1 - Conexión al servidor
Figura 1.1 – Conexión al servidor

Lo primero que haremos es actualizar el sistema operativo y todos los paquetes que dispongan de una actualización pendiente. Para ello, ejecutaremos los siguientes comandos:

# apt -y update
# apt -y upgrade
# apt -y dist-upgrade

Configuración del servidor

Teniendo el sistema operativo totalmente actualizado, procedemos con unas medidas de seguridad recomendadas pero no imprescindibles. Modificaremos el archivo de configuración del servidor SSH deshabilitando las conexiones root entrantes. De esta forma sólo podremos acceder con un usuario que crearemos en un momento y acto seguido podremos iniciar sesión con root, pero no de forma directa.

En esta guía no cubriremos los pasos para cambiar el puerto por defecto del servidor SSH puesto que suponemos que se está utilizando un servidor NAT, el cual no posee el puerto SSH por defecto, el puerto 22.

Para conseguir tal cosa, primero nos crearemos un usuario en nuestro sistema operativo con el siguiente comando:

# adduser usuario
Figura 1.2 - Creación de un usuario en Debian
Figura 1.2 – Creación de un usuario en Debian

Tras ejecutar ese comando, nos preguntará por la contraseña del mismo dos veces (ojo, en Linux no se ve la contraseña cuando la tecleamos) y acto seguido nos desplegará una serie de preguntas las cuales podemos omitir pulsando Intro en nuestro teclado. Tras ello, tendremos nuestro usuario creado.

Para deshabilitar las conexiones root, debemos editar el archivo correspondiente con el siguiente comando:

# nano /etc/ssh/sshd_config

Si bajamos, nos encontraremos una línea que probablemente esté sin comentar, como podemos ver en la siguiente ilustración:

Figura 1.3 - Archivo de configuración del servidor SSH
Figura 1.3 – Archivo de configuración del servidor SSH

Debemos añadir una almohadilla como en las otras líneas que vemos de forma que quede de la siguiente manera:

Figura 1.4 - Archivo de configuración del servidor SSH modificado
Figura 1.4 – Archivo de configuración del servidor SSH modificado

Para guardar el archivo de configuración, debemos pulsar en nuestro teclado la combinación de teclas “Ctrl + O” y a continuación, “Ctrl + X” para salir.

Hecho esto, ya tendremos el sistema operativo listo para continuar.

 

Instalación de OpenVPN

Si ya hemos seguido los pasos anteriores y tenemos el servidor listo, ahora deberemos proceder a instalar el servidor OpenVPN. Para esta guía hemos escogido un script que nos ayudará en gran medida a configurar sin apenas intervención nuestra.

Ejecuta el siguiente comando para descargar el script:

# wget --no-check-certificate https://linux22.net/media/vpn-es -O instalar-openvpn.sh && bash instalar-openvpn.sh

Si tenemos el driver TUN/TAP habilitado, lo cual es muy importante para continuar, veremos algo como lo que se aprecia en la ilustración siguiente:

Figura 1.5 - Ejecución del script de instalación de OpenVPN
Figura 1.5 – Ejecución del script de instalación de OpenVPN

Deberás seguir los sencillos pasos que te expone el script y al final generará un archivo .ovpn que deberemos descargar para acceder a nuestra VPN.

 

Descarga del archivo de cliente

Una vez el instalador nos haya dicho que tenemos todo listo, nos habrá generado un archivo con extensión .ovpn que podremos ver en el directorio actual con el comando “ls”.

Ya que hemos deshabilitado las conexiones root, debemos mover (o copiar) ese archivo a un usuario sin privilegios para poder acceder posteriormente a él desde un cliente SFTP. En mi caso, lo voy a copiar al directorio del usuario Tuxy, el cual he creado en el paso uno de esta guía. Para ello, hay que ejecutar el siguiente comando:

# cp cliente.ovpn /home/tuxy

En el comando de arriba deberás cambiar cliente.ovpn por el nombre que hayas puesto a la hora de introducir los datos en el script, y /home/tuxy por el nombre de usuario que hayas creado previamente.

Una vez movido, sólo nos queda acceder al servidor de manera remota con un cliente SFTP. Uno de ellos es FileZilla, el cual es gratuito y de código abierto.

Deberemos añadir un nuevo sitio desde el gestor de conexiones y configurarlo como se ve a continuación, cambiando los datos aquí mostrados por los tuyos.

¡Ojo! Es importante que selecciones el protocolo correcto: SFTP – SSH File Transfer Protocol

Figura 1.6 - Gestor de sitios del cliente FTP/SFTP FileZilla
Figura 1.6 – Gestor de sitios del cliente FTP/SFTP FileZilla

Una vez conectados, lo único que queda es descargar el archivo. Es tan fácil como arrastrar el archivo .ovpn correspondiente desde la ventana derecha a la ventana izquierda, nuestro ordenador local.

 

Descarga del software cliente OpenVPN

Por último, deberás descargar el software cliente de OpenVPN correspondiente a tu sistema operativo.

Puedes descargarlo desde su página oficial, en la cual encontrarás guías específicas para tu sistema operativo que mostrarán cómo puedes conectarte a tu servidor OpenVPN.

Guía de conexión con SO Windows: https://community.openvpn.net/openvpn/wiki/OpenVPN-GUI

También existen aplicaciones tanto en Android como en iOS desde las que puedes utilizar tu certificado al igual que en tu ordenador de sobremesa o portátil. Simplemente debes descargar el archivo .ovpn en tu smartphone y ejecutarlo desde la aplicación OpenVPN Connect.

 

Este es el final de la guía. Si tienes alguna duda, por favor, no dudes en responder a este artículo.

Comparte este artículo en las redes sociales

Añadir comentario

Haz clic aquí para publicar un comentario