Hoe aanmelden bij uw Linux-desktop Met Google Authenticator
Voor extra beveiliging hebt u een tijdgebaseerd authenticatietoken nodig, evenals een wachtwoord om u aan te melden bij uw Linux-pc. Deze oplossing maakt gebruik van Google Authenticator en andere TOTP-apps.
Dit proces werd uitgevoerd op Ubuntu 14.04 met de standaard Unity desktop en LightDM login manager, maar de principes zijn hetzelfde op de meeste Linux distributies en desktops.
We hebben u eerder laten zien hoe u Google Authenticator nodig hebt voor toegang op afstand via SSH, en dit proces is vergelijkbaar. Hiervoor is de Google Authenticator-app niet nodig, maar deze werkt met elke compatibele app die het TOTP-authenticatieschema implementeert, inclusief Authy.
Installeer de Google Authenticator PAM
Net als bij het instellen van SSH-toegang, moeten we eerst de juiste PAM-software ("pluggable-authenticatiemodule") installeren. PAM is een systeem waarmee we verschillende soorten verificatiemethoden kunnen koppelen aan een Linux-systeem en deze vereisen.
Op Ubuntu zal de volgende opdracht de Google Authenticator PAM installeren. Open een Terminal-venster, typ de volgende opdracht, druk op Enter en geef uw wachtwoord op. Het systeem downloadt de PAM van de softwarebronnen van uw Linux-distributie en installeer deze:
sudo apt-get install libpam-google-authenticator
Andere Linux-distributies zouden dit pakket hopelijk ook beschikbaar moeten hebben voor eenvoudige installatie - open de softwarerepository's van je Linux-distributie en voer er een zoekopdracht voor uit. In het ergste geval kunt u de broncode voor de PAM-module op GitHub vinden en zelf compileren.
Zoals we eerder al opmerkten, hangt deze oplossing niet af van "naar huis bellen" naar de servers van Google. Het implementeert het standaard TOTP-algoritme en kan zelfs worden gebruikt wanneer uw computer geen internettoegang heeft.
Maak uw authenticatiesleutels
U moet nu een geheime verificatiesleutel maken en deze invoeren in de app van Google Authenticator (of een vergelijkbare app) op uw telefoon. Meld u eerst aan als uw gebruikersaccount op uw Linux-systeem. Open een terminalvenster en voer de google-Authenticator commando. Type Y en volg de aanwijzingen hier. Hiermee wordt een speciaal bestand gemaakt in de map van het huidige gebruikersaccount met de Google Authenticator-informatie.
U zult ook door het proces lopen om die twee-factor verificatiecode in een Google Authenticator of vergelijkbare TOTP-app op uw smartphone te krijgen. Uw systeem kan een QR-code genereren die u kunt scannen, of u kunt het handmatig invoeren.
Noteer uw noodschroescodes die u kunt gebruiken om u aan te melden als u uw telefoon verliest.
Doorloop dit proces voor elk gebruikersaccount dat uw computer gebruikt. Als u bijvoorbeeld de enige persoon bent die uw computer gebruikt, kunt u dit eenmaal in uw normale gebruikersaccount doen. Als u iemand anders heeft die uw computer gebruikt, moet u hen laten inloggen bij hun eigen account en een geschikte twee-factorcode genereren voor hun eigen account, zodat ze kunnen inloggen.
Verificatie activeren
Hier wordt het een beetje dicy. Toen we uitlegden hoe we twee-factor voor SSH-aanmeldingen konden inschakelen, hadden we dit alleen nodig voor SSH-aanmeldingen. Dit zorgde ervoor dat je nog steeds lokaal kon inloggen als je je authenticatie-app verloor of als er iets misging.
Omdat we authenticatie met twee factoren voor lokale aanmeldingen mogelijk maken, zijn er hier potentiële problemen. Als er iets misgaat, bent u mogelijk niet in staat om in te loggen. Met dat in gedachten zullen we u begeleiden om dit alleen voor grafische logins mogelijk te maken. Dit geeft je een uitkomst als je het nodig hebt.
Schakel Google Authenticator in voor grafische logins op Ubuntu
U kunt altijd authenticatie in twee stappen inschakelen voor alleen grafische aanmeldingen en de vereiste overslaan wanneer u zich aanmeldt vanaf de tekstprompt. Dit betekent dat u gemakkelijk kunt overschakelen naar een virtuele terminal, daar kunt inloggen en uw wijzigingen kunt terugzetten, zodat Gogole Authenciator niet nodig is als u een probleem ondervindt.
Natuurlijk, dit opent een gat in uw authenticatiesysteem, maar een aanvaller met fysieke toegang tot uw systeem kan het toch al misbruiken. Daarom is authenticatie met twee factoren bijzonder effectief voor inloggen op afstand via SSH.
Hier is hoe dit te doen voor Ubuntu, die de LightDM login manager gebruikt. Open het LightDM-bestand voor bewerking met een commando zoals het volgende:
sudo gedit /etc/pam.d/lightdm
(Vergeet niet dat deze specifieke stappen alleen werken als uw Linux-distributie en desktop de LightDM-inlogmanager gebruiken.)
Voeg de volgende regel toe aan het einde van het bestand en sla het op:
auth vereist pam_google_authenticator.so nullok
Het "nullok" -bit aan het einde vertelt het systeem om een gebruiker te laten inloggen, zelfs als ze de google-authenticator-opdracht niet hebben uitgevoerd om authenticatie met twee factoren in te stellen. Als ze het hebben ingesteld, moeten ze een tijd-baesd-code invoeren - anders doen ze dit niet. Verwijder de "nullok" en gebruikersaccounts die geen Google Authenticator-code hebben ingesteld, kunnen zich gewoon niet grafisch aanmelden.
De volgende keer dat een gebruiker zich grafisch aanmeldt, wordt hem om zijn wachtwoord gevraagd en vervolgens om de huidige verificatiecode gevraagd die op zijn telefoon wordt weergegeven. Als ze de verificatiecode niet invoeren, mogen ze zich niet aanmelden.
Het proces moet redelijk vergelijkbaar zijn voor andere Linux-distributies en -desktops, aangezien de meeste gangbare Linux-sessiebeheerders voor de desktop PAM gebruiken. U zult waarschijnlijk gewoon een ander bestand moeten bewerken met iets soortgelijks om de juiste PAM-module te activeren.
Als u Home Directory-versleuteling gebruikt
Oudere releases van Ubuntu boden een eenvoudige "home folder encryption" -optie die je hele homedirectory versleutelde totdat je je wachtwoord invoerde. Concreet gebruikt dit ecryptfs. Omdat de PAM-software standaard afhankelijk is van een Google Authenticator-bestand dat standaard in uw thuismap is opgeslagen, interfereert de codering met de PAM die het bestand leest, tenzij u ervoor zorgt dat het bestand in niet-gecodeerde vorm beschikbaar is voordat u zich aanmeldt. Raadpleeg de README voor meer informatie informatie over het vermijden van dit probleem als u nog steeds de verouderde coderingsopties voor de thuismap gebruikt.
Moderne versies van Ubuntu bieden in plaats daarvan full-disk encryptie, wat prima werkt met de bovenstaande opties. Je hoeft niets bijzonders te doen
Help, het ging kapot!
Omdat we dit eenvoudig hebben ingeschakeld voor grafische logins, zou het eenvoudig uit te schakelen moeten zijn als het een probleem veroorzaakt. Druk op een toetscombinatie zoals Ctrl + Alt + F2 om toegang te krijgen tot een virtuele terminal en meld u daar aan met uw gebruikersnaam en wachtwoord. U kunt dan een opdracht zoals sudo nano /etc/pam.d/lightdm gebruiken om het bestand te openen voor bewerking in een termineteksteditor. Gebruik onze gids voor Nano om de regel te verwijderen en het bestand op te slaan, en u kunt zich weer normaal aanmelden.
U kunt Google Authenticator ook verplichten voor andere typen aanmeldingen - mogelijk zelfs voor alle systeemaanmeldingen - door de regel "auth required pam_google_authenticator.so" toe te voegen aan andere PAM-configuratiebestanden. Wees voorzichtig als je dit doet. En vergeet niet dat je misschien 'nullok' wilt toevoegen, zodat gebruikers die nog niet door het configuratieproces zijn gegaan, toch kunnen inloggen.
Verdere documentatie over het gebruik en het instellen van deze PAM-module is te vinden in het README-bestand van de software op GitHub.