Forbindelse til Access Server med Linux
Valg af klientsoftware
For at oprette forbindelse til OpenVPN Access Server fra Linux kræves der et klientprogram. Det opfanger den trafik, du ønsker at sende gennem OpenVPN-tunnelen, krypterer den og sender den videre til OpenVPN-serveren. Og selvfølgelig også omvendt, for at dekryptere den tilbagevendende trafik.
Linux-pakker diskuteret
OpenVPN Access Server | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux-klient
OpenVPN 3 Linux-projektet er en ny klient, der er bygget oven på OpenVPN 3 Core Library. Denne klient er det officielle OpenVPN Linux-klientprogram. Du kan finde en oversigt over funktionerne, ofte stillede spørgsmål og instruktioner om installation af openvpn3-pakken på vores OpenVPN 3 for Linux-websted.
Når du har fulgt instruktionerne der for at installere klienten, har du brug for en forbindelsesprofil. Dette er en fil, der er genereret af din OpenVPN Access Server-installation for din specifikke brugerkonto. Den indeholder de nødvendige certifikater og forbindelsesindstillinger. Gå til klientwebinterfacet på din Access Server (hovedadressen, ikke /admin-delen). Log ind med dine brugeroplysninger. Du vil få vist en liste over filer, der er tilgængelige til download. Vælg den brugerlåste profil eller profilen med automatisk logon, og du vil få tilsendt en client.ovpn-fil. Gem denne fil på dit Linux-operativsystem.
Når du har flyttet filen til dit Linux-system, kan du importere den.
openvpn3 config-import --config ${client.ovpn}
Du kan starte en ny VPN-session:
openvpn3 session-start --config ${client.ovpn}
Du kan administrere en kørende VPN-session:
openvpn3 sessions-list
Og så videre. Du kan finde flere oplysninger her: OpenVPN3Linux.
OpenVPN open source OpenVPN CLI-program
Det open source-projektets klientprogram kan også oprette forbindelse til Access Server. Pakken er tilgængelig i de fleste distributioner og er blot kendt som openvpn. Den understøtter muligheden for at oprette forbindelse til flere OpenVPN-servere samtidig, og den leveres med en servicekomponent, der automatisk og lydløst kan starte alle auto-login-profiler, som den finder i mappen /etc/openvpn, selv før en bruger har logget ind. Denne servicekomponent kan indstilles til automatisk at starte ved opstart med de værktøjer, der er tilgængelige i din Linux-distribution, hvis den understøttes. På Ubuntu og Debian, når du installerer openvpn-pakken, er den automatisk konfigureret til at starte ved opstart.
For at installere OpenVPN-klienten på Linux er det i mange tilfælde muligt blot at bruge den version, der findes i softwarerepositoriet for selve Linux-distributionen. Hvis du støder på problemer med forbindelsen, når du bruger forældet software, kan det skyldes en mulig mangel på understøttelse af højere TLS-versioner i ældre versioner af OpenVPN. Følg vejledningen på open source openvpn-fællesskabets wiki, hvis du ønsker at installere OpenVPN-klienten på dit Linux-system.
Når du har installeret den, skal du bruge en forbindelsesprofil. Dette er en fil, der er genereret af din OpenVPN Access Server-installation for din specifikke brugerkonto. Den indeholder de nødvendige certifikater og forbindelsesindstillinger. Gå til Client-webgrænsefladen på din Access Server (hovedadressen, ikke /admin-delen). Log ind med dine brugeroplysninger. Du får vist en liste over de filer, der er tilgængelige for dig til download. Vælg den brugerlåste profil eller profilen med automatisk logon, og du vil få tilsendt en client.ovpn-fil. Gem denne fil på dit Linux-operativsystem et sted. OpenVPN Access Server understøtter server-locked, bruger-locked og auto-login-profiler, men OpenVPN-kommandolinjeklienten kan kun oprette forbindelse med bruger-locked eller auto-login-forbindelsesprofiler.
Vi antager, at du vil starte forbindelsen via enten kommandolinjen som root-bruger eller via servicedæmonen. Hvis du ønsker, at ikke-privilegerede brugere skal kunne oprette en forbindelse, skal du tage et kig på fællesskabswikien for at få flere oplysninger om, hvordan du implementerer det. Her vil vi fokusere på den enkleste implementering; kør forbindelsen som root-bruger direkte eller via servicedæmonen.
Start en forbindelse med en auto-login-profil manuelt:
openvpn --config client.ovpn
Start en forbindelse med en brugerlåst profil manuelt:
openvpn --config client.ovpn --auth-user-pass
Hvis du bruger Google Authenticator eller en anden ekstra faktor autentificering, skal du tilføje parameteren auth-retry:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
For at starte en auto-login-forbindelse via servicedæmonen skal du placere client.ovpn i /etc/openvpn/ og omdøb filen. Den skal slutte med .conf som filudvidelse. Sørg for, at servicedæmonen er aktiveret til at køre efter en genstart, og genstart derefter blot systemet. Profilen af typen auto-login vil blive hentet automatisk, og forbindelsen vil starte af sig selv. Du kan verificere dette ved at kontrollere output af ifconfig-kommandoen; du bør se en tun0-netværkskort på listen.
En vigtig funktion, der mangler med kommandolinjeklienten, er muligheden for automatisk at implementere DNS-servere, der er skubbet af VPN-serveren. Det er muligt, men det kræver, at du installerer et DNS-håndteringsprogram som resolvconf eller openresolv, og det kan eller kan ikke kollidere med eksisterende netværkshåndteringssoftware i dit operativsystem. Ideen her er dog, at du bruger et script, der kører, når forbindelsen går op, og når den går ned, og som bruger resolvconf eller openresolv til at implementere DNS-serverne for dig. Grunden til, at denne klient ikke kan klare det helt selv, er primært fordi der i et operativsystem som Windows, Macintosh, Android eller iOS allerede findes en etableret enkelt metode til at håndtere DNS-styring. Det er derfor let for os at skabe en softwareklient til disse styresystemer, som allerede ved, hvordan DNS skal håndteres. Men Linux findes i så mange varianter og understøtter også forskellige programmer og metoder til at implementere DNS-servere, og derfor var det kun rimeligt at udelade indbygget DNS-understøttelse i OpenVPN-programmet og i stedet, hvor det var muligt, at levere et script, der håndterer DNS-implementeringen. Et sådant script kan endda skrives af dig selv for at udføre de opgaver, der er nødvendige for at implementere DNS-servere i din unikke situation.
Formodentlig er der på Ubuntu og Debian, for eksempel, scriptet /etc/openvpn/update-resolv-conf, der følger med openvpn-pakken, som håndterer DNS-implementeringen for disse operativsystemer. Du skal blot aktivere brugen af disse ved at følge instruktionerne:
Åbn din fil client.ovpn i en teksteditor:
nano client.ovpn
Helt nede i bunden skal du blot tilføje disse linjer:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
Den første linje aktiverer brugen af eksterne scripts til at håndtere DNS-implementeringsopgaverne. Linjerne op og ned er der for at implementere DNS-servere, der skubbes af VPN-serveren, når forbindelsen går op, og efterfølgende for at fortryde det, når forbindelsen går ned.
Ubuntu netværkshåndteringsprogram
Der er også mulighed for at oprette forbindelse via GUI’en ved hjælp af openvpn-udvidelsen til Gnome-netværkshåndteringsplugin’et. Men dette er i øjeblikket en smule tricky at sætte op. Der er f.eks. den fejlagtige antagelse, at alle VPN’er vil være i stand til at omdirigere internettrafik, og ældre versioner forstår måske ikke .ovpn-filformatet, hvilket kræver, at du skal opdele det certifikat, der er indlejret i det, i en separat fil. Og du vil sandsynligvis være nødt til at grave i indstillingerne for at sikre, at en standardvej for internettrafik, der går gennem VPN-serveren, ikke altid er aktiveret som standard, især for servere, hvor du kun giver adgang til nogle interne ressourcer og ikke til hele internettet. Men fordelen ved at bruge GUI-komponenten er, at du kan starte/stoppe forbindelsen fra skrivebordsmiljøet på Linux.