Anslutning till Access Server med Linux
Val av klientprogram
Anslutning till OpenVPN Access Server från Linux kräver ett klientprogram. Det fångar upp den trafik som du vill skicka genom OpenVPN-tunneln, krypterar den och skickar den vidare till OpenVPN-servern. Och naturligtvis även tvärtom, för att dekryptera den återkommande trafiken.
Linux-paket som diskuteras
OpenVPN Access Server | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
OpenVPN 3 Linux-projektet är en ny klient som bygger på OpenVPN 3 Core Library. Denna klient är det officiella OpenVPN Linux Client-programmet. Du kan hitta en översikt över funktionerna, vanliga frågor och instruktioner för att installera openvpn3-paketet på vår webbplats OpenVPN 3 for Linux.
När du har följt instruktionerna där för att installera klienten behöver du en anslutningsprofil. Detta är en fil som genereras av din OpenVPN Access Server-installation för ditt specifika användarkonto. Den innehåller de nödvändiga certifikaten och anslutningsinställningarna. Gå till webbgränssnittet Client för din Access Server (huvudadressen, inte /admin-delen). Logga in med dina användaruppgifter. Du kommer att få en lista över filer som är tillgängliga för nedladdning. Välj den användarlåsta profilen eller profilen för automatisk inloggning, så får du en client.ovpn-fil. Spara den här filen till ditt Linux-operativsystem.
När du har flyttat filen till ditt Linux-system kan du importera den.
openvpn3 config-import --config ${client.ovpn}
Du kan starta en ny VPN-session:
openvpn3 session-start --config ${client.ovpn}
Du kan hantera en pågående VPN-session:
openvpn3 sessions-list
Och så vidare. Mer information finns här: OpenVPN3Linux.
OpenVPN open source OpenVPN CLI-program
Det öppna källkodsprojektets klientprogram kan också ansluta till Access Server. Paketet finns i de flesta distributioner och kallas helt enkelt openvpn. Det stöder alternativet att ansluta till flera OpenVPN-servrar samtidigt, och det levereras med en tjänstekomponent som automatiskt och tyst kan starta alla auto-inloggningsprofiler som den hittar i mappen /etc/openvpn, även innan en användare har loggat in. Denna tjänstekomponent kan ställas in så att den startar automatiskt vid uppstart med de verktyg som finns tillgängliga i din Linuxdistribution om den stöds. När du installerar openvpn-paketet i Ubuntu och Debian konfigureras det automatiskt för att starta vid uppstart.
För att installera OpenVPN-klienten på Linux är det i många fall möjligt att bara använda den version som finns i programvaruarkivet för Linuxdistributionen själv. Om du stöter på anslutningsproblem när du använder föråldrad programvara kan det bero på en eventuell brist på stöd för högre TLS-versioner i äldre versioner av OpenVPN. Följ instruktionerna på open source openvpn community wiki om du vill installera OpenVPN-klienten på ditt Linux-system.
När du har installerat behöver du en anslutningsprofil. Detta är en fil som genereras av din OpenVPN Access Server-installation för ditt specifika användarkonto. Den innehåller de nödvändiga certifikaten och anslutningsinställningarna. Gå till klientwebbgränssnittet för din Access Server (huvudadressen, inte /admin-delen). Logga in med dina användaruppgifter. Du kommer att få en lista över filer som är tillgängliga för nedladdning. Välj den användarlåsta profilen eller profilen för automatisk inloggning, så får du en client.ovpn-fil. Spara den här filen någonstans i ditt Linux-operativsystem. OpenVPN Access Server har stöd för serverlåsta, användarlåsta och automatiskt inloggade profiler, men OpenVPN:s kommandoradsklient kan endast ansluta med användarlåsta eller automatiskt inloggade anslutningsprofiler.
Vi utgår från att du kommer att starta anslutningen antingen via kommandoraden som root-användare eller via tjänstedemonen. Om du vill att icke-priviligierade användare ska kunna göra en anslutning kan du ta en titt på community-wikin för mer information om hur du implementerar det. Här kommer vi att fokusera på det enklaste genomförandet; kör anslutningen som root-användare direkt eller via tjänstedemon.
Starta en anslutning med en automatisk inloggningsprofil manuellt:
openvpn --config client.ovpn
Starta en anslutning med en användarlåst profil manuellt:
openvpn --config client.ovpn --auth-user-pass
Om du använder Google Authenticator eller en annan autentisering med extra faktor, lägg till parametern auth-retry:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Om du vill starta en automatisk inloggningsanslutning via tjänstedemonen placerar du client.ovpn i /etc/openvpn/ och byt namn på filen. Den måste sluta med .conf som filändelse. Se till att tjänstedemonen är aktiverad för att köras efter en omstart och starta sedan helt enkelt om systemet. Profilen av typen automatisk inloggning hämtas automatiskt och anslutningen startar av sig själv. Du kan verifiera detta genom att kontrollera utdata från ifconfig-kommandot; du bör se ett tun0-nätverkskort i listan.
En viktig funktion som saknas med kommandoradsklienten är möjligheten att automatiskt implementera DNS-servrar som pushas av VPN-servern. Det är möjligt, men det kräver att du installerar ett DNS-hanteringsprogram som resolvconf eller openresolv, och det kanske krockar eller inte krockar med befintlig nätverkshanteringsprogramvara i ditt operativsystem. Tanken här är dock att du använder ett skript som körs när anslutningen startar och när den stängs och som använder resolvconf eller openresolv för att implementera DNS-servrarna åt dig. Anledningen till att denna klient inte kan hantera det helt själv är främst att det i ett operativsystem som Windows, Macintosh, Android eller iOS redan finns en etablerad enda metod för att hantera DNS-hantering. Det är därför lätt för oss att skapa en programvaruklient för dessa operativsystem som redan vet hur man hanterar DNS. Men Linux finns i så många varianter och stöder också olika program och metoder för att implementera DNS-servrar, och därför var det bara rimligt att lämna det inbyggda DNS-stödet utanför OpenVPN-programmet och i stället, där det är möjligt, tillhandahålla ett skript som hanterar DNS-implementeringen. Ett sådant skript skulle till och med kunna skrivas av dig själv för att göra de uppgifter som är nödvändiga för att implementera DNS-servrarna i din unika situation.
Tyvärr finns det på Ubuntu och Debian, till exempel, skriptet /etc/openvpn/update-resolv-conf som följer med openvpn-paketet och som hanterar DNS-implementeringen för dessa operativsystem. Du behöver bara aktivera användningen av dessa genom att följa instruktionerna:
Öppna filen client.ovpn i en textredigerare:
nano client.ovpn
Längst ner lägger du helt enkelt till dessa rader:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
Den första raden aktiverar användningen av externa skript för att hantera DNS-implementeringsuppgifter. Linjerna up och down är till för att implementera DNS-servrar som pushas av VPN-servern när anslutningen går upp, och efteråt för att ångra det när anslutningen går ner.
Ubuntu nätverkshanteringsprogram
Det finns också möjlighet att ansluta via GUI med hjälp av openvpn-tillägget för Gnome-nätverkshanteringsinsticksmodulet. Men detta är för närvarande lite knepigt att ställa in. Det finns till exempel det felaktiga antagandet att alla VPN-tjänster kan omdirigera internettrafik, och äldre versioner kanske inte förstår filformatet .ovpn, vilket gör att du måste dela upp det inbäddade certifikatet i en separat fil. Och du måste troligen gräva i alternativen för att se till att en standardväg för internettrafik som går genom VPN-servern inte alltid är aktiverad som standard, särskilt för servrar där du bara ger tillgång till vissa interna resurser och inte till hela Internet. Fördelen med att använda GUI-komponenten är dock att du kan starta/stoppa anslutningen från skrivbordsmiljön på Linux.