Este artículo describe en detalle cómo configurar Wireguard VPN en su servidor. Puede ser un servidor virtual o privado, no importa tanto.
Esta guía de configuración de VPN Wireguard está diseñada para usuarios que no tienen mucha experiencia, por lo que todos los pasos serán bastante detallados y seguidos de capturas de pantalla.
El tráfico que pase por nuestro túnel estará cifrado e Internet mostrará la dirección IP de nuestro servidor VPN, no la dirección del proveedor a través del cual accedemos a la red.
Se supone que ya tienes un VPS. Si no, puedes... solicite de nosotros.
Instalaremos el sistema operativo Ubuntu 22.04 en nuestro servidor. Si tiene un servidor con un sistema operativo diferente, puede reinstalarlo fácilmente siguiendo las instrucciones. INSTRUCCIONES.
Ahora que el servidor está listo para usar Ubuntu 22.04, nos conectamos a él mediante SSH. Si no conoce este protocolo antes, un artículo que describe el proceso en detalle le será útil. El segundo párrafo... artículo es para el sistema operativo Linux, el tercero es para el sistema operativo Windows.
Configurar el servidor Wireguard
Después de una conexión exitosa, escribiré algunos comandos y una descripción de lo que producen para comprender el proceso:
Actualizamos la lista de paquetes en los repositorios
apt update
Renovación de los propios paquetes
apt upgrade -y
Instalar el paquete wireguard
apt install -y wireguard
Nuestra configuración se almacenará en el directorio /etc/wireguard/, debemos ingresar al directorio:
cd /etc/wireguard/
Necesitaremos una clave pública y una privada para nuestro servidor. Las generaremos tras configurar los permisos correctos al crear archivos y directorios con los siguientes comandos:
umask 077
wg genkey > privatekey
wg pubkey < privatekey > publickey
Ahora establecemos los derechos para la clave privada:
chmod 600 privatekey
Antes de crear el archivo de configuración, necesitamos el nombre de nuestra interfaz de red. Para descubrirlo, use el comando:
ip a
Necesitamos la interfaz con la dirección IP utilizada para la conexión actual. Probablemente se llamará ens3 en tu caso, pero podría tener otro nombre.
También necesitaremos una clave pública y una privada. Para mostrarlas, uso tail.
tail privatekey publickey
Se parece a esto:
Para editar, puedes utilizar cualquier Editor de texto de LinuxUsaré nano. Para instalarlo, necesitas ejecutar el comando:
apt install -y nano
Editamos el archivo de configuración:
nano /etc/wireguard/wg0.conf
Nota:
Para guardar el archivo usamos la combinación de botones ctrl+o
para salir - ctrl+x
Debe tener un aspecto como este:
[Interface]
PrivateKey = [ your private key ]
Address = 10.30.0.1/24
ListenPort = 51928
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o [ interface name ] -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o [ interface name ] -j MASQUERADE
En mi caso se ve así
Activamos el reenvío de IP
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Lanzamiento del servicio Wireguard:
systemctl start [email protected]
Si queremos que el servicio se inicie después de reiniciar el servidor, hacemos lo siguiente:
systemctl enable [email protected]
Para ver el estado del servicio:
systemctl status [email protected]
El estado debe estar activo como en la captura de pantalla:
Si siguió atentamente nuestras instrucciones, entonces en esta etapa tiene todo lo que necesita para hacer que la parte del servidor de VPN Wireguard funcione.
Configuración del cliente Wireguard
Solo queda configurar la parte del cliente. Para simplificar, generaré claves para la parte del cliente también en el servidor. Sin embargo, por seguridad, sería más correcto generar claves en el lado del cliente. Utilizo los siguientes comandos para la generación:
wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey
También generaré claves para usar la VPN en el teléfono:
wg genkey > myphone_private
keywg pubkey < myphone_privatekey > myphone_publickey
Se debe tener en cuenta que todo esto debe realizarse estando en el catálogo.
/etc/wireguard/
También se puede ejecutar en otro catálogo. Para simplificar, ejecutamos las instrucciones en /etc/wireguard/
Usamos el comando ls para listar los archivos de un directorio. Lo hice así:
Mostremos las claves públicas en pantalla. Las necesitaremos para agregar nodos a nuestra red:
tail mypc_publickey myphone_publickey
Para mí se ve así:
Editemos nuestro archivo de configuración:
nano wg0.conf
Agregue las siguientes líneas:
[Peer]
PublicKey = [ mypc_publickey ]
AllowedIPs = 10.30.0.2/32
[Peer]
PublicKey = [ myphone_publickey ]
AllowedIPs = 10.30.0.3/32
Ahora el archivo de configuración se ve así:
Guarde el archivo y reinicie nuestro servicio:
systemctl restart wg-quick@wg0
Comprobemos que todo fue exitoso:
systemctl status wg-quick@wg0
El estado debe ser activo
Es necesario recargar el servicio cada vez que se edita el archivo de configuración del servidor (wg0.conf)
A continuación, crearemos las configuraciones para los clientes (en mi caso, mi PC y mi teléfono). Haré lo mismo en el servidor.
nano mypc.conf
[Interface]
PrivateKey = [mypc_privatekey private key]
Address = 10.30.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = [publickey server publc key]
Endpoint =[ server ip address]:51928
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
En el campo "Punto final", puede ver la dirección IP del servidor; esta es la dirección IP que usamos para conectarnos por SSH. Para ver las interfaces y direcciones, puede usar el comando ip a.
Configurar Wireguard para dispositivos móviles
Creamos una configuración similar para nuestro teléfono. Solo necesitamos cambiar la dirección. Para la PC era 10.30.0.2/32, y en la configuración del teléfono, usaremos 10.30.0.3/32. Además, si queremos usar la VPN en otros dispositivos, debemos agregar otras direcciones al campo Dirección en los archivos de configuración y en el archivo de configuración del servidor wg0.conf, en el campo IPPermitidas al crear las configuraciones.
En mi caso los archivos se ven así:
mipc.conf
miteléfono.conf
Para la conexión, instalamos el cliente wireguard https://www.wireguard.com/install/
En la aplicación de Windows, agregamos un nuevo túnel e ingresamos la configuración creada en el archivo mypc.conf
Lanzamos el túnel y vamos al navegador a la web que muestra nuestra dirección.
Para agregar cómodamente una VPN a su teléfono, instale un programa para generar códigos QR en el servidor:
apt install -y qrencode
Estando en el directorio de configuración, realice el siguiente paso:
qrencode -t ansiutf8 -r myphone.conf
Luego, accedemos a la app Wireguard en el teléfono, pulsamos + para crear un nuevo túnel, seleccionamos "Escanear el código QR", lo escaneamos y activamos la VPN. A continuación, comprobamos que mostramos la dirección de nuestro servidor utilizando cualquier recurso que muestre la dirección IP de salida.
¡Lo hiciste!