Hvad skal du have på plads, før du hoster din egen VPN-server?
Serverbinæren er den nemme del. Fastlæg endpointet, klientidentiteterne, adresseområderne og vejen tilbage, før du installerer noget.
At installere serversoftwaren er den korteste del af en selvhostet VPN, og det er det trin, folk begynder med. Om udrulningen virker, afhænger af, om en klient kan nå endpointet, hvad den klient må nå bagefter, og hvordan du kommer ind igen, når det er tunnelen, der er gået i stykker. Afklar alle tre, før pakkehåndteringen kører.
To af dem er designbeslutninger, og den tredje er en driftsvane. Alle tre er billigere at rette på papiret end under et udfald.
Beslut, hvad klienterne skal kunne nå
En fjernadgangsserver har brug for en rute til det private netværk, den annoncerer, og en returvej for svarene, hvilket gør den til en router for det netværk og ikke kun en lytter. En internetudgangsserver har brug for videresendelse plus en adresserings- eller oversættelsesordning, og et fuldført handshake giver ingen af delene. Vælg opgaven før topologien, fordi de to designs adskiller sig i routing, firewallregler og i, hvad klienten sender gennem tunnelen. En server, der skal klare begge, har brug for begge regelsæt og en passende opsplitning af klientens standardrute.
Vælg tunnel- og LAN-områder, der ikke kan kollidere med netværk, som dine klienter allerede bruger, fordi en bærbar computer, der allerede har 192.168.1.0/24, vil blive ved med at bruge den rute i stedet for en tunnel, der uddeler samme præfiks. Kontrollér IPv4 og IPv6 hver for sig, fordi mange får den første rigtig og opdager aldrig den anden. Hvor serveren sidder bag en anden router, skal du bekræfte indgående tilgængelighed udefra i stedet for at stole på én portforwarding til at beskrive hvert lag.
Identiteter, nøgler og en vej tilbage ind
Udsted en separat identitet pr. enhed, hvor softwaren understøtter det, så en mistet bærbar betyder tilbagekaldelse af én peer i stedet for at genopbygge serveren. Private nøgler hører i beskyttet lager og aldrig i en profil, der indsættes i en chatbesked. Genopretningsvejen er den del, folk springer over: konsoladgang, en seriel konsol eller en out-of-band-administrationsgrænseflade, der ikke afhænger af tunnelen. Uden én forvandler en dårlig firewallregel en lille ændring til et besøg på stedet.
Skriv fjernelsesproceduren samtidig med tilmeldingsproceduren. At tilbagekalde en enhed er en operation, du får brug for til sidst, og det er lettere at beskrive, mens opsætningen stadig er frisk.
Hjemmeendpoint eller lejet endpoint?
Tre betingelser afgør valget mellem at hoste derhjemme og leje en lille instans. Den første er om indgående forbindelser overhovedet kan nå dit netværk, fordi en carrier-grade-oversat uplink eller et restriktivt bygningsnetværk fjerner muligheden. Den anden er, om udgangen skal optræde et andet sted end din egen by, fordi kun et lejet endpoint ændrer det. Den tredje er appetit på et ekstra tillidsforhold, fordi en hostingudbyder bliver en del af modellen og kan observere endpointet, selv når den ikke kan læse trafikken.
Hvis den første betingelse er opfyldt, og den anden er irrelevant, er det den kortere vej at hoste derhjemme. Et lejet endpoint køber placering og tilgængelighed snarere end privatliv i sig selv.
Bevis det med én klient og en genstart
Start én klient op, bekræft den ressource, den skal nå, og bekræft, at den holder op med at nå det, den ikke skal. Kommandoerne nedenfor viser peer-status, de ruter serveren installerede, og om videresendelse er aktiveret. Kør dem, før du tilmelder nogen andre.
wg show
sysctl net.ipv4.ip_forward
ip route get 10.8.0.2
ss -lunp | grep -E ':(51820|1194)'
En peer med et nyligt handshake er forbundet, mens en peer uden handshake aldrig forhandlede, og det er forskellige fejl. Slået videresendelse fra forklarer en tunnel, der kommer op og ikke bærer noget, så kontrollér serveren, før du bebrejder klienten. En manglende lytter betyder, at tjenesten ikke startede med den konfiguration, du tror, den gjorde. Genstart derefter serveren med vilje, og gentag hele sættet, fordi en tunnel, der kun virker indtil genstart, er et almindeligt resultat af at teste den lykkelige vej.
Skriv endpointet, peerne, områderne og genopretningsmetoden ned på én side. Den side er den runbook, du læser på det mindst belejlige tidspunkt.