Creando una mejor VPN [NotNoobFriendly]


zuzi.uwu

No me toquéis los colores. -.-
Nodero
Noder
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

  • 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.