Verbinden met Access Server met Linux
Client software keuze
Verbinden met OpenVPN Access Server vanuit Linux vereist een client programma. Het vangt het verkeer op dat u door de OpenVPN tunnel wilt sturen, versleutelt het en geeft het door aan de OpenVPN server. En natuurlijk, het omgekeerde, om het retourverkeer te ontcijferen.
Linux-pakketten besproken
OpenVPN Access Server | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
Het OpenVPN 3 Linux project is een nieuwe client die gebouwd is bovenop de OpenVPN 3 Core Library. Deze client is het officiële OpenVPN Linux Client programma. U kunt een overzicht vinden van de mogelijkheden, veel gestelde vragen, en instructies over het installeren van het openvpn3 pakket op onze OpenVPN 3 voor Linux site.
Na het volgen van de instructies daar om de client te installeren, zult u een verbindingsprofiel nodig hebben. Dit is een bestand gegenereerd door uw OpenVPN Access Server installatie voor uw specifieke gebruikersaccount. Het bevat de vereiste certificaten en verbindingsinstellingen. Ga naar de Client web interface van uw Access Server (het hoofdadres, niet het /admin gedeelte). Log in met uw gebruikersgegevens. U krijgt een lijst te zien met bestanden die beschikbaar zijn om te downloaden. Kies het user-locked profiel of het auto-login profiel, en u krijgt een client.ovpn bestand toegestuurd. Sla dit bestand op uw Linux besturingssysteem op.
Als u het bestand eenmaal naar uw Linux systeem hebt verplaatst, kunt u het importeren.
openvpn3 config-import --config ${client.ovpn}
U kunt een nieuwe VPN sessie starten:
openvpn3 session-start --config ${client.ovpn}
U kunt een lopende VPN sessie beheren:
openvpn3 sessions-list
Enzovoort. Meer details kunt u hier vinden: OpenVPN3Linux.
OpenVPN open source OpenVPN CLI programma
Het open source project client programma kan ook verbinding maken met de Access Server. Het pakket is beschikbaar in de meeste distributies en is simpelweg bekend als openvpn. Het ondersteunt de optie om met meerdere OpenVPN servers tegelijk te verbinden, en het komt met een service component die automatisch en stil alle auto-login profielen kan starten die het vindt in de /etc/openvpn map, zelfs voordat een gebruiker is ingelogd. Deze service component kan worden ingesteld om automatisch te starten bij het opstarten met de tools die beschikbaar zijn in uw Linux distributie, indien ondersteund. Op Ubuntu en Debian, wanneer u het openvpn pakket installeert, wordt het automatisch geconfigureerd om te starten bij het opstarten.
Om de OpenVPN client op Linux te installeren, is het in veel gevallen mogelijk om gewoon de versie te gebruiken die in de software repository voor de Linux distributie zelf staat. Als u verbindingsproblemen ondervindt wanneer u verouderde software gebruikt, kan dit te wijten zijn aan een mogelijk gebrek aan ondersteuning voor hogere TLS versies in oudere versies van OpenVPN. Volg de instructies die u kunt vinden op de open source openvpn community wiki als u de OpenVPN client op uw Linux systeem wilt installeren.
Na de installatie heeft u een verbindingsprofiel nodig. Dit is een bestand gegenereerd door uw OpenVPN Access Server installatie voor uw specifieke gebruikersaccount. Het bevat de benodigde certificaten en verbindingsinstellingen. Ga naar de Client web interface van uw Access Server (het hoofdadres, niet het /admin gedeelte). Log in met uw gebruikersgegevens. U krijgt een lijst te zien met bestanden die voor u beschikbaar zijn om te downloaden. Kies het user-locked profiel of het auto-login profiel, en u krijgt een client.ovpn bestand toegestuurd. Sla dit bestand ergens op uw Linux besturingssysteem op. OpenVPN Access Server ondersteunt server-locked, user-locked en auto-login profielen, maar de OpenVPN command line client kan alleen verbinding maken met user-locked of auto-login connectie profielen.
We gaan er vanuit dat u de connectie gaat starten via de command line als een root gebruiker, of via de service daemon. Als u wilt dat gebruikers zonder rechten een verbinding kunnen maken, kijk dan eens op de community wiki voor meer informatie over hoe u dat kunt implementeren. Hier gaan we ons richten op de eenvoudigste implementatie; voer de verbinding uit als root gebruiker direct, of via de service daemon.
Start een verbinding met een auto-login profiel handmatig:
openvpn --config client.ovpn
Start een verbinding met een user-locked profiel handmatig:
openvpn --config client.ovpn --auth-user-pass
Als u Google Authenticator of een andere extra factor authenticatie gebruikt, voeg dan de auth-retry parameter toe:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Om een auto-login verbinding via de service daemon te starten, plaatst u client.ovpn in /etc/openvpn/ en hernoem het bestand. Het moet eindigen met .conf als bestandsextensie. Zorg ervoor dat de service daemon is ingeschakeld om te draaien na een herstart, en herstart dan gewoon het systeem. Het auto-login type profiel zal automatisch opgepikt worden en de verbinding zal vanzelf starten. U kunt dit verifiëren door de uitvoer van het ifconfig commando te controleren; u zou een tun0 netwerk adapter in de lijst moeten zien.
Een belangrijke eigenschap die ontbreekt bij de commandoregel client is de mogelijkheid om automatisch DNS servers te implementeren die door de VPN server worden gepushed. Het is mogelijk, maar het vereist dat u een DNS-beheerprogramma zoals resolvconf of openresolv installeert, en het kan al dan niet conflicteren met bestaande netwerkbeheersoftware in uw OS. Het idee hier is echter dat je een script gebruikt dat draait wanneer de verbinding opstart, en wanneer hij wegvalt, dat resolvconf of openresolv gebruikt om de DNS servers voor jou te implementeren. De reden waarom deze client het niet helemaal zelf kan, is voornamelijk omdat er in een besturingssysteem als Windows, Macintosh, Android of iOS, al een gevestigde enkele methode is om DNS beheer af te handelen. Het is dus gemakkelijk voor ons om een software client te maken voor die besturingssystemen die al weet hoe ze met DNS moeten omgaan. Maar Linux is beschikbaar in zovele variaties en ondersteunt ook verschillende programma’s en methodes om DNS servers te implementeren, en dus was het niet meer dan redelijk om ingebouwde DNS ondersteuning weg te laten uit het OpenVPN programma en in plaats daarvan, waar mogelijk, een script te voorzien dat DNS implementatie afhandelt. Zo’n script zou zelfs door uzelf geschreven kunnen worden om alle taken uit te voeren die nodig zijn om de DNS servers in uw unieke situatie te implementeren.
Gelukkig is er op Ubuntu en Debian, bijvoorbeeld, het /etc/openvpn/update-resolv-conf script dat geleverd wordt met het openvpn pakket dat de DNS implementatie voor deze besturingssystemen afhandelt. U hoeft alleen maar het gebruik hiervan te activeren door de volgende instructies te volgen:
Open uw client.ovpn bestand in een tekst editor:
nano client.ovpn
Onderaan voegt u eenvoudig de volgende regels toe:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
De eerste regel maakt het gebruik van externe scripts mogelijk om de DNS implementatie taken af te handelen. De up en down regels zijn er om DNS servers te implementeren die door de VPN server worden gepushed als de verbinding omhoog gaat, en om het daarna ongedaan te maken, als de verbinding omlaag gaat.
Ubuntu netwerk management programma
Er is ook de optie om verbinding te maken via de GUI met behulp van de openvpn extensie voor de Gnome netwerk manager plugin. Maar dit is momenteel een beetje lastig op te zetten. Er is bijvoorbeeld de onjuiste veronderstelling dat alle VPN’s in staat zijn om Internet verkeer om te leiden, en oudere versies zouden het .ovpn bestandsformaat niet kunnen begrijpen, waardoor u het certificaat dat erin is opgenomen zou moeten opsplitsen in een afzonderlijk bestand. En je zou waarschijnlijk moeten graven in de opties om ervoor te zorgen dat een standaard Internet verkeersroute die door de VPN-server gaat niet altijd standaard is ingeschakeld, vooral voor servers waar je alleen toegang geeft tot enkele interne bronnen, en niet het hele Internet. Het voordeel van het gebruik van de GUI component is echter dat je de verbinding kunt starten/stoppen vanuit de desktop omgeving op Linux.