Introducción
WireGuard es un protocolo VPN moderno y de alto rendimiento que es más sencillo de configurar que OpenVPN o IPSec. Esta guía cubre la configuración de un servidor WireGuard en Ubuntu/Debian y la conexión de un cliente.
Requisitos previos
- Un VPS Linux con una dirección IP pública
- Acceso root o sudo
- Puerto UDP 51820 abierto en su firewall
Paso 1: Instalar WireGuard
sudo apt update
sudo apt install wireguard -y
Para AlmaLinux/RHEL:
sudo yum install epel-release -y
sudo yum install wireguard-tools -y
Paso 2: Generar las llaves del servidor
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
chmod 600 /etc/wireguard/server_private.key
Ver las llaves:
cat /etc/wireguard/server_private.key
cat /etc/wireguard/server_public.key
Paso 3: Generar las llaves del cliente
wg genkey | tee /etc/wireguard/client1_private.key | wg pubkey > /etc/wireguard/client1_public.key
Paso 4: Configurar el servidor
Cree el archivo de configuración del servidor:
sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = LLAVE_PRIVADA_SERVIDOR
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# Cliente 1
PublicKey = LLAVE_PUBLICA_CLIENTE1
AllowedIPs = 10.0.0.2/32
Reemplace:
-
LLAVE_PRIVADA_SERVIDORcon el contenido deserver_private.key -
LLAVE_PUBLICA_CLIENTE1con el contenido declient1_public.key -
eth0con el nombre de la interfaz de red principal de su servidor
Paso 5: Habilitar el reenvío de IP
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Paso 6: Iniciar WireGuard
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Verifique que la interfaz esté activa:
sudo wg show
Paso 7: Abrir el puerto en el firewall
sudo ufw allow 51820/udp
Paso 8: Configurar el cliente
Cree un archivo de configuración para el cliente (en la máquina del cliente o para importar en la aplicación WireGuard):
[Interface]
Address = 10.0.0.2/24
PrivateKey = LLAVE_PRIVADA_CLIENTE1
DNS = 8.8.8.8
[Peer]
PublicKey = LLAVE_PUBLICA_SERVIDOR
Endpoint = IP_DE_SU_SERVIDOR:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Reemplace:
-
LLAVE_PRIVADA_CLIENTE1con el contenido declient1_private.key -
LLAVE_PUBLICA_SERVIDORcon el contenido deserver_public.key -
IP_DE_SU_SERVIDORcon la dirección IP pública de su servidor
AllowedIPs = 0.0.0.0/0 enruta todo el tráfico a través de la VPN. Para enrutar solo el tráfico hacia la subred VPN, use AllowedIPs = 10.0.0.0/24.
Agregar más clientes
Para cada cliente adicional:
- Genere un nuevo par de llaves.
- Agregue una nueva sección
[Peer]en/etc/wireguard/wg0.confcon unAllowedIPsúnico (ej.:10.0.0.3/32). - Recargue la configuración:
sudo wg syncconf wg0 <(wg-quick strip wg0)
Comandos útiles
| Comando | Descripción |
|---|---|
sudo wg show |
Mostrar el estado de la interfaz WireGuard y los pares conectados |
sudo wg-quick up wg0 |
Iniciar la interfaz WireGuard |
sudo wg-quick down wg0 |
Detener la interfaz WireGuard |
sudo systemctl status wg-quick@wg0 |
Verificar el estado del servicio |