Instalación de Wireguard Server
Wireguard es un sistema de conexión VPN que consta de servidor y de cliente. Para instalar el servidor, inicie sesión en su sistema Linux y escale privilegios a root.
sudo su -
En el caso de la aplicación de Linux, puede servir para montar tanto el servidor como el cliente.
Prerequisitos
Antes de iniciar la instalación de un servidor Wireguard debe cumplir los siguientes requisitos
- Disponer de un servidor Linux (en cloud o en casa)
- En caso de ser un servidor casero, disponer de acceso al router para poder abrir el puerto a internet.
- Acceso root al servidor
Instalación de la aplicación
Debian based (Debian, Ubuntu, Kali Linux, Linux Mint)
apt update
apt install wireguard
Configuración del servidor
La primera tarea que realizaremos en la configuración es la creación de una clave privada y pública. La clave pública es la que usarán los clientes para iniciar y establecer la conexión contra el servidor. En si funciona de la misma manera que SSH. El cliente, a su vez, tendrá que generarse una clave privada y pública y enviar la clave pública al servidor para que este acepte sus conexiones, pero esto lo veremos más adelante.
Generación de clave privada publica en el servidor.
wg genkey | tee /etc/wireguard/wg0_private.key
Se visualizará en pantalla un código alfanumérico, que representará nuestra clave privada (en base64). El nombre wg0 viene por la forma en la que Wireguard creará la interfaz de red para el tunel VPN (wg0, wg1, wg2...) Se pueden tener tantos tuneles como se desee o como el hardware donde corre el servidor soporte.
A través de la clave privada, generaremos la clave pública.
cat /etc/wireguard/wg0_private.key | wg pubkey | tee /etc/wireguard/wg0_public.key
Se visualizará otro código alfanumérico que representará la clave pública del servidor. Este contenido es el que estará guardado dentro de los ficheros wg0_private.key y wg0_public.key. No useis los que veis aquí, por seguridad, generad los vuestros!!!
Elimine los permisos del fichero, de forma que solo root pueda visualizar el contenido de las claves.
chmod 600 /etc/wireguard/wg0_{private,public}.key
Ahora es momento de seleccionar que rango IP quiere que su VPN wireguard tenga como ip privada. Ya que se creará como una LAN entre los nodos que se conecten a esta VPN. Dispone de los siguientes rangos indicados en la RFC 1918.
10.0.0.0 to 10.255.255.255 (10/8 prefix)
172.16.0.0 to 172.31.255.255 (172.16/12 prefix)
192.168.0.0 to 192.168.255.255 (192.168/16 prefix)
Por lo general, la gran mayoria de los routers domésticos, suelen hacer uso de los siguientes rangos.
- 192.168.0.1/24 (192.168.0.1 - 192.168.0.255)
- 192.168.1.0/24 (192.168.1.1 - 192.168.1.255)
Esto ha provocado problemas si su red tiene este mismo rango, ya que entonces pierde el acceso a los otros equipos de la LAN de su casa mientras esté conectado a la VPN. Por lo que es recomendable hacer uso de un rango diferente. Se suele recomendar hacer uso de un rango 10.x.y.0/24
donde x, y son numeros que pueden ir desde el 0 hasta el 255. En este ejemplo se hará uso del rango 10.16.0.0/24
. También debe seleccionar un puerto donde el servidor estará disponible donde recibir las conexiones del cliente. Puede usar uno entre el número 1024 y 65535. En este ejemplo usaremos el 58270.
Ejecute el siguiente comando en su terminal de Linux, de forma que se generarán unas variables con el contenido especificado.
wg0_priv_key=`cat /etc/wireguard/wg0_private.key`
wg0_ip="10.16.0.1/24"
wg0_port="58270"