WireGuard es una implementación moderna, segura, multiplataforma y de propósito general de VPN que utiliza criptografía de última generación. Su objetivo es ser más rápido, simple, liviano y funcional que IPsec y tener un mejor rendimiento que OpenVPN.
Está diseñado para ser utilizado en diversas situaciones y puede implementarse en interfaces integradas, enrutadores de alta capacidad y supercomputadoras por igual; y se ejecuta en sistemas operativos Linux, Windows, macOS, BSD, iOS y Android.
Lectura recomendada: 13 mejores servicios de VPN con suscripción de por vida
Presenta una interfaz extremadamente básica pero poderosa que tiene como objetivo ser simple, tan fácil de configurar e implementar como SSH. Sus principales características incluyen una interfaz de red simple, enrutamiento de claves criptográficas, roaming integrado y soporte de contenedores.
Ten en cuenta que en el momento de escribir esto, está en pleno desarrollo: algunas partes están trabajando hacia una versión estable 1.0, mientras que otras ya han alcanzado ese punto (funcionan correctamente).
En este artículo, aprenderás 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
Inicia sesión en ambos nodos e instala WireGuard utilizando el comando apropiado para tus distribuciones de Linux de la siguiente manera.
Instalar 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
Instalar 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
Configurar un túnel VPN de WireGuard entre dos hosts Linux
Cuando la instalación de wireguard esté completa en ambos nodos, puedes reiniciar tus nodos o agregar el módulo wireguard del kernel de Linux usando el siguiente comando en ambos nodos.
$ sudo modprobe wireguard OR # modprobe wireguard
A continuación, genera 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

Luego, debes crear una interfaz de red (por ejemplo, wg0) para WireGuard en los pares como se muestra a continuación. Luego, asigna 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, usa el siguiente comando IP.
$ ip ad

A continuación, asigna la clave privada de cada par a la interfaz de red wg0 y activa 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 a ellos, ejecuta la utilidad wg sin argumentos para recuperar la configuración de las interfaces de WireGuard en los pares. Luego crea tu túnel VPN de wireguard de la siguiente manera.
El par (clave pública), allowed-ips (red/máscara de subred) y endpoint (ip pública:puerto) pertenecen al 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

Pruebas del Túnel VPN de WireGuard entre Sistemas Linux
Una vez que se haya creado el túnel VPN de wireguard, haz ping al par opuesto utilizando la dirección de la interfaz de red de wireguard. Luego ejecuta la utilidad wg nuevamente para confirmar un apretón de manos entre los pares, tal 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, simple pero potente y fácil de configurar para el futuro. Está en constante desarrollo, por lo tanto, es un trabajo en progreso. Puedes obtener más información, especialmente sobre su funcionamiento interno y otras opciones de configuración, desde la página de inicio de WireGuard.
Source:
https://www.tecmint.com/wireguard-secure-vpn-tunnel-for-linux/