Publicado en

Instalación de VPN con WireGuard en Linux: Guía Completa

WireGuard es una solución de VPN moderna y ligera que ofrece alto rendimiento y facilidad de configuración. A diferencia de otras tecnologías de VPN más complejas, WireGuard se destaca por ser simple, segura y eficiente. En esta guía, te explicaremos cómo instalar y configurar WireGuard en un servidor Linux, y cómo configurar los clientes para establecer conexiones seguras.

¿Qué es WireGuard?

WireGuard es una solución de red privada virtual (VPN) que se diferencia de las tradicionales como OpenVPN o IPSec, ya que utiliza un código muy optimizado, lo que resulta en una mayor velocidad y una configuración más sencilla. Está diseñado para ser más seguro y rápido que otros protocolos, además de ser más fácil de auditar debido a su código reducido.

Requisitos Previos

Antes de comenzar con la instalación de WireGuard, asegúrate de contar con los siguientes requisitos:

  • Un servidor Linux con privilegios de root o acceso sudo.
  • Acceso a la terminal del sistema.
  • Conexión a Internet para descargar los paquetes necesarios.

Distribuciones de Linux Compatibles con WireGuard

WireGuard es compatible con diversas distribuciones de Linux. Algunas de las más comunes son:

  • Ubuntu/Debian: Los sistemas basados en Debian y Ubuntu cuentan con soporte nativo para WireGuard a partir de la versión 5.6 del kernel de Linux.
  • CentOS/RHEL: Puedes instalar WireGuard en estas distribuciones mediante un repositorio adicional.
  • Arch Linux: WireGuard está disponible en los repositorios oficiales de Arch Linux.
  • Fedora: Fedora tiene soporte completo para WireGuard y lo incluye en sus repositorios oficiales.
  • OpenSUSE: Al igual que Fedora, OpenSUSE incluye WireGuard en sus repositorios.

Paso 1: Instalación de WireGuard en Linux

1.1. Instalación en Ubuntu/Debian

En las distribuciones basadas en Ubuntu o Debian, WireGuard se puede instalar desde los repositorios oficiales. Para hacerlo, sigue estos pasos:

sudo apt update
sudo apt install wireguard

1.2. Instalación en CentOS/RHEL

En CentOS o RHEL, necesitarás agregar el repositorio EPEL para poder instalar WireGuard:

sudo yum install epel-release
sudo yum install wireguard-tools

1.3. Instalación en Arch Linux

En Arch Linux, WireGuard está disponible en los repositorios oficiales. Puedes instalarlo fácilmente con el siguiente comando:

sudo pacman -S wireguard-tools

1.4. Instalación en Fedora

WireGuard también está disponible en Fedora desde sus repositorios oficiales. Para instalarlo, simplemente ejecuta:

sudo dnf install wireguard-tools

Paso 2: Configuración del Servidor WireGuard

Ahora que WireGuard está instalado, procederemos a configurar el servidor VPN.

2.1. Generar las Claves

WireGuard utiliza criptografía de clave pública y privada para autenticar las conexiones. Debes generar las claves para el servidor y los clientes. Para generar las claves, ejecuta:

wg genkey | tee server_private.key | wg pubkey > server_public.key

Esto generará dos archivos: server_private.key (la clave privada) y server_public.key (la clave pública).

2.2. Configurar el Archivo de Configuración de WireGuard

Crea un archivo de configuración para WireGuard en /etc/wireguard/wg0.conf. Este archivo debe contener la configuración básica del servidor, incluyendo la dirección IP, las claves y la configuración de las interfaces.

Ejemplo de archivo wg0.conf:

[Interface]
PrivateKey = <server_private_key>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <client_public_key>
AllowedIPs = 10.0.0.2/32

En el bloque [Interface], coloca la clave privada del servidor (server_private_key) y la dirección IP que se asignará al servidor en la red virtual. En el bloque [Peer], coloca la clave pública del cliente y su dirección IP en la red privada.

2.3. Habilitar y Arrancar el Servidor WireGuard

Una vez configurado el archivo, puedes iniciar el servicio de WireGuard con los siguientes comandos:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

Paso 3: Configuración del Cliente WireGuard

Ahora configuraremos el cliente para que se conecte al servidor.

3.1. Generar las Claves del Cliente

En el cliente, genera un par de claves público/privado:

wg genkey | tee client_private.key | wg pubkey > client_public.key

3.2. Configurar el Archivo de Configuración del Cliente

Crea un archivo de configuración en el cliente, por ejemplo, wg0.conf:

[Interface]
PrivateKey = <client_private_key>
Address = 10.0.0.2/24

[Peer]
PublicKey = <server_public_key>
Endpoint = <server_ip>:51820
AllowedIPs = 0.0.0.0/0, ::/0

En el bloque [Interface], usa la clave privada del cliente y asigna una dirección IP dentro de la red privada. En el bloque [Peer], coloca la clave pública del servidor y la dirección IP del servidor junto con el puerto.

3.3. Iniciar la Conexión en el Cliente

Para iniciar la conexión en el cliente, utiliza el siguiente comando:

sudo wg-quick up wg0

Paso 4: Pruebas de Conexión

Una vez configurados tanto el servidor como el cliente, puedes realizar una prueba de conexión. Desde el cliente, intenta hacer ping a la dirección IP del servidor:

ping 10.0.0.1

Si todo está configurado correctamente, deberías recibir respuestas del servidor.

Consideraciones de Seguridad

  1. Firewall: Asegúrate de permitir el puerto 51820 (o el puerto que hayas elegido) en el firewall de tu servidor. bashCopiarEditarsudo ufw allow 51820/udp
  2. NAT y Redirección de Puertos: Si estás utilizando un servidor detrás de un router, necesitarás configurar la redirección de puertos (port forwarding) para permitir que las conexiones externas lleguen al servidor WireGuard.

Conclusión

WireGuard es una de las soluciones de VPN más rápidas y seguras disponibles hoy en día. Con su facilidad de configuración y excelente rendimiento, es ideal para implementaciones tanto en servidores como en clientes. Siguiendo los pasos de esta guía, podrás instalar y configurar WireGuard en Linux, garantizando una conexión segura y eficiente para tu red.

Recuerda siempre verificar que las configuraciones de red y firewall estén correctas para evitar problemas de conectividad. ¡Ahora tienes una VPN robusta y moderna lista para usar!

Deja una respuesta

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