Guía paso a paso para configurar WireGuard en Debian

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Paso 1: Actualizar el sistema

Antes de empezar, asegúrate de que tu sistema esté actualizado.

sudo apt update && sudo apt upgrade

Paso 2: Instalar WireGuard

WireGuard está disponible en los repositorios oficiales de Debian, por lo que puedes instalarlo usando apt.

sudo apt install wireguard wireguard-tools

Paso 3: Generar claves públicas y privadas

WireGuard utiliza criptografía de clave pública/privada. Necesitarás generar un par de claves para el servidor y cada cliente.

wg genkey | tee privatekey | wg pubkey > publickey

Esto generará dos archivos:

  • privatekey: Contiene la clave privada.
  • publickey: Contiene la clave pública.

Paso 4: Configurar la interfaz de WireGuard en el servidor

  1. Crea un archivo de configuración para el servidor de WireGuard en /etc/wireguard/wg0.conf.
sudo nano /etc/wireguard/wg0.conf
  1. Agrega la configuración básica al archivo. Usa las claves que generaste anteriormente.
[Interface]
Address = 10.0.0.1/24 # Dirección IP del servidor dentro de la VPN
ListenPort = 51820 # Puerto para WireGuard
PrivateKey = <clave_privada_del_servidor>
SaveConfig = true
  1. Habilita el reenvío de IPs para permitir el tráfico entre los clientes y el servidor:
sudo nano /etc/sysctl.conf

Descomenta o agrega la siguiente línea:

net.ipv4.ip_forward=1

Aplica los cambios:

sudo sysctl -p

Paso 5: Configurar las reglas de firewall (opcional)

Si estás utilizando iptables, configura las reglas para permitir el tráfico a través del puerto WireGuard y habilita el enmascaramiento:

sudo iptables -A FORWARD -i wg0 -j ACCEPT
sudo iptables -A FORWARD -o wg0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Suponiendo que eth0 es tu interfaz de red pública
sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT

Guarda las reglas de iptables:

sudo apt install iptables-persistent
sudo netfilter-persistent save

Paso 6: Agregar clientes

  1. Genera claves para cada cliente siguiendo el mismo procedimiento:
wg genkey | tee client_privatekey | wg pubkey > client_publickey
  1. Agrega la información del cliente en el archivo de configuración del servidor (/etc/wireguard/wg0.conf):
[Peer]
PublicKey = <clave_publica_del_cliente>
AllowedIPs = 10.0.0.2/32 # Dirección IP que asignas al cliente dentro de la VPN
  1. Recarga la configuración de WireGuard:
sudo wg addconf wg0 <(wg-quick strip wg0)

Paso 7: Configurar el cliente

  1. En el cliente, crea un archivo de configuración /etc/wireguard/wg0.conf.
sudo nano /etc/wireguard/wg0.conf
  1. Agrega la configuración siguiente, ajustando las direcciones IP y claves:
[Interface]
PrivateKey = <clave_privada_del_cliente>
Address = 10.0.0.2/24 # IP del cliente dentro de la VPN

[Peer]
PublicKey = <clave_publica_del_servidor>
Endpoint = <ip_publica_del_servidor>:51820
AllowedIPs = 0.0.0.0/0 # Para enrutar todo el tráfico a través de la VPN

Paso 8: Iniciar WireGuard en el servidor y cliente

  1. En el servidor, inicia el servicio de WireGuard:
sudo systemctl start [email protected]
sudo systemctl enable [email protected]
  1. En el cliente, también inicia WireGuard:
sudo systemctl start [email protected]
sudo systemctl enable [email protected]

Paso 9: Verificar la conexión

En el servidor, verifica que el cliente esté conectado usando el siguiente comando:

sudo wg

Esto te mostrará las interfaces activas y los pares conectados.

Paso 10: Habilitar WireGuard al inicio del sistema

Para asegurarte de que WireGuard se ejecute automáticamente en el arranque tanto en el servidor como en el cliente, habilita el servicio:

sudo systemctl enable [email protected]

¡Y eso es todo! WireGuard debería estar configurado y funcionando. Puedes añadir más clientes repitiendo los pasos 6 y 7 para cada uno.