¿Que es WireGuard?
WireGuard es una solución de red privada virtual (VPN) que tiene como objetivo ser simple, rápida y segura. Se utiliza para establecer túneles VPN entre dispositivos, lo que permite conexiones seguras a través de redes no confiables, como Internet. A diferencia de otras soluciones VPN tradicionales, WireGuard está diseñado con un enfoque en la simplicidad y eficiencia.
Características de WireGuard:
- Simplicidad: WireGuard tiene un diseño minimalista con un código fuente reducido en comparación con otros protocolos VPN. Esto facilita su revisión de seguridad y mantenimiento.
- Seguridad moderna: Utiliza criptografía de última generación, como ChaCha20 para cifrado, Poly1305 para autenticación, Curve25519 para intercambio de claves y BLAKE2s para hashing.
- Rendimiento: Es extremadamente rápido y eficiente, logrando mejores velocidades y menor latencia que VPNs tradicionales como OpenVPN o IPSec.
- Cross-platform: Es compatible con una amplia variedad de sistemas operativos, como Linux, macOS, Windows, Android y iOS.
- Configuración sencilla: WireGuard utiliza una interfaz de red virtual simple y no requiere configuración compleja para funcionar correctamente.
- Conexión persistente: Puede mantener una conexión persistente, aunque los dispositivos cambien de red o dirección IP.
- Portabilidad: Su diseño eficiente lo hace ideal para dispositivos de bajo consumo o embebidos.
Ventajas de WireGuard:
- Fácil de usar y configurar: Comparado con otras VPN, la configuración es mucho más simple.
- Rápido y eficiente: Reduce el uso de CPU y mejora la velocidad de conexión.
- Mayor seguridad: Utiliza criptografía moderna y segura.
- Menor consumo de batería: Esto es especialmente útil en dispositivos móviles.
- Bajo overhead: Menos datos adicionales en cada paquete, lo que optimiza el tráfico de red.
Cómo instalar WireGuard en Linux:
WireGuard es una solución VPN moderna que ofrece simplicidad, velocidad y seguridad. A continuación, te guiaré paso a paso sobre cómo instalar y configurar WireGuard en Linux.
- Paso 1: Actualizar el sistema Lo primero que debemos hacer es asegurarnos de que nuestro sistema esté actualizado. Ejecuta el siguiente comando en la terminal:
sudo apt update && sudo apt upgrade -y
- Paso 2: Instalar WireGuard Para distribuciones basadas en Debian/Ubuntu, WireGuard está disponible en los repositorios oficiales. Instálalo con el siguiente comando:
sudo apt install wireguard
Cómo configurar WireGuard en Linux:
- Paso 1: Acceder al directorio de configuración Navega al directorio de configuración de WireGuard con:
cd /etc/wireguard/
Aquí crearemos el par de calves para el servidor y para el cliente
Para mayor seguridad, configuramos los permisos para que solo el administrador pueda ver las claves generadas:
umask 077
- Paso 2: Crear el par de claves
Genera las claves para el servidor y el cliente:
- Clave del servidor:
wg genkey | tee serverprivatekey | wg pubkey > serverpublickey
- Clave del cliente:
wg genkey | tee clienteprivatekey01 | wg pubkey > clientepublickey01
- Si se requiere mas clientes repetir el comando anterior pero cambiando el nombre de las llaves para identificarlas facialmente por ejemplo:
wg genkey | tee clienteprivatekey02 | wg pubkey > clientepublickey02
- Paso 3: Puedes verificar las claves generadas con:
ls -lh
Esto nos mostrara todas las claves generadas
- Paso 4: Podemos ver el contenido de las claves con sus nombres correspondientes de cada una y las copiamos en un lugar visible:
cat serverprivatekey clientpublickey01
O también puedes usar:
cat 0*
- Paso 5: Ver nuestra ip de red con el siguiente comando:
ip a
Recordamos o guardamos nuestra IP para usarlo mas adelante.
- Paso 6: Crear el archivo de configuración Ahora creamos el archivo de configuración principal del servidor (/etc/wireguard/wg0.conf), usando el editor nano:
sudo nano wg0.conf
El contenido básico del archivo será el siguiente:
[Interface]
PrivateKey = (serverprivatekey)
Address = 10.0.0.1/24 (Direccion privada del servidor)
PostUp = iptables -A FORWARD -1 wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 (<-- Cambiarlo por el identificador de nuestra red) -j MASQUERADE
PostDown = iptables -D FORWARD -1 wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ethO0 (<-- Cambiarlo por el identificador de nuestra red) -j MASQUERADE
ListenPort = 51820 (Dejarlo por defecto)
[Peer]
PublicKey = <clientepublickey01>
AllowedIPs = 10.0.0.2/32 (<-- Ip privada que tiene el usuario/cliente)
#------------------Si se agregan otros clientes---------------------#
PublicKey = <clientepublickey02>
AllowedIPs = 10.0.0.3/32 (<-- Ip privada que tiene el usuario/cliente)
Un ejemplo listo, sin comentarios y terminado se vería asi:
[Interface]
PrivateKey = YFXqpAmxjEYUfAv9x11b5U2neIONO1jVBLUSdYROzZWk=
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -1 wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -1 wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ethO0 -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = AUB3C1xHT4roVyQpTse/UA5M6/v+DoMn ipdeEWi75Qc=
AllowedIPs = 10.0.0.2/32
- Paso 7: Activar WireGuard
Inicia la interfaz de WireGuard con el siguiente comando:
sudo wg-quick up wg0
-Paso 8: Octavo Para que la interfaz se inicie automáticamente en el arranque del sistema, habilítala con:
sudo systemctl enable wg-quick@wg0
- Paso 9: Habilitar el reenvío de paquetes Es necesario activar el reenvío de paquetes para que el tráfico pueda fluir entre el cliente y el servidor. Para hacerlo temporalmente, ejecuta:
sudo sysctl -w net. 1ipv4.1p_forward=1
- Paso 10: Para hacerlo permanente, edita el archivo /etc/sysctl.conf:
sudo nano /etc/sysctl.conf
Descomenta la siguiente línea:
net.ipv4.ip_forward=1
Configuración del cliente en Windows
Para configurar WireGuard en Windows, sigue estos pasos:
Paso 1: Descargar e instala wireguard y sigue el asistente de instalación.
Paso 2: Abre la aplicación, selecciona la opción para agregar un nuevo túnel en la parte inferior izquierda y configura los siguientes parámetros:
[Interface]
PrivateKey = clave privada cliente
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = clave publica servidor
AllowedIPs = 0.0.0.0/0
Endpoint = IP servidor:51820
Ya listo quedaría algo asi:
[Interface]
PrivateKey = GPCW-+PHaS0QZMOYZMYI2XCaTC19TANKGHAQEAZPT31=
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = NgZKUME+DIFwy11eGO/GvubTIGHECVOR2tF
AllowedIPs = 0.0.0.0/0
Endpoint = 94.237.80.228:51820
- Finalmente le asignaremos un nombre, guarda la configuración y activa el túnel.
Conclusión
WireGuard es una opción VPN moderna y eficiente, perfecta para quienes buscan simplicidad y seguridad en sus conexiones. Este tutorial cubre los pasos esenciales para instalar y configurar WireGuard en Linux y Windows.
Top comments (0)