Este tutorial le mostrará cómo configurar su servidor VPN WireGuard en Ubuntu en pasos fáciles de seguir.
Índice
- Paso 1:habilite el reenvío de IP en el servidor
- Paso 2:Instale WireGuard en Ubuntu
- Paso 3:configurar el servidor VPN WireGuard en Ubuntu
- Paso 3.1:generar un par de claves pública/privada
- Paso 3.2:Configurar dispositivo de túnel
- Paso 4:habilite e inicie el servicio VPN de WireGuard
- Paso 5:Instalar y configurar el cliente WireGuard
- Paso 6:Conexión del cliente WireGuard al servidor
- Conclusión
WireGuard es un servidor VPN de código abierto, gratuito y rápido que utiliza criptografía de última generación. Pasa el tráfico a través de UDP con mejor rendimiento que los dos protocolos de tunelización típicos, es decir, OpenVPN e IPsec.
WireGuard es una VPN peer-to-peer creada explícitamente para el kernel de Linux. Se ejecuta dentro del kernel de Linux y le permite crear un túnel VPN rápido, moderno y seguro.
WireGuard funciona mediante la creación de una interfaz de red en cada dispositivo del mismo nivel que actúa como un túnel. Los pares se autentican entre sí intercambiando y validando claves públicas, imitando el modelo SSH.
Paso 1:habilite el reenvío de IP en el servidor
Para que el servidor VPN enrute paquetes entre clientes VPN e Internet, debe habilitar el reenvío de IP. Abra el /etc/sysctl.conf
archivo usando tu editor preferido:
sudo vim /etc/sysctl.conf
Comentar (quitar el #
carácter anterior) la siguiente línea:
Guarde el archivo y aplique el cambio:
sudo sysctl -p
Paso 2:Instalar WireGuard en Ubuntu
El siguiente paso en este tutorial es instalar WireGuard en su máquina Ubuntu y configurarlo para que actúe como servidor. De forma predeterminada, el paquete WireGuard está disponible en el repositorio predeterminado de Ubuntu.
sudo apt install wireguard
Una vez que se haya instalado el paquete WireGuard, puede continuar con el siguiente paso.
Paso 3:Configure el servidor WireGuard VPN en Ubuntu
WireGuard funciona mediante el intercambio de claves públicas entre cada dispositivo de la red WireGuard. Ahora que ha instalado WireGuard, el siguiente paso es generar un par de claves pública y privada para el servidor.
Paso 3.1:generar un par de claves pública/privada
Ejecute el siguiente comando para crear un par de claves pública/privada. Los archivos se guardarán en /etc/wireguard/
directorio.
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
El wg
El comando es la utilidad de configuración integrada de WireGuard para obtener y configurar las configuraciones de WireGuard. Cuando ejecute el comando, recibirá una sola línea de salida codificada en base64, la clave pública (server_public.key
) para su servidor WireGuard.
Recuerda, la clave privada (server_private.key
) nunca debe compartirse con nadie y siempre debe mantenerse seguro.
Paso 3.2:Configurar dispositivo de túnel
A continuación, deberá crear una interfaz de red para WireGuard. Utilice un editor de texto de línea de comandos como vim para crear un archivo de configuración de WireGuard. El nombre de la interfaz de red será wg0
.
sudo vim /etc/wireguard/wg0.conf
Agregue los contenidos que se indican a continuación:
[Interface]
## Private IP address for the wg0 interface ##
Address = 10.0.0.1/24
## VPN server listening port ##
ListenPort = 51820
## VPN server private key ##
PrivateKey = mPIoWfKQWZP8lie2ISEZ6ul7vyESH9MqpFvxk1cxIWQ=
## Firewall rules ##
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
Por supuesto, debe reemplazar la PrivateKey
con el contenido del que generaste, almacenado en el /etc/wireguard/server_private.key
archivo.
Puede mostrar el contenido de la clave privada con el siguiente comando:
sudo cat /etc/wireguard/server_private.key
Asegúrate de reemplazar enp1s0
después de -A POSTROUTING -o ...
para que coincida con el nombre de su interfaz de red pública. Puedes encontrarlo fácilmente con:
ip -o -4 route show to default | awk '{print $5}'
Guarde y cierre el wg0.conf
expediente. Además, cambie el modo de permiso de archivo para que solo el usuario root pueda leer los archivos.
sudo chmod -R 600 /etc/wireguard/
Paso 4:habilitar e iniciar el servicio WireGuard VPN
Ejecute el siguiente comando en el servidor para habilitar el inicio automático en el momento del arranque del sistema e inicie WireGuard.
sudo systemctl enable [email protected]
sudo systemctl start [email protected]
Verifique su estado con el siguiente comando. Debería ver active
en la salida:
sudo systemctl status [email protected]
Para verificar el estado y la configuración de la interfaz, ingrese:
sudo wg show wg0
Paso 5:Instalar y configurar el cliente WireGuard
Primero, deberá instalar el paquete WireGuard en la máquina cliente. Es similar a configurar el servidor WireGuard.
sudo apt install wireguard
A continuación, deberá generar un par de claves pública/privada en el par siguiendo los pasos exactos que usó en el servidor.
wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key
Abra un nuevo /etc/wireguard/wg0.conf
archivo en la máquina cliente de WireGuard usando su editor preferido:
sudo vim /etc/wireguard/wg0.conf
Agregue las siguientes líneas al archivo:
[Interface]
## VPN client private IP address ##
Address = 10.0.0.2/24
## VPN client private key ##
PrivateKey = 0COkq1GMM86CmlF5blPFDYhU84iTX8iJ7lWoC1gLfnk=
[Peer]
## VPN server public key ##
PublicKey = ZnD/WMx0kasJfGjFf0/uCtJoFbz0oNdq7EcieHXVaSc=
## VPN server public IP address and port ##
Endpoint = 192.168.122.101:51820
## Route all the traffic through the VPN tunnel ##
AllowedIPs = 0.0.0.0/0
## Key connection alive ##
PersistentKeepalive = 15
Reemplace la PrivateKey
con el contenido del que generaste, almacenado en el /etc/wireguard/client_private.key
archivo en la máquina cliente.
sudo cat /etc/wireguard/client_private.key
Reemplace la clave pública del servidor, que se puede encontrar en /etc/wireguard/server_public.key
archivo en el servidor.
Reemplace el Endpoint
valor (192.168.122.101:51820
) con la dirección IP pública real y el puerto de su servidor.
Finalmente, guarde y cierre el archivo.
Debe configurar la opción VPN del lado del servidor para permitir una conexión entre la computadora cliente (par) y el servidor. Entonces, regrese al servidor y edite el /etc/wireguard/wg0.conf
archivo para agregar la información del cliente de la siguiente manera:
sudo vim /etc/wireguard/wg0.conf
[Peer]
## Client public key ##
PublicKey = 6FLtyfBQie9+EB3QYF55CR1FASca7vVYPReynlEccAo=
## Client IP address ##
AllowedIPs = 10.0.0.2/24
Reemplace la PublicKey
con el contenido del archivo almacenado en /etc/wireguard/client_public.key
archivo en la máquina cliente .
La versión final del archivo de configuración del servidor debería verse así:
Guarde el archivo y reinicie el servidor VPN para aplicar los cambios:
sudo systemctl restart [email protected]
Paso 6:Conexión del cliente WireGuard al servidor
Ejecute el siguiente comando en la máquina cliente para conectar el cliente VPN al servidor VPN:
sudo systemctl start [email protected]
Ahora debería estar conectado al servidor VPN de WireGuard y el tráfico de su máquina cliente debería enrutarse a través de él.
¡Eso es todo! Tanto el cliente como el servidor deben estar conectados de forma segura mediante una VPN WireGuard punto a punto en Ubuntu.
Para probar la conexión, regrese al cliente VPN y haga ping desde él (10.0.0.2
) al servidor VPN (10.0.0.1
) para ver si el túnel funciona.
ping -c 3 10.0.0.1
Además, puede comprobar la conexión con:
sudo wg
Para detener la tunelización, simplemente desactive el servicio en la máquina cliente:
sudo systemctl stop [email protected]
Conclusión
¡Felicidades! Espero que este tutorial le haya ayudado a instalar y configurar el servidor y el cliente VPN de WireGuard en Ubuntu. Esta configuración le permite navegar por la web de forma anónima manteniendo la privacidad de sus datos de tráfico.
Le sugiero enfáticamente que lea la documentación del proyecto WireGuard aquí.
Si esta publicación le resultó útil o si tiene algún problema, no dude en dejar un comentario.