Búsqueda de sitios web

WireGuard: un túnel VPN rápido, moderno y seguro para Linux


WireGuard es una implementación VPN moderna, segura, multiplataforma y de uso general que utiliza criptografía de última generación. Su objetivo es ser más rápido, más simple, más ágil y más funcional que IPsec y pretende tener más rendimiento que OpenVPN.

Está diseñado para usarse en diversas circunstancias y puede implementarse en interfaces integradas, enrutadores troncales completamente cargados y supercomputadoras por igual; y se ejecuta en los sistemas operativos Linux, Windows, macOS, BSD, iOS y Android.

Lectura recomendada: 13 mejores servicios VPN con suscripción de por vida

Presenta una interfaz extremadamente básica pero poderosa que pretende ser simple, tan fácil de configurar e implementar como SSH. Sus características clave incluyen una interfaz de red simple, enrutamiento de claves criptográficas, roaming integrado y soporte para contenedores.

Tenga en cuenta que al momento de escribir este artículo, se encuentra en un intenso desarrollo: algunas de sus partes están trabajando para una versión estable 1.0, mientras que otras ya están ahí (funcionando bien).

En este artículo, aprenderá cómo instalar y configurar WireGuard en Linux para crear un túnel VPN entre dos hosts Linux.

Entorno de prueba

Para esta guía, nuestra configuración (nombre de host e IP pública) es la siguiente:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Cómo instalar WireGuard en distribuciones de Linux

Inicie sesión en ambos nodos e instale WireGuard usando el siguiente comando apropiado para sus distribuciones de Linux de la siguiente manera.

Instale WireGuard en RHEL 8

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Instalar WireGuard en CentOS 8

sudo yum install epel-release
sudo yum config-manager --set-enabled PowerTools
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Instale WireGuard en RHEL/CentOS 7

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
sudo yum install wireguard-dkms wireguard-tools

Instalar WireGuard en Fedora

sudo dnf install wireguard-tools

Instalar WireGuard en Debian

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

Instalar WireGuard en Ubuntu

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard

Instalar WireGuard en OpenSUSE

sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
sudo zypper install wireguard-kmp-default wireguard-tools

Configuración de un túnel VPN WireGuard entre dos hosts Linux

Cuando se complete la instalación de wireguard en ambos nodos, puede reiniciar sus nodos o agregar el módulo wireguard desde el kernel de Linux usando el siguiente comando en ambos nodos.

sudo modprobe wireguard
OR
modprobe wireguard

A continuación, genere claves públicas y privadas codificadas en base64 utilizando la utilidad wg en ambos nodos como se muestra.

---------- On Node 1 ---------- 
umask 077
wg genkey >private_appserver1

---------- On Node 2 ----------
umask 077
wg genkey >private_dbserver1
wg pubkey < private_dbserver1

A continuación, debe crear una interfaz de red (por ejemplo, wg0) para wiregaurd en los pares como se muestra a continuación. Luego asigne direcciones IP a la nueva interfaz de red creada (para esta guía, usaremos la red 192.168.10.0/24).

---------- On Node 1 ---------- 
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.2/24 dev wg0

Para ver las interfaces de red adjuntas en los pares y sus direcciones IP, use el siguiente comando IP.

ip ad

A continuación, asigne la clave privada para cada igual a la interfaz de red wg0 y abra la interfaz como se muestra.

---------- On Node 1 ---------- 
sudo wg set wg0 private-key ./private_appserver1
sudo ip link set wg0 up

---------- On Node 2 ----------
sudo wg set wg0 private-key ./private_dbserver1
sudo ip link set wg0 up

Ahora que ambos enlaces están activos, cada uno con claves privadas asociadas, ejecute la utilidad wg sin ningún argumento para recuperar la configuración de las interfaces WireGuard en los pares. Luego cree su túnel VPN Wireguard de la siguiente manera.

El par (clave pública), ips permitidas (máscara de red/subred) y el punto final (ip pública:puerto) son del par opuesto .

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
sudo wg
sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
sudo wg
sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930

Prueba del túnel VPN WireGuard entre sistemas Linux

Una vez que se haya creado el túnel VPN de Wireguard, haga ping al par opuesto utilizando la dirección de la interfaz de red de Wireguard. Luego ejecute la utilidad wg una vez más para confirmar un apretón de manos entre los pares como se muestra.

---------- On Node 1 ----------
ping 192.168.10.2
sudo wg

---------- On Node 2 ----------
ping 192.168.10.1
sudo wg

¡Eso es todo por ahora! WireGuard es una solución VPN moderna, segura, sencilla pero potente y fácil de configurar para el futuro. Está experimentando un gran desarrollo, por lo que el trabajo está en progreso. Puede obtener más información, especialmente sobre su funcionamiento interno y otras opciones de configuración, en la página de inicio de WireGuard.