Guide
Sådan opsætter du en VPN på Linux
Udbyderens klient fra eget arkiv, alternativet med en konfigurationsfil i systemets egne værktøjer, DNS-detaljen, der lækker mere på Linux end noget andet sted, og kontrollerne fra en terminal. Skrevet til Ubuntu 26.04 LTS og NetworkManager.
Før du går i gang
Denne vejledning vælger ikke for dig
Alle trinene nedenfor er de samme, uanset hvilken udbyder du bruger, og derfor nævnes ingen her. Valget er en separat opgave, som foretages i registret, hvor valget træffes ud fra en offentliggjort score og ikke ud fra en downloadside.
Installer klienten fra udbyderens eget arkiv med signeringsnøglen fra udbyderens egne instruktioner. Indsæt aldrig en installationskommando på én linje fra et forum eller en blog i en terminal: kommandoen kører som root, og du aner ikke, hvad den hentede. En pakke fra et signeret arkiv kan kontrolleres; et script, der sendes videre til en shell, kan ikke.
Installer klienten
Der findes to veje på Linux, og begge er reelle. Udbyderens egen klient er den første; den giver en kill switch, en servervælger og DNS-håndtering uden ekstra arbejde. En konfigurationsfil i systemets egne værktøjer er den anden, og afsnittet til sidst i denne vejledning beskriver omkostningen.
- Log ind på udbyderens websted, og åbn Linux-instruktionerne fra konto-området. De angiver arkivet, nøglen og pakken; følg dem og intet andet.
- Tilføj arkivet og dets nøgle, og installer derefter pakken med distributionens pakkehåndtering. Nøglen gør det muligt for pakkehåndteringen at afvise en manipuleret pakke, så et arkiv, der er tilføjet uden nøglen, er et arkiv, du har valgt at stole på.
- Aktivér klientens tjeneste, så den starter ved opstart. En klient består normalt af en root-daemon og en desktopapp, der kommunikerer med den; daemonen ejer tunnelen, og en kill switch, der skal fungere fra opstart, kræver, at den kører fra opstart.
- Log ind i klienten — fra appen eller fra kommandolinjen med det token, konto-området giver dig — og giv enheden et navn, der ikke identificerer dig.
- Opret ikke forbindelse endnu. Åbn indstillingerne først. To af de tre nedenstående er som standard slået fra i de fleste klienter.
De tre indstillinger, der er værd at kontrollere
Klientmenuerne er forskellige, men indstillingerne er de samme. Alle tre har en post i ordlisten, hvis navnet er ukendt.
Kill switch
Blokerer al trafik, hvis tunnelen falder, i stedet for stille at lade forbindelsen falde tilbage til det almindelige netværk. På Linux er det et sæt firewallregler, som klienten skriver: Alt undtagen tunnelinterfacet og tunnelens eget slutpunkt droppes. Slå den til, og vælg altid-aktiv eller lockdown-varianten, hvis klienten tilbyder den, så reglerne gælder fra opstart og ikke kun under en forbindelse. Hvad kontakten er til for, beskrives på dens egen side.
DNS i tunnelen
Navneopslag kan forlade maskinen uden for tunnelen, selv når alt andet er inde i den, og på Linux er det den lækage, der sker oftest, fordi resolveren er en bevægelig del. På Ubuntu er denne del systemd-resolved: hvert interface har sine egne resolvere, og den, der har standardruten for DNS, besvarer alt, der ikke matches af et mere specifikt domæne. Klienten bør pege standarden på udbyderens resolver gennem tunnelinterfacet. Indstil klientens DNS til udbyderens egen og ikke en tredjeparts; den anden part, der kun ser opslagene, er endnu en part. Hvordan en lækage opstår, beskrives på siden om DNS-lækager.
Protokollen
Lad den stå på den moderne standard, medmindre noget er i stykker — protokolsiden viser, hvilke der er aktuelle, og hvilke der er forældede. Hvis klienten tilbyder en ældre mulighed for at løse et forbindelsesproblem, er det en afvejning, du skal foretage bevidst og derefter rulle tilbage: Registret markerer den svageste protokol, en udbyder stadig tilbyder, og hvis du vælger den manuelt, vælger du selv denne markering.
Bekræft, at den faktisk fungerer
Opret forbindelse, og kontrollér derefter i stedet for at antage. Tre kontroller fra en terminal i denne rækkefølge:
- Din adresse er ændret. Kør
curlmod en tjeneste, der viser »hvad er min IP«, eller åbn en i browseren, og bekræft, at landet svarer til den exit location, du valgte.ip route gettil en offentlig adresse bør angive tunnelinterfacet, ikke Wi-Fi- eller Ethernet-interfacet. - Opslagene foregår i tunnelen.
resolvectl status: Tunnelinterfacet bør have udbyderens resolver og standardruten for DNS; det fysiske interfaces resolver bør være ubrugt. En DNS-læktest i browseren er en anden kontrol, og alt, der tilhører din internetudbyder, betyder, at DNS-indstillingen ikke blev anvendt. - Kill switch gør det, den siger. Stop klientens tjeneste med
systemctl stop, mens en download kører, eller tag tunnelinterfacet ned medip link set … down, så tunnelen falder uden at klienten bliver bedt om det. Overførslen bør stoppe brat. Hvis den fortsætter, er kontakten kun til pynt.
Den længere række af tests, og hvad hver af dem kan og ikke kan vise, findes i sin egen vejledning.
Det beviser kontrollerne
+Din trafik forlader netværket gennem exit-serveren i det land, du valgte
+Resolveren, der besvarer dine opslag, tilhører udbyderen og er inde i tunnelen
+En tunnel, der falder, fejler lukket i stedet for stille at falde tilbage
Det beviser de ikke
−De siger intet om, hvad udbyderen opbevarer — det er et dokumentationsspørgsmål, der besvares på siderne om opbevaring
−De gør dig ikke anonym: Din browser og dine logins er uændrede; se hvad en VPN ikke beskytter dig mod
−En bestået test i dag er ikke et løfte om den næste pakkeopdatering eller den næste kerne
Vejen med konfigurationsfilen, og hvad den koster
De fleste udbydere offentliggør konfigurationsfiler til de to almindelige protokoller i konto-området. En WireGuard-fil importeres til NetworkManager fra forbindelseseditoren eller med nmcli connection import, og fungerer lige så godt under wg-quick; en OpenVPN-fil importeres på samme måde med OpenVPN-pluginet. Du får tunnelen, systemets egen kontakt til interfacet og intet, som udbyderen ikke har lagt i filen.
Det, du mister, er resten af klienten. Der er ingen kill switch, medmindre du selv skriver firewallreglerne; en fil, der importeres til NetworkManager, og som falder, sender blot trafikken tilbage til det almindelige netværk. Der er ingen DNS-håndtering ud over linjen DNS i filen, og en fil uden en sådan linje er lækagen i det første svar ved fejlfinding. Der er ingen servervælger: Hver fil er én exit, og ændring af exit kræver en anden fil. Generér filerne fra konto-området, og hold dem private: En WireGuard-fil indeholder den private nøgle, der er din identitet hos udbyderen.
Denne vej er velegnet til en server, en headless-maskine eller en distribution, som klienten ikke understøtter. På en bærbar computer bør du foretrække klienten; kontakten, den giver dig, er det, en konfigurationsfil ikke kan give.
Når det ikke fungerer
Tunnelen er oppe, men DNS går stadig til min internetudbyder
Den klassiske Linux-lækage. En konfigurationsfil, der ikke angiver DNS, lader systemd-resolved bruge den resolver, netværket har tildelt, uden for tunnelen. Kør resolvectl status: Tunnelinterfacet bør vise udbyderens resolver og have standardruten for DNS, markeret med et plustegn.
Tilføj en DNS-linje til konfigurationen, eller indstil DNS på forbindelsen i NetworkManager, og opret forbindelse igen. Udbyderens egen klient indstiller dette selv, hvilket er en af grundene til at foretrække den.
Alt holder op med at fungere, når tunnelen falder, og det er irriterende
Det er kill switch, der gør sit arbejde: En tunnel, der falder, bliver til en død forbindelse i stedet for en stille tilbagevenden til det ubeskyttede netværk. Opret forbindelse igen i stedet for at slå kontakten fra.
Hvis den falder ofte på ét netværk og sjældent andre steder, så skift protokol én gang, og prøv en nærmere exit. Hvis ingen protokol fungerer på det netværk, blokerer netværket VPN-trafik, og denne vejledning stopper her.
Klienten beder om sudo eller en adgangskode hver gang
Oprettelse af et netværksinterface er en privilegeret handling, og en klient, der ikke installerer en baggrundstjeneste, er nødt til at spørge hver gang. De fleste installerer en sådan — en daemon, der kører som root, og en desktopapp, der kommunikerer med den — og den gentagne forespørgsel betyder, at tjenesten ikke kører eller ikke er aktiveret.
Kontrollér det med systemctl status og tjenestenavnet fra udbyderens instruktioner, og aktivér den, så den starter ved opstart.
IPv6-adresser vises på testsiden
Tunnelen bærer IPv4, mens maskinen stadig har en IPv6-rute uden om den, så alt, der foretrækker IPv6, går uden om VPN'en. Udbydere, der ikke tunnelerer IPv6, bør deaktivere det på interfacet; de bedre klienter gør det.
Hvis du oprettede forbindelsen ud fra en fil, så deaktivér IPv6 på forbindelsen i NetworkManager, eller slå det fra med sysctl, og test igen. En tunnel, der lader en anden adressefamilie stå åben, er kun en halv tunnel.
Samme trin, andre maskiner
Resten af platformene
Hver platform har sin egen guide snarere end en fane på denne. Trinene skilles ad, så snart installationsprogrammet åbner, og en side, der besvarer tre platforme på én gang, besvarer ingen af dem ordentligt.