Crear un túnel VPN con Android usando FreeBSD + WireGuard
Hola, soy Incompetente.
En el artículo anterior, solo publiqué los resultados de velocidad, pero aquí están los pasos para crear un túnel.
No pude encontrar ningún otro artículo en japonés, así que lo registraré aquí.
WireGuard
Lado del smartphone (cliente)
Es necesario generar las claves de WireGuard en el lado de la PC.
wg genkey | tee private.key
wg genpsk | tee psk.key
Si solo creas la clave privada, la clave pública se mostrará en la aplicación WireGuard del smartphone, por lo que no es necesario crearla aquí.
Alternativamente, también puedes crearla junto con wg genkey | tee private.key | wg pubkey > pub.key.
Una vez que hayas transferido esta clave a tu smartphone, en la aplicación WireGuard del smartphone,
Clave privada = Contenido de private.key
Clave precompartida = Contenido de psk.key
Dirección = IP con la que quieres comunicarte, en este caso `10.1.0.4/32`
Endpoint = IP global del servidor WireGuard:51820
Allowed IPs = 0.0.0.0/0 , ::/0 # Todo a través de la VPN
introduce esto y asegúrate de que la clave pública generada en este momento pueda ser enviada o pegada en el lado del servidor.
Lado de la PC (servidor)
Asumiendo que WireGuard ya está instalado, añade un Peer al final.
[Peer]
PublicKey = La clave pública que se muestra después de introducir private.key en el lado del smartphone, o el contenido de pub.key
PreSharedKey = Contenido de psk.key
AllowedIPs = 10.1.0.4/32
PersistentKeepalive = 25
Con esto, ejecuta wg quick up wg0 por ahora. Si la VPN está activada en el smartphone y la transferencia es posible, está bien. Sin embargo, tal como está, solo se puede comunicar dentro del túnel de WireGuard, por lo que es necesario crear reglas NAT.
FreeBSD
Primero, habilita el reenvío de puertos para IPv4 e IPv6.
vi /etc/sysctl.conf
Luego añade lo siguiente:
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
Luego reinicia.
Y crea reglas con pf.
vi /etc/pf.conf
Y añade lo siguiente:
wireguard_clients=10.1.0.4
wanint="vtnet0"
wg_ports="{51820}"
nat on $wanint inet from $wireguard_clients to any -> $wanint
pass in on $wanint proto udp from any to $wanint port $wg_ports
pass out quick
Luego activa:
pfctl -nf /etc/pf.conf
Si no hay errores:
pfctl -f /etc/pf.conf
Con esto, aplica los cambios.
Comprueba si la dirección IP es la del servidor, y si la dirección IP es la del servidor WireGuard en el sitio simple y útil de Takashi.
bibi.moe/ip
Con esto hemos terminado.
Si puedes hacer esto, es muy conveniente porque si tu servidor doméstico está haciendo proxy de servicios que se ejecutan en tu entorno local a la red WireGuard mientras está conectado a la VPN, puedes acceder a la red de tu casa desde el navegador de tu smartphone. Hasta la próxima. Saludos.