Acceso remoto cifrado · Raspberry Pi 5 · cultivaia.duckdns.org:51820
[Interface] Address = 10.8.0.1/24 # IP del servidor en la subnet VPN ListenPort = 51820 PrivateKey = # <SERVER_PRIVATE_KEY> — chmod 600, nunca en git # Reglas iptables con scope estricto (solo wg0, no FORWARD ACCEPT global) PostUp = iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT PostUp = iptables -A FORWARD -i eth0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -o eth0 -j ACCEPT PostDown = iptables -D FORWARD -i eth0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] # Álvaro — MacBook Pro PublicKey = # <ALVARO_MACBOOK_PUBLIC_KEY> AllowedIPs = 10.8.0.2/32 [Peer] # Álvaro — iPhone 15 PublicKey = # <ALVARO_IPHONE_PUBLIC_KEY> AllowedIPs = 10.8.0.3/32 [Peer] # Equipo remoto — Linux PublicKey = # <EQUIPO_REMOTO_PUBLIC_KEY> AllowedIPs = 10.8.0.4/32
[Interface] PrivateKey = # <ALVARO_MACBOOK_PRIVATE_KEY> Address = 10.8.0.2/32 [Peer] PublicKey = # <SERVER_PUBLIC_KEY> Endpoint = cultivaia.duckdns.org:51820 AllowedIPs = 192.168.10.0/24, 192.168.20.0/24, 10.8.0.0/24 # Split tunnel: solo redes de oficina, internet va directo PersistentKeepalive = 25
[Interface] PrivateKey = # <ALVARO_IPHONE_PRIVATE_KEY> Address = 10.8.0.3/32 DNS = 192.168.10.5 # Pi-hole de la oficina [Peer] PublicKey = # <SERVER_PUBLIC_KEY> Endpoint = cultivaia.duckdns.org:51820 AllowedIPs = 192.168.10.0/24, 192.168.20.0/24, 10.8.0.0/24 # Keepalive imprescindible en móvil (NAT detrás de 4G/WiFi) PersistentKeepalive = 25
# Instalar WireGuard sudo apt update && sudo apt install wireguard -y # Generar clave privada del servidor (permisos restrictivos desde el inicio) sudo mkdir -p /etc/wireguard sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server_private.key' sudo sh -c 'wg pubkey < /etc/wireguard/server_private.key > /etc/wireguard/server_public.key' # Verificar permisos (deben ser 600) ls -la /etc/wireguard/ # -rw------- 1 root root 45 ... server_private.key ✓ # -rw------- 1 root root 45 ... server_public.key ✓
# Activar reenvío de paquetes IPv4 (persistente) echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf sudo sysctl --system # Verificar cat /proc/sys/net/ipv4/ip_forward # Debe devolver: 1
sudo chmod 600 /etc/wireguard/wg0.conf sudo wg-quick up wg0 sudo systemctl enable wg-quick@wg0 # Verificar estado sudo wg show # interface: wg0 # public key: <SERVER_PUBLIC_KEY> # listening port: 51820 # # peer: <CLIENT_PUBLIC_KEY> # allowed ips: 10.8.0.2/32 # latest handshake: 5 seconds ago ← debería aparecer