VirtualBox VPN-gateway voor het LAN: bridge, route, terugweg
Zet de gateway-VM via een bridge op het LAN, kondig het LAN aan de clients aan en voeg de poolroute toe aan de LAN-router. Een uitgewerkt IPv4-voorbeeld met echte terugwegen.
Externe gebruikers moeten een printer en een fileserver op een fysiek LAN bereiken, en de enige Linux-machine die altijd aan staat is een VirtualBox-VM. De VM via een bridge op dat LAN zetten is de eerste helft. De tweede helft is een terugroute die elk apparaat op het LAN echt zal gebruiken, en dat is het deel dat de meeste opstellingen missen. Ontbreekt die, dan komt de tunnel tot stand, pingt de client de gateway, en antwoordt niets anders.
Gebruik adressen die bereikbaar zijn
Zet de LAN-adapter van de VM op de Bridged Adapter-koppeling die voor dat netwerk is goedgekeurd, en geef hem een adres via het normale toewijzingsproces. Dan verschijnt de VM op het fysieke LAN zoals elke andere host. De standaardroute moet de echte gateway blijven gebruiken, zodat het versleutelde transport naar de VPN-peer bereikbaar blijft. Gebruik het standaard NAT-adres van VirtualBox niet als volgende hop voor het LAN, want dat adres zit achter een virtuele NAT en is niet on-link voor de host of voor andere machines op het LAN.
LAN router: 192.168.70.1/24
VirtualBox host: 192.168.70.5/24
VPN gateway VM: 192.168.70.10/24
Example LAN service: 192.168.70.40
VPN client pool: 10.80.0.0/24
Controleer op overlap met de thuisnetwerken van externe gebruikers voordat je de adrespool kiest. Overlap wordt een routeringsambiguïteit die geen enkele serverconfiguratie verhelpt.
Kondig het LAN aan en stuur dan door
Voor een server waarvan de authenticatie en het transport al worden beheerd, zien de netwerkregels er zo uit. De push vertelt een accepterende client hoe hij het LAN bereikt, en hij laat de VM niet vanzelf iets doorsturen.
dev tun
topology subnet
server 10.80.0.0 255.255.255.0
push "route 192.168.70.0 255.255.255.0"
Schakel IPv4-doorgifte in de permanente netwerkconfiguratie van de VM in en sta de clientpool toe de bedoelde LAN-diensten bij de doorgiftegrens van de VM te bereiken. Toestemming om de VPN-listener te bereiken is een aparte regel, en die werkt al als de tunnel omhoogkwam.
De terugroute hoort op de LAN-router
Apparaten op het LAN antwoorden via hun standaardgateway, dat is de LAN-router op 192.168.70.1. Die router weet niet waar 10.80.0.0/24 ligt tenzij het hem wordt verteld. Voeg de poolroute toe aan de ondersteunde permanente configuratie van de router, gericht op het LAN-adres van de VM. Hem alleen op de VirtualBox-host toevoegen herstelt paden die die host raadplegen, en dat is niet elk apparaat op het LAN.
ip route add 10.80.0.0/24 via 192.168.70.10
De firewall van de bestemming moet de clientpool nog steeds als bron toestaan. Een route draagt het pakket; ze verleent de dienst niet.
Als de LAN-router niet kan worden gewijzigd, is beperkte brontranslatie op de VM het alternatief. Die laat antwoorden zonder de route terugkomen, en ze verbergt de afzonderlijke clientadressen voor de LAN-dienst.
Volg één pakket van begin tot eind
Een client op 10.80.0.25 stuurt via de tunnel naar 192.168.70.40. De VM stuurt het pakket door naar het LAN. De dienst antwoordt zijn router, die de VM voor de clientpool kiest, en de VM stuurt het pakket terug via OpenVPN. Elke hop in die zin is een plek waar het ontwerp kan falen.
Test met de echte toepassing vanaf een externe client, en herhaal dit nadat je de beheerde configuratie zowel op de VM als op de router opnieuw hebt geladen.
Als de client de VM wel bereikt maar de dienst niet, controleer dan eerst de route van de router. Als de dienst het verzoek ontvangt en de client nooit het antwoord ziet, is de terugweg de verdachte.