Cómo instalar y configurar el servidor OpenVPN en CentOS 8/7


Una red privada virtual es una solución tecnológica que se utiliza para brindar privacidad y seguridad a las conexiones entre redes. El caso más conocido consiste en personas que se conectan a un servidor remoto con tráfico que pasa por una red pública o insegura (como Internet).

Imagine los siguientes escenarios:

En este artículo, explicaremos cómo configurar un servidor VPN en una caja RHEL/CentOS 8/7 utilizando OpenVPN, una aplicación de tunelización robusta y altamente flexible que utiliza funciones de cifrado, autenticación y certificación de la biblioteca OpenSSL. Para simplificar, solo consideraremos un caso en el que el servidor OpenVPN actúa como una puerta de enlace segura a Internet para un cliente.

Para esta configuración, hemos utilizado tres máquinas, la primera actúa como un servidor OpenVPN y las otras dos (Linux y Windows) actúan como un cliente para conectarse al servidor OpenVPN remoto.

En esta página

  • Instalación del servidor OpenVPN en CentOS 8
  • Configurar el cliente OpenVPN en Linux
  • Configurar el cliente OpenVPN en Windows

Nota: Las mismas instrucciones también funcionan en los sistemas RHEL 8/7 y Fedora.

1. Para instalar OpenVPN en un servidor RHEL/CentOS 8/7, primero deberá habilitar el repositorio EPEL y luego instalar el paquete. Esto viene con todas las dependencias necesarias para instalar el paquete OpenVPN.

# yum update
# yum install epel-release

2. A continuación, descargaremos el script de instalación de OpenVPN y configuraremos la VPN. Antes de descargar y ejecutar el script, es importante que encuentre la dirección IP pública de su servidor, ya que será útil al configurar el servidor OpenVPN.

Una forma fácil de hacerlo es usar el comando curl como se muestra:

$ curl ifconfig.me

Alternativamente, puede invocar el comando dig de la siguiente manera:

$ dig +short myip.opendns.com @resolver1.opendns.com

Si aparece un error "dig: comando no encontrado", instale la utilidad de excavación ejecutando el comando:

$ sudo yum install bind-utils

Esto deberia resolver el problema.

Los servidores en la nube suelen tener 2 tipos de direcciones IP:

  • Una única dirección IP pública: si tiene un VPS en plataformas en la nube como Linode, Cloudcone o Digital Ocean, normalmente encontrará una única dirección IP pública adjunta.
  • Una dirección IP privada detrás de NAT con una IP pública: este es el caso de una instancia EC2 en AWS o una instancia informática en Google Cloud.

Cualquiera que sea el esquema de direccionamiento IP, el script OpenVPN detectará automáticamente la configuración de su red VPS y todo lo que tiene que hacer es proporcionar la dirección IP pública o privada asociada.

3. Ahora procedamos y descarguemos el script de instalación de OpenVPN, ejecute el comando que se muestra.

$ wget https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh

4. Cuando se complete la descarga, asigne permisos de ejecución y ejecute el script de shell como se muestra.

$ sudo chmod +x openvpn-install.sh
$ sudo ./openvpn-install.sh

El instalador lo lleva a través de una serie de indicaciones:

5. Primero, se le pedirá que proporcione la dirección IP pública de su servidor. A partir de entonces, se recomienda optar por las opciones predeterminadas, como el número de puerto predeterminado (1194) y el protocolo a usar (UDP).

6. A continuación, seleccione los solucionadores de DNS predeterminados y seleccione la opción No (n) para las configuraciones de compresión y cifrado.

7. Una vez hecho esto, el script inicializará la configuración del servidor OpenVPN junto con la instalación de los otros paquetes de software y dependencias.

8. Por último, se generará un archivo de configuración del cliente utilizando el paquete easy-RSA, que es una herramienta de línea de comandos que se utiliza para administrar certificados de seguridad.

Simplemente proporcione el nombre del cliente y siga las selecciones predeterminadas. El archivo del cliente se almacenará en su directorio de inicio con una extensión de archivo .ovpn.

9. Una vez que el script haya terminado de configurar el servidor OpenVPN y crear el archivo de configuración del cliente, se generará una interfaz de túnel tun0 . Esta es una interfaz virtual donde todo el tráfico de la PC del cliente se canalizará al servidor.

10. Ahora, puede iniciar y verificar el estado del servidor OpenVPN como se muestra.

$ sudo systemctl start [email protected]
$ sudo systemctl status [email protected]

11. Ahora diríjase al sistema cliente e instale el repositorio EPEL y los paquetes de software OpenVPN.

$ sudo dnf install epel-release -y
$ sudo dnf install openvpn -y

12. Una vez instalado, debe copiar el archivo de configuración del cliente desde el servidor OpenVPN a su sistema cliente. Puede hacer esto usando el comando scp como se muestra

$ sudo scp -r [email protected]:/home/tecmint/tecmint01.ovpn .

13. Una vez que el archivo del cliente se descarga a su sistema Linux, ahora puede inicializar una conexión al servidor VPN, usando el comando:

$ sudo openvpn --config tecmint01.ovpn

Obtendrá un resultado similar al que tenemos a continuación.

14. Se crea una nueva tabla de enrutamiento y se establece una conexión con el servidor VPN. Nuevamente, se crea una interfaz de túnel de interfaz virtual tun0 en el sistema cliente.

Como se mencionó anteriormente, esta es la interfaz que canalizará todo el tráfico de forma segura al servidor OpenVPN a través de un túnel SSL. El servidor VPN asigna dinámicamente una dirección IP a la interfaz. Como puede ver, a nuestro sistema cliente Linux se le ha asignado una dirección IP de 10.8.0.2 por parte del servidor OpenVPN.

$ ifconfig

15. Solo para estar seguros de que estamos conectados al servidor OpenVPN, vamos a verificar la IP pública.

$ curl ifconfig.me

¡Y voilá! nuestro sistema cliente ha elegido la IP pública de la VPN confirmando que efectivamente estamos conectados al servidor OpenVPN. Alternativamente, puede encender su navegador y buscar en Google “¿Cuál es mi dirección IP?” Para confirmar que su IP pública ha cambiado a la del servidor OpenVPN.

16. En Windows, deberá descargar los binarios oficiales de OpenVPN Community Edition que vienen con una GUI.

17. A continuación, descargue su archivo de configuración .ovpn en C:\Program Files\OpenVP

18. Ahora encienda un navegador y abra http://whatismyip.org/ y debería ver la IP de su servidor OpenVPN en lugar de la IP pública proporcionada por su ISP:

Resumen

En este artículo, hemos explicado cómo instalar y configurar un servidor VPN usando OpenVPN, y cómo configurar dos clientes remotos (una caja Linux y una máquina Windows). Ahora puede utilizar este servidor como puerta de enlace VPN para proteger sus actividades de navegación web. Con un poco de esfuerzo adicional (y otro servidor remoto disponible) también puede configurar un servidor seguro de archivos/bases de datos, por nombrar algunos ejemplos.

Esperamos tener noticias tuyas, así que no dudes en enviarnos una nota mediante el formulario a continuación. Los comentarios, sugerencias y preguntas sobre este artículo son bienvenidos.