WireGuard es una VPN rápida y de código abierto que utiliza criptografía de última generación. Vpn significa Red Privada Virtual. Si compara Wireguard VPN con otras soluciones de VPN, WireGuard VPN se configura fácilmente, ocupa menos espacio y es más rápido. Otras soluciones VPN son IPsec y OpenVPN. WireGuard se puede instalar en cualquier sistema operativo importante como Windows, Linux, macOS y Android.
Cuando profundizamos en WireGuard VPN, encontramos que no sigue el modelo cliente-servidor sino que sigue la VPN peer-to-peer. podemos configurar un par para que sea un cliente o un servidor durante la configuración. Crea una interfaz de red en cada dispositivo del mismo nivel. Esto entonces funciona como un túnel. La autenticación de pares se realiza compartiendo o validando claves públicas. Imita el modelo SSh.
Pasemos al tema principal de este artículo, que es configurar la VPN wireguard en Debian 11. Actuará como un servidor VPN.
Paso 1:Instalación de WireGuard en Debian 11
Comencemos instalando primero la VPN wireguard. Se puede instalar a través de repositorios backports. Podemos agregarlo a nuestro sistema mediante el siguiente comando:
$ echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list
Ahora que el repositorio ha sido habilitado, actualicemos nuestro apt-cache. Para ello escriba el siguiente comando:
$ sudo apt update
Después de la actualización, tenemos que instalar el módulo y las herramientas de protección de cables. Para ello escriba o copie el siguiente comando:
$ sudo apt install wireguard
Cabe señalar que wireguard se ejecuta como un módulo del kernel.
Paso 2:Configuración de WireGuard
Ahora que hemos instalado wireguard en Debian 11, configuremos wireguard. El wg y el wg-quick Los comandos nos ayudan a administrar y configurar wireguard.
Como mencionamos en la introducción de este artículo, todos los dispositivos de la red VPN de Wireguard tienen una clave pública y otra privada. Para ello tenemos que ejecutar el siguiente comando para generar el par de claves:
$ wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
Podrá ver la clave una vez que ejecute el comando anterior tal como se muestra en la captura de pantalla. Los archivos de pares de claves se generaron en el directorio /etc/wireguard. Podemos ver el contenido del archivo usando el gato o menos comandos en Debian 11.
Cabe señalar que la clave privada es privada y nunca debe compartirse con nadie.
Otra clave que admite Wireguard es la clave precompartida. La función de esta clave es agregar una capa adicional de criptografía de clave simétrica. Hay que tener en cuenta que esta clave es completamente opcional. Además, esta clave debe ser única para cada par de compañeros.
El siguiente paso para configurar WireGuard es configurar el dispositivo de túnel. El dispositivo del túnel podrá enrutar nuestro tráfico VPN. Para ello, configuremos nuestro dispositivo desde la interfaz de línea de comandos.
Abriremos el editor y crearemos un nuevo archivo con el nombre wg0.conf. Para crear la configuración tenemos que usar un editor de texto. Siga el siguiente comando para abrir el editor y crear un nuevo archivo:
$ sudo nano /etc/wireguard/wg0.conf
Agregue lo siguiente en su editor abierto:
Dirección =10.0.0.1/24
GuardarConfig =verdadero
Puerto de escucha =51820
Clave privada =SERVER_PRIVATE_KEY
PostUp =iptables -A ADELANTE -i %i -j ACEPTAR; iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
PostDown =iptables -D ADELANTE -i %i -j ACEPTAR; iptables -t nat -D POSTROUTING -o enp0s3 -j MASQUERADE
Presione CTRL+S para guardar el archivo y luego presione CTRL+X para cerrar el archivo.
Antes de continuar, permítanme enfatizar el punto de que debe reemplazar SERVER_PRIVATE_KEY en el código anterior con su clave privada. Puede generar una clave privada con el siguiente comando:
$ umask 077 /etc/wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
Para ver la clave privada puede seguir el siguiente comando:
$ sudo cat /etc/wireguard/privatekey
Tenga en cuenta que en los comandos anteriores debe reemplazar enp0s3 que se encuentra después de Postrouting con la interfaz de red pública. Puede encontrar su interfaz pública con el siguiente comando:
$ ip -o -4 route show to default | awk '{print $5}'
Ahora que ha terminado de editar el archivo en el editor, usando los atributos en el archivo de configuración, tenemos que traer el wg0 interfaz arriba. Para ello escriba el siguiente comando:
$ sudo wg-quick up wg0
La salida será como se muestra a continuación:
Podemos ver la configuración y el estado de la interfaz con el siguiente comando:
$ sudo wg show wg0
El último paso para configurar wireGuard es traerlo en el momento del arranque. La razón detrás de esto es que WireGuard es manejable con systemd. Escribe el siguiente comando:
$ sudo systemctl enable [email protected]
Paso 3:Redes de servidores y configuración de cortafuegos
Este paso implica configurar el servidor de seguridad y la red del servidor. Para que NAT funcione, primero debe habilitar el reenvío de IP. Para ello escriba el siguiente comando:
$ sudo nano /etc/sysctl.conf
Esto abrirá el archivo sysctl.conf. Tenemos que agregar la siguiente línea en ese archivo:
net.ipv4.ip_forward=1
Cuando haya terminado de agregar la línea anterior, guarde el archivo presionando CTRL+S y luego, para cerrar el archivo, presione CTRL+X.
Después de esto, escriba el siguiente comando en la terminal:
$ sudo sysctl -p
El paso final es administrar nuestro firewall. Tenemos que abrir el puerto 51820 para tráfico UDP. Esto es solo si uno está usando el UFW. Para ello escriba el siguiente comando:
$ sudo ufw allow 51820/udp
¡Felicidades! Hemos configurado con éxito el par de Debian. Ahora actuará como servidor.
Paso 4:Configuración del cliente de Windows
Ahora que el servidor está configurado, tenemos que configurar un cliente. Para ello elegimos ventanas. Vaya a su navegador e instale el paquete MSI para la ventana desde el siguiente enlace:
https://www.wireguard.com/install/
Instale el archivo descargado y luego haga clic en “Agregar túnel” en la esquina inferior izquierda.
Se abrirá una ventana desplegable. Seleccione la opción de “Agregar túnel vacío” . Una vez hecho, verá la siguiente pantalla:
Aquí edite el archivo agregando las siguientes líneas:
[Interfaz]
PrivateKey =CLIENT_PRIVATE_KEY
Dirección =10.0.0.2/24
[Peer]
PublicKey =SERVER_PUBLIC_KEY
Endpoint =SERVER_IP_ADDRESS:51820
PermitedIPs =0.0.0.0/0
Debe tener en cuenta que debe agregar su clave privada y el servidor que creó, es una clave pública en los campos respectivos. Además, debe reemplazar “Server_IP_ADDRESS” palabra clave y coloque la dirección IP del servidor . Después de esto, establezca el nombre y haga clic en guardar.
Paso 5:conexión entre cliente y servidor
El paso 5 es agregar el cliente y el servidor. Este es el penúltimo paso donde configuraremos la dirección IP y la clave pública del cliente al servidor. Regrese a su servidor Debian 11 y escriba el siguiente comando:
$ sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2
Reemplace la clave pública con la clave pública de su cliente. Puede encontrar la clave pública del cliente en la aplicación WireGuard de su ventana.
Si ha realizado todos los pasos anteriores, vaya a su máquina cliente, es decir, a la aplicación Windows WireGuard.
Paso 6:Cliente de Windows
Este es el último paso donde solo debe hacer clic en el botón que dice "Activar" en el túnel de la aplicación WireGuard.
Una vez que haga clic en el botón de activación, el estado del túnel cambiará automáticamente a Activo. Y con esto, hemos terminado. ¡Felicitaciones!
Conclusión
Hemos instalado y configurado WireGuard en Debian 11. Hicimos la máquina Debian como un servidor y la máquina con Windows actuó como un cliente.
Ahora puede crear fácilmente un túnel seguro y encriptado que maneje todo el tráfico de Internet. En palabras simples, podrá navegar y navegar por Internet de forma anónima. Esto ayudará a protegerlo de todos, incluidos los piratas informáticos, ya que el tráfico de datos es privado.