Dudas al instalar Wireguard "cliente" en Ubuntu 21.10

Buenos días,

Estoy intentando migrar desde Windows 10 a Ubuntu (versión 21.10), para mi supone un gran cambio al tener que instalar/configurar casi todo a "mano" y me he topado con este tema que me tiene un poco desesperado por lo que a ver si hay algún linuxero que me pueda echar una mano. Antes de postear he buscado sin éxito.

Tengo el "servidor" Wireguard en un router MIkrotik funcionando muy bien con clientes windows y android. Ahora quiero que con mi portátil Ubuntu instalar un cliente wireguard para poder conectarme desde fuera de casa y tener acceso a mi LAN para temas de trabajo y demás.

He seguido este proceso y por ahora parece que todo está en orden:

Código:
$ sudo apt install wireguard
$ sudo sh -c 'umask 077; touch /etc/wireguard/wg0.conf'
$ sudo -i
# cd /etc/wireguard/
# umask 077; wg genkey | tee privatekey | wg pubkey > publickey
# ls -l publickey privatekey
# cat privatekey
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# cat publickey
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Edit the /etc/wireguard/wg0.conf file:
$ sudo nano /etc/wireguard/wg0.conf

Append the following directives:

--------------
[Interface]
## This Desktop/client's private key ##
PrivateKey = OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

## Client ip address ##
Address = 10.10.0.4/32

[Peer]
## Ubuntu 20.04 server public key ##
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

## set ACL ##
AllowedIPs = 0.0.0.0/0

## Your Ubuntu 20.04 LTS server's public IPv4/IPv6 address and port ##
Endpoint = xxxxxxxxxxxxx.sn.mynetname.net:57590

##  Key connection alive ##
PersistentKeepalive = 15
---------------

## Enable and start VPN client/peer connection, run:
$ sudo systemctl enable wg-quick@wg0
$ sudo systemctl start wg-quick@wg0 (for stop: sudo systemctl stop wg-quick@wg0)
$ sudo systemctl status wg-quick@wg0

## Allow desktop client and Ubuntu server connection over VPN
## We need to configure the server-side peer-to-peer in Mikrotik

[Peer]
## Desktop/client VPN public key ##
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
## client VPN IP address (note  the /32 subnet) ##
AllowedIPs = 10.10.0.4/32

## Verification from VPN Client
$ ping -c 4 10.10.0.1
$ curl ifconfig.me
$ sudo wg

El problema viene cuando quiero conectarme a un segundo servidor Wireguard.

A la hora de generar las claves privadas y públicas, las creo en otra carpeta y sin problema, por ejemplo:

Código:
$ sudo mkdir -p /etc/wireguard/clients
$ wg genkey | sudo tee /etc/wireguard/clients/asus-priv.key | wg pubkey | sudo tee /etc/wireguard/clients/asus-pub.key

Pero a la hora de modificar el fichero /etc/wireguard/wg0.conf entiendo que para añadir otro servidor sería crear otro bloque de "peer" con la Public key, el EndPoint y el puerto del servidor

Código:
[Interface]
PrivateKey = OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Address = 10.10.0.4/32 --> Segmento de red de servidor 1
Address2 --> Segmento de red de servidor 2 ???

## Primer Servidor Wireguard
[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AllowedIPs = 0.0.0.0/0
Endpoint = ddns1.sn.mynetname.net:57590
PersistentKeepalive = 15

## Segundo Servidor Wireguard
[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AllowedIPs = 0.0.0.0/0
Endpoint = ddns2.sn.mynetname.net:57591
PersistentKeepalive = 15

pero ahora me encuentro que en la parte de [Interface] ya tengo el segmento de red configurado para el primer servidor Wireguard con lo cual invalidaría esa conexión.

1. Entiendo que el fichero wg0.conf es único para cada interfaz de Wireguard, no? habría un wg1.conf ?
2. En caso de que solo hubiera un wg0.conf,
a) como podría configurar un segundo servidor Wireguard?
b) Estoy obligado a tener el mismo segmento de red en todos los servidores Wireguard?

Luego está la activación/desactivación de cada cliente, por lo que veo hay que hacerlo a mano desde la terminal:

Código:
$ sudo systemctl start wg-quick@wg0
$ sudo systemctl stop wg-quick@wg0

¿Se podría hacer desde el escritorio o gestor de conexiones network manager? a pesar de lo que he leído no lo tengo claro.

Disculpad la extensión del mensaje y gracias!

S@lu2.
 
Última edición:
1. Entiendo que el fichero wg0.conf es único para cada interfaz de Wireguard, no? habría un wg1.conf ?
2. En caso de que solo hubiera un wg0.conf, como podría configurar un segundo servidor Wireguard?
Ese es el kid de la question. Si la interfaz ya lleva la IP puesta, por narices tienes que generar otra, un wg1.conf para manejar una segunda conexión.
Puedes levantar tantas interfaces como necesites, eso no es problema. O modificar la IP de la interfaz si vas a conectar con otro peer, a gusto de consumidor (o dar de alta la misma IP en los remotos, para no tener que cambiar la dirección que va en wg0.conf)

Luego está la activación/desactivación de cada cliente, por lo que veo hay que hacerlo a mano desde la terminal:

$ sudo systemctl start wg-quick@wg0
$ sudo systemctl stop wg-quick@wg0

¿Se podría hacer desde el escritorio o gestor de conexiones network manager? a pesar de lo que he leído no lo tengo claro.
Se puede hacer, tanto la configuración como las conexiones, usando las últimas versiones del network-manager. En Ubuntu 21.10 parecen haberlo renombrado finalmente a "NetworkManager" y correrlo como servicio. Sospecho que, asociado al paquete principal, habrá un paquete de "gui" (interfaz de usuario) para que puedas ver desde la ventana gráfica principal las opciones de WireGuard.

A ver si alguien que lo tenga montado en un Ubuntu como tú te puede echar una mano más detallada.

Saludos!
 
Arriba