Configurar Remote Access VPN con Wireguard

Vay3t
4 min readApr 11, 2024

WireGuard es una solución VPN ligera, de alta velocidad y segura, ideal para configuraciones Remote Access o site-to-site. Su simplicidad y rendimiento superior lo hacen preferible sobre soluciones VPN más antiguas. Este post te guiará a través del proceso de instalación y configuración de WireGuard para establecer una conexión Remote Access VPN en Linux.

¿Qué es una Remote Access VPN?

Conocida como VPN de acceso remoto, es un tipo de conexión de red privada virtual (VPN) que permite a los usuarios remotos, como empleados fuera de la oficina, conectarse de manera segura a la red interna de una empresa o a recursos específicos dentro de esa red desde cualquier lugar, siempre que tengan acceso a internet. Este tipo de VPN establece una conexión segura y cifrada desde el dispositivo del usuario (el cliente) hasta el servidor VPN ubicado en la red de la empresa (el sitio).

1. Instalar WireGuard en el Servidor

Primero, necesitas instalar WireGuard en el servidor. Abre una terminal y ejecuta los siguientes comandos:

sudo su
apt install wireguard -y
cd /etc/wireguard/
umask 077; wg genkey | tee privatekey | wg pubkey > publickey

Estos comandos instalarán WireGuard, cambiarán al directorio de configuración de WireGuard, generarán una clave privada y, a partir de esta, generarán una clave pública.

2. Instalar WireGuard en el Cliente

Repite el proceso de instalación del servidor pero ahora en el cliente:

sudo su
apt install wireguard -y
cd /etc/wireguard/
umask 077; wg genkey | tee privatekey | wg pubkey > publickey

3. Configurar el Servidor WireGuard

Crea la configuración según el siguiente template en donde rellenarás la llave privada del servidor y las llaves publicas de los clientes según correspondan y guardarás en la ruta /etc/wireguard/wg0.conf. Es importante tener en cuenta de que en las secciones de <private server key> y <public client key> son los valores correspondientes de los archivos generados con el comando wg genkey y wg pubkey. En la sección de Address va la IP del Gateway de la VPN y el valor de su segmento. En donde dice AllowedIPs se especifica la IP que tendrá el cliente a la hora de conectarse.

[Interface]
PrivateKey = <private server key>
Address = 172.16.23.1/24
ListenPort = 51820
PostUp = sysctl -w net.ipv4.ip_forward=1; iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
PostDown = sysctl -w net.ipv4.ip_forward=0; iptables -D FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
MTU = 1420

[Peer]
# cliente 1
PublicKey = <public client key>
AllowedIPs = 172.16.23.2/32

[Peer]
# cliente 2
PublicKey = <public client key>
AllowedIPs = 172.16.23.3/32

Para habilitar el servicio automáticamente en el inicio deben ejecutar el siguiente comando

sudo systemctl enable wg-quick@wg0

Recuerda desactivar el Firewall para WireGuard

sudo ufw disable

4. Iniciar/Detener el Servidor WireGuard

Para iniciar el servidor WireGuard, ejecuta:

sudo systemctl start wg-quick@wg0

Para detenerlo, utiliza:

sudo systemctl stop wg-quick@wg0

5. Configurar el Cliente WireGuard

Igual que en el servidor, necesitarás crear /etc/wireguard/hs0.conf en tu host cliente para agregar la clave privada del cliente y la clave publica del servidor. En la sección de Address va la IP del cliente de la VPN y el valor de su segmento, en Endpoint va la dirección del servidor y AllowedIPs es donde se especifica la dirección IP y el segmento a cual se accederá dentro de la red de la VPN.

[Interface]
PrivateKey = <private client key>
Address = 172.16.23.2/24
MTU = 1384

[Peer]
# wireguard server
PublicKey = <public server key>
Endpoint = <IP server>:51820
AllowedIPs = 172.16.23.0/24
PersistentKeepalive = 25

6. Conectar el Cliente

Para conectar el cliente a la VPN, utiliza:

sudo wg-quick up hs0

Para desconectarlo:

sudo wg-quick stop hs0

Para que el cliente VPN inicie en el inicio debes ejecutar lo siguiente:

sudo systemctl enable wg-quick@hs0

Nota

Si utilizas en la configuración del cliente lo siguiente:

AllowedIPs = 0.0.0.0/0

Tendrás la IP de la VPN, por lo cual es necesario tener en cuenta de que el cliente tiene el control si quiere acceder a la red de la VPN o traficar por la IP del servidor.

Conclusión

Configurar una Remote Access VPN con WireGuard representa una solución moderna, eficiente y segura para las necesidades de conexión remota. Siguiendo los pasos descritos en este post, desde la instalación de WireGuard tanto en el servidor como en el cliente, hasta la configuración y gestión de la conexión VPN, puedes establecer una comunicación cifrada y de alta velocidad entre dispositivos remotos y tu red interna. Este proceso no solo mejora la seguridad de tu red permitiendo accesos remotos seguros sino que también se beneficia de la simplicidad y el rendimiento superior de WireGuard en comparación con soluciones VPN más tradicionales.

Referencias

Autores

Vay3t & Gwynplaine

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Vay3t
Vay3t

No responses yet

What are your thoughts?