Saltar a contenido

152. VPN

Enlaces en cloudig.io sobre vpn y web de WireGuard.

Introducción en ionos .

153. WireGuard

Una de las soluciones para vpn

153.1 Instalar WireGuard

153.1.1 En el servidor

Dos opciones: 1. Imagen de docker 2. Instalar en ubuntu .

153.1.1.1 Instalación ubuntu

apt-get install wireguard

CONFIGURACIÓN

Generamos las claves

umask 077
$ wg genkey > privatekey
$ wg pubkey < privatekey > publickey

Configuramos un intefaz de red para Wireguard

# nano  /etc/wireguard/wg0.conf

[Interface]
Address = 10.0.8.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth1 -j MASQUERADE
Donde SERVER_PRIVATE_KEY es la clave privada (la cadena contenida en el fichero privatekey, no el ficheor).

Activamos la interfaz

wg-quick up wg0
Debe dar por resultado:
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.8.0/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Para que funcione el NAT

/sbin/sysctl -w net.ipv4.ip_forward=1

Ya está funcionando wiregurd. Para asegurarnos que arranca el servicio añadimos al fichero **/etc/rc.local ** .

/sbin/sysctl -w net.ipv4.ip_forward=1
Activamos que se cree la interfaz de red con:
systemctl enable wg-quick@wg0

153.1.2 En el cliente

ver en clougind.io

Usando el cliente de Windows o Mac, se genera un par de claves. La clave pública debe copiarse al servidor se añade algo similar a esto:

[Interface]
PrivateKey = oDx/D5WblfasdfdsfasdIeTegHp5r/DsdfB+mHqdAF2U=
Address = 10.0.8.20/24

[Peer]
PublicKey = KRr5RaKWksTjX4Jh6Ml2aRhjaweawerewmVKPlOT8SazGs=
AllowedIPs = 10.0.8.0/24, 10.20.10.0/24
Endpoint = 85.208.23.83:51820
Además de la clave pública del servidor

#### Cliente Windows

#### Cliente Linux o MacOS Generar claves publica y privada paara el cliente:

```sh wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Configuramos el interfaz de red para wg:

nano /etc/wireguard/wg0.conf
y añadimos
wgo.conf
[Interface]
PrivateKey = KJf30VdqaaPR0jjUqk9pEm++Hg+sXyStPH8Ou2ggeHQ=
Address = 10.0.8.50/24

[Peer]
PublicKey = 78MlX8LqV/SNpfvOrrD3nhJmBo0cGtHD94PimCGXSCE=
AllowedIPs = 10.0.8.0/24, 10.20.10.0/24
Endpoint = 185.254.204.xxx:51820
Donde:
[Interface]``` se refiere al cliente: ip, private key generada antes y la dirección del cliente

[Pier] se refiere al servidor: clave pública del servidor AllowedIPs rango permitido y
Endpoint la ip del servidor y el puerto que aparece en la configuración de wiregurd en el servidor (parámetro listen).

En el servidor autorizamos este cliente con:

wg set wg0 peer vgJeO8S9ZDF4PkrwQPfahfpXS+qatvV4V37Q+g4AWH0= allowed-ips 10.0.8.10
wg-quick down wg0
wg-quick up wg0
donde hemos indicado la clave pública del cliente y su ip.

sudo nano /etc/systemd/system/wg-quick@wg0.service
Añadir:
[Unit]
Description=WireGuard VPN for wg0
After=network.target

[Service]
ExecStart=/usr/bin/wg-quick up wg0
ExecStop=/usr/bin/wg-quick down wg0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

y para finalizar:

sudo systemctl enable wg-quick@wg0.service
sudo systemctl start wg-quick@wg0.service

153.1.2.1 Iniciar en el arranque.

Usando systemd de Ubuntu:

153.2 A tener en cuenta

En el servidor de linux, para modificar wg0 es necesario para el servicio con

wg-quick down wg0
# hacer los cambios 
# y levantar el servicio
wg-quick up wg0