Ik heb PiVPN geconfigureerd met Wireguard op een Raspberry Pi in mijn thuisnetwerk. Wanneer ik verbinding maak, bijvoorbeeld als ik op de uni ben, kan ik geen SSH-verbinding maken met mijn Ubuntu-computer die zich op hetzelfde thuisnetwerk als de Raspberry Pi bevindt. Hoe kan ik mijn configuratie aanpassen zodat lokale machines bereikbaar zijn wanneer ik verbonden ben met de VPN? (Ik heb overwogen om dit te plaatsen op de PiVPN subreddit, maar ik denk dat het een algemene Wireguard-vraag is.)
Ik liep hier gisteren nog tegenaan met mijn server.
Hier is het relevante deel van het wg0.conf-bestand van de server nadat ik het heb opgelost:
[Interface]
#Server-specifieke opties.
Address = _redacted_ # VPN-adres van de server.
#Acties bij het starten van de server.
PostUp = ufw route allow in on wg0 out on eth0 # Verzoek pakketten van wg0 interface uit naar het bredere netwerk.
PostUp = ufw route allow in on wg0 out on wg0 # Verzoek pakketten van client naar client op het wg0-netwerk.
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE # Sta NAT toe tussen wg0 en eth0.
#Acties bij het stoppen van de server.
PreDown = ufw route delete allow in on wg0 out on eth0 # Verwijder routering voor pakketten van wg0 naar het bredere netwerk.
PreDown = ufw route delete allow in on wg0 out on wg0 # Verwijder routering voor client-naar-client op wg0.
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # Verwijder NAT tussen wg0 en eth0.
Port waarop de server luistert.
ListenPort = 51820
Het belangrijkste dat het werk liet doen was de regel PostUp = ufw route allow in on wg0 out on wg0 (en de bijbehorende PostDown). Zonder die, kon VPN-verkeer passeren van client naar server en uit de eth0 interface van de server op het fysieke LAN thuis (en dan naar internet, indien gewenst), maar er was geen route voor verkeer van client1–>server–>client2 of vice versa binnen de VPN (d.w.z. binnen de wg0 interface van de server). Die PostUp regel zet zo’n route op en ik kan nu dergelijke verbindingen maken. De PostDown regel haalt dat weg als ik de WireGuard-server stop.
Een paar zaken om op te merken:
- Ik gebruik graag UFW voor het beheren van routes en firewall-instellingen omdat het makkelijk is. Je mag een andere setup gebruiken.
- Zorg ervoor dat
net.ipv4.ip_forward=1staat in je/etc/sysctl.conf-bestand (of in een bestand in/etc/sysctl.d/, zoals/etc/sysctl.d/97-wireguard-forward.conf). Ik gebruik momenteel alleen IPv4 op mijn VPN-netwerk, niet IPv6. - Mijn server draait op Raspbian Bullseye. Je ervaring kan verschillen.
- Je Ubuntu-box moet SSH-toegang toestaan vanaf de eth0 van je Pi (of het IP-adres ervan, of je kunt het hele LAN toestaan).