Instalar Wireguard VPN en Debian

WireGuard® es una VPN extremadamente simple rápida y moderna que utiliza criptografía de última generación. Su objetivo es ser más rápida y más simple que otras implementaciones como IPSec y OpenVPN.

Wireguard maneja el concepto de peers (puntos), esto permite crear una topología de red tipo Malla. Toda la comunicación entre los peers sea realiza sobre el protocolo UDP. Cada peer actua como cliente y servidor.

Con Wireguard puede crear una red interna segura ya que todo el tráfico es encryptado por tanto no es suceptible a ataques de hombre en el medio (mitm attack), también puede ser usada como proxy para acceder a sitios bloqueado o simplemente para ocultar su IP externa.

⚠️ Nota: Se han señalado los pasos para Debian 10, en caso de que tenga una versión 11, 12 o superior los pasos señalados no son necesarios.

Activar respositorio backports (Debian 10)

# echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list

Actualizar definición de repositorios

# apt update

Instalar el paquete linux-headers (Debian 10)

# apt install linux-headers-$(uname --kernel-release) dkms

Instalar wireguard

# apt install wireguard

Cargar el módulo de wireguard (Debian 10)

# modprobe wireguard

Comprobar que el modulo ha sido cargado (Debian 10)

# lsmod |grep wireguard
wireguard             204800  0
ip6_udp_tunnel         16384  1 wireguard
udp_tunnel             16384  1 wireguard

Cargar el modulo automáticamente (Debian 10)

# echo wireguard >> /etc/modules

Movernos al DIR /etc/wireguard

#  cd /etc/wireguard

Crear el DIR para guardar llave pública y privada (Opcional)

# mkdir keys

Establecer la máscara de permisos

Garantizamos que solo root tenga acceso al los ficheros de configuración y a la llaves privadas.

# umask 077

Generar llave privada

# wg genkey > keys/private 

Generar llave pública

# wg pubkey < keys/private >keys/public

Crear fichero de configuración

Creamos el fichero wg0.conf y agregamos:

[Interface]
PrivateKey = Ponga aquí la llave privada 
ListenPort = 51820
# Dirección IP de este peer puede ser 
# cualquier valor del rango asignados a redes LAN
Address = 10.1.1.1/32 

#
# En esta parte ponemos todos los peers con los cuales se comunicará este peer
[Peer]
PublicKey = Ponga la llave pública del peer cliente
# Dirección IP del peer cliente, esta es una dirección IP alcanzable, por ejemplo
# cualquier dirección IP de su red de aréa local o una IP pública, en otras palabras
# todos los peer deben poder comunicarse por otro tipo de red antes de configurar 
# Wireguard, en este caso estamos asumiendo que ambos peers están en la misma red
# de aréa local 192.168.100.0/24
Endpoint = 192.168.100.1:51820
# Dirección IP del peer cliente en la VPN
AllowedIPs = 10.1.1.2/32
# Manda un paquete cada 25s para mantener la conexión viva, útil para 
# muros cortafuegos NAT
PersistentKeepalive = 25

Administrar como servicio

Inicio automático

# systemctl enable wg-quick@wg0
Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service.

Iniciar

# systemctl start wg-quick@wg0

Ver estado

# systemctl status wg-quick@wg0

Reiniciar

# systemctl restart wg-quick@wg0

Detener

# systemctl stop wg-quick@wg0

Recomiplar Wireguard (Debian 10)

Luego de actualizar Debian 10 y de reiniciar el SO no funciona su VPN entonces debe recompilar el módulo con el siguiente comando:

# dkms autoinstall

YouTube Video

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.