Wat heb je nodig voordat je je eigen VPN-server host?
Een serverbinary is het makkelijke deel. Leg het endpoint, de clientidentiteiten, de adresbereiken en de weg terug vast voordat je iets installeert.
De serversoftware installeren is het kortste deel van een zelf gehoste VPN, en het is de stap waar mensen mee beginnen. Of de uitrol werkt, hangt ervan af of een client het endpoint kan bereiken, wat die client daarna mag bereiken, en hoe je er weer in komt als de tunnel het ding is dat kapotging. Regel alle drie voordat de pakketbeheerder draait.
Twee ervan zijn ontwerpbeslissingen en de derde is een operationele gewoonte. Alle drie zijn goedkoper op papier te repareren dan tijdens een storing.
Bepaal wat clients moeten bereiken
Een server voor toegang op afstand heeft een route naar het privénetwerk nodig dat hij aankondigt en een terugweg voor de antwoorden, waardoor hij een router voor dat netwerk is en niet alleen een luisteraar. Een internet-uitgangsserver heeft doorsturen plus een adresserings- of vertaalregeling nodig, en een afgeronde handshake levert geen van beide. Kies de taak vóór de topologie, want de twee ontwerpen verschillen in routing, firewallregels en in wat de client door de tunnel stuurt. Een server die beide moet doen, heeft beide regelsets nodig en een passende splitsing van de standaardroute van de client.
Kies tunnel- en LAN-bereiken die niet kunnen botsen met netwerken die je clients al gebruiken, want een laptop die al 192.168.1.0/24 heeft, blijft die route gebruiken in plaats van een tunnel die dezelfde prefix uitdeelt. Controleer IPv4 en IPv6 apart, want veel mensen doen de eerste goed en merken de tweede nooit op. Waar de server achter een andere router staat, bevestig je de inkomende bereikbaarheid van buitenaf in plaats van te vertrouwen op één portforward die elke laag zou beschrijven.
Identiteiten, sleutels en een weg terug naar binnen
Geef per apparaat een aparte identiteit uit waar de software dat ondersteunt, zodat een verloren laptop het intrekken van één peer betekent in plaats van het herbouwen van de server. Privésleutels horen in beschermde opslag en nooit in een profiel dat in een chatbericht wordt geplakt. Het herstelpad is het deel dat mensen overslaan: consoletoegang, een seriële console of een out-of-band beheerinterface die niet van de tunnel afhangt. Zonder zo'n ingang verandert een slechte firewallregel een kleine wijziging in een bezoek ter plaatse.
Schrijf de verwijderingsprocedure tegelijk met de inschrijvingsprocedure. Een apparaat intrekken is een handeling die je uiteindelijk nodig hebt, en het is makkelijker te beschrijven zolang de opzet nog vers is.
Endpoint thuis of gehuurd?
Drie voorwaarden beslissen tussen thuis hosten en het huren van een kleine instantie. De eerste is of inkomende verbindingen je netwerk helemaal kunnen bereiken, want een carrier-grade vertaalde uplink of een restrictief gebouwnetwerk haalt de optie weg. De tweede is of de uitgang ergens anders dan in je eigen stad moet verschijnen, want alleen een gehuurd endpoint verandert dat. De derde is zin in een tweede vertrouwensrelatie, want een hostingprovider wordt deel van het model en kan het endpoint waarnemen, zelfs als hij het verkeer niet kan lezen.
Als aan de eerste voorwaarde is voldaan en de tweede irrelevant is, is thuis hosten de kortere weg. Een gehuurd endpoint koopt locatie en beschikbaarheid en niet zonder meer privacy.
Bewijs het met één client en een herstart
Breng één client op, bevestig de resource die hij moet bereiken en bevestig dat hij stopt met bereiken wat hij niet mag. De commando's hieronder tonen de peerstatus, de routes die de server installeerde en of doorsturen is ingeschakeld. Voer ze uit voordat je iemand anders inschrijft.
wg show
sysctl net.ipv4.ip_forward
ip route get 10.8.0.2
ss -lunp | grep -E ':(51820|1194)'
Een peer met een recente handshake is verbonden, terwijl een peer zonder handshake nooit heeft onderhandeld, en dat zijn verschillende storingen. Uitgeschakeld doorsturen verklaart een tunnel die opkomt en niets draagt, dus controleer de server voordat je de client de schuld geeft. Een ontbrekende luisteraar betekent dat de dienst niet is gestart met de configuratie die je denkt. Herstart de server dan bewust en herhaal de hele set, want een tunnel die alleen tot de herstart werkt, is een veelvoorkomend resultaat van het testen van het gelukkige pad.
Leg het endpoint, de peers, de bereiken en de herstelmethode op één pagina vast. Die pagina is de runbook die je op het minst gelegen moment leest.