He visto varias guías sobre cómo configurar OpenVPN últimamente, así como preguntas sobre cómo hacerlo. OpenVPN es una aplicación común y antigua que es muy conocida, pero también tiene el peor rendimiento y no me ha dado más que dolores de cabeza debido a su complejidad. WireGuard es moderno, más fácil de usar y supera cómodamente a OpenVPN en las pruebas de ancho de banda.
Instalación y configuración en Ubuntu
Instalación y configuración en Ubuntu
- Instalar WireGuard con apt.
Código:sudo apt update && sudo apt install wireguard
- Cree una clave privada, agréguela a la configuración y establezca permisos.
Código:wg genkey | sudo tee /etc/wireguard/private.keysudo chmod go= /etc/wireguard/private.key
- Crear clave pública a partir de clave privada.
Código:sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
- Seleccione una dirección IPv4 privada y una subred (aunque 100.xxx debería ser suficiente) para asignar a la interfaz de túnel o IPv6. Luego, úsela junto con la clave privada codificada en base64 en el archivo de configuración.
Código:# /etc/wireguard/wg0.conf[Interface] PrivateKey = base64_encoded_private_key_goes_here Address = 10.10.10.1/24 ListenPort = 51820 SaveConfig = true
- Ahora configure el reenvío de IP editando /etc/sysctl.conf y agregue la línea 'net.ipv4.ip_forward=1' y/o 'net.ipv6.conf.all.forwarding=1'. Ahora ejecute:
Código:sudo sysctl -p
- Edite /etc/WireGuard/wg0.conf nuevamente y en la parte inferior del archivo después de SaveConfig, agregue lo siguiente:
Código:PostUp = ufw route allow in on wg0 out on eth0PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE PreDown = ufw route delete allow in on wg0 out on eth0 PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
- Ahora configure ufw para abrir el puerto UDP WireGuard y el puerto SSH.
Código:sudo ufw allow 51820/udpsudo ufw allow ssh sudo ufw disable sudo ufw enable
- Habilite e inicie el servicio wg-quick.
Código:sudo systemctl enable wg-quick@wg0.servicesudo systemctl start wg-quick@wg0.service
- Repita los pasos de generación de clave en el par y cree la configuración del par.
Código:Interface]PrivateKey = base64_encoded_peer_private_key_goes_here Address = 10.10.10.2/24 [Peer] PublicKey = base64_encoded_server_public_key_goes_here AllowedIPs = 0.0.0.0/24 Endpoint = <SERVER PUBLIC IP>:51820
- Establezca las reglas del firewall y la configuración de DNS según sea necesario en el par. Luego, agregue la clave pública del par al servidor.
Código:sudo wg set wg0 peer base64_encoded_peer_public_key allowed-ips 10.10.10.2
- Ahora deberías poder conectar la VPN.