Hola Fronters, en esta entrada les estaŕe conversando un poco acerca de lo que es Wireguard VPN y como podemos configurarlo de forma sencilla y rápida nuestros equipos con Debian 10 / 11 y Ubuntu 20.04 / 22.04.
Wireguard es un protocolo VPN, el cual es directo competidor de otros servicios VPN, tales como OpenVPN, siendo esta una reformulación completa de como debería ser, según su visión, una Red Privada Virtual (o «Virtual Private Network«, en inglés). Esto en respuesta a los protocolos anteriormente establecidos para tal fin, tales como son IPSec y OpenVPN, entre otros. Si desean saber más sobre Wireguard VPN, les dejo este enlace, en el que está todo bien explicado, aunque difiero un poco en lo que expone el autor, pero no por ello deja de ser un buen artículo, por algo lo recomiendo, además de ser el primero que encontré, jeje =P.
Lo cierto es, y muy cierto, es que a la fecha no hay un cliente para Linux que sea tan amigable como para no tener que hacer las cosas por la terminal, sin embargo, podemos hacernos la vida más bonita si seguimos estos pasos:
Manos a la obra: Instalando WireGuard VPN
Abrir un terminal y escribir para mantener toda la paquetería actualizada:
sudo apt update
sudo apt upgrade -y
Luego instalaremos Wireguard y sus dependencias:
sudo apt install -y wireguard wireguard-dkms resolvconf
Configuraremos la redirección de red dentro del equipo editando el archivo /etc/sysctl.conf:
sudo nano /etc/sysctl.conf
Buscamos el parámetro que dice:
net.ipv4.ip_forward = 1
Y los descomentamos, quitándole el hashtag (‘#’), quedando de esta manera:
# La línea debe quedar así, sin # delante
net.ipv4.ip_forward = 1
Guardamos y cerramos el archivo (ctrl + s para guardar y luego ctrl + x para salir)
Y ejecutaremos:
sudo sysctl -p
Ahora, colocamos nuestro archivo de configuración de Wireguard, previamente entregado a nosotros, en la ruta adecuada para que pueda ser leído por el sistema:
sudo mv wg0gabriel.conf /etc/wireguard/
Y cambiaremos los permisos para que sean los adecuados:
sudo chown root:root /etc/wireguard/wg0gabriel.conf
sudo chmod 500 /etc/wireguard/wg0gabriel.conf
Probando el funcionamiento de nuestra Wireguard VPN
Ahora probamos el funcionamiento de nuestra Wireguard VPN. Para conectar con la vpn ejecutamos:
sudo systemctl start wg-quick@wg0gabriel
Cuando verifiquemos nuestras interfaces de red, la salida va a ser similar a esta:
ens18: flags=4163 mtu 1500
inet 192.168.16.233 netmask 255.255.255.0 broadcast 192.168.16.255
inet6 fe80::b225:47be:d21c:4d2f prefixlen 64 scopeid 0x20
ether 9c:ec:13:36:76:92 txqueuelen 1000 (Ethernet)
RX packets 61482 bytes 84043624 (84.0 MB)
RX errors 0 dropped 5 overruns 0 frame 0
TX packets 38875 bytes 4214467 (4.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 335 bytes 30682 (30.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 335 bytes 30682 (30.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wg0gabriel: flags=209 mtu 1420
inet 12.135.5.122 netmask 255.255.255.0 destination 12.135.5.122
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 25454 bytes 34261444 (34.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 17212 bytes 1847156 (1.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Siendo la última interface wg0gabriel (en mi caso), nuestro túnel Wireguard VPN:
Cuando deseemos salir de la VPN:
sudo systemctl stop wg wg-quick@wg0gabriel
Creando aliases para facilitar la utilización de la VPN
Si queremos manejar la conectividad VPN de una forma más fácil, podemos crear un par de aliases en nuestro fichero $USER/.bashrc de la siguiente manera:
sudo nano ~/.bashrc
Y agregamos las líneas al final del fichero:
# Creamos un alias para establecer conexión con la Wireguard VPN
alias conectarvpn="sudo systemctl start wg-quick@wg0gabriel"
# Y creamos otro alias para cerrar la conexión con la Wireguard VPN
alias cerrarvpn="sudo systemctl stop wg-quick@wg0gabriel"
Para que tome los cambios en el archivo .bashrc cerramos la sesión de usuario, nos volvemos a loguear y abrimos la terminal.
O también podemos recargar el fichero .bashrc con el comando:
source ~/.bashrc
Y ahora sólo necesitaremos escribir dos comandos desde la terminal: conectarvpn y cerrarvpn
# Para conectarnos a la VPN:
conectarvpn
# Para desconectarnos de la VPN:
cerrarvpn
Despedida
A partir de ahora puedes utilizar tu Wireguard VPN sin problemas en tu servidor. Por favor, si te gustó el artículo comenta, comparte. Es la única forma que tengo de difundir el contenido y llegar a más y más gente que, como tú y como yo, quiere aprender cada día un poco más.
Referencias
WizCase.com: WireGuard VPN: ¿Un protocolo VPN nuevo y mejorado?