152. VPN¶
Enlaces en cloudig.io sobre vpn y web de WireGuard.
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
Activamos la interfaz
wg-quick up wg0
[#] 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
/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
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
#### 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:
[Interface]``` se refiere al cliente: ip, private key generada antes y la dirección del clientenano /etc/wireguard/wg0.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
[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
sudo nano /etc/systemd/system/wg-quick@wg0.service
[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