31Aug
Voor extra beveiliging kunt u een tijdgebaseerd authenticatietoken en een wachtwoord voor aanmelding op uw Linux-pc nodig hebben. 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 zal de PAM downloaden van de softwarebronnen van je Linux-distributie en het installeren:
sudo apt-get installeren libpam-google-authenticator
Andere Linux-distributies zouden dit pakket hopelijk ook beschikbaar moeten hebben voor eenvoudige installatie - open de software-repositories van je Linux-distributie enzoek ernaar. In het ergste geval kunt u de broncode voor de PAM-module op GitHub vinden en zelf compileren.
Zoals we eerder al aangaven, hangt deze oplossing niet af van "thuis bellen" op de servers van Google. Het implementeert het standaard TOTP-algoritme en kan zelfs worden gebruikt wanneer uw computer geen internettoegang heeft.
Uw verificatiesleutels maken
U moet nu een geheime verificatiesleutel maken en deze invoeren in de app van Google Authenticator( of een vergelijkbare app) op uw telefoon. Log eerst in als je gebruikersaccount op je Linux-systeem. Open een terminalvenster en voer de google-authenticator -opdracht uit. Typ y en volg de aanwijzingen hier. Hiermee wordt een speciaal bestand gemaakt in de map van het huidige gebruikersaccount met de Google Authenticator-informatie.
Je zult ook door het proces lopen om die twee-factor verificatiecode in een Google Authenticator of vergelijkbare TOTP-app op je smartphone te krijgen. Uw systeem kan een QR-code genereren die u kunt scannen, of u kunt het handmatig invoeren.
Noteer uw noodschrikcodes 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 zich kunnen aanmelden.

Authentificatie activeren
Hier is waardingen worden een beetje dicy. Toen we uitlegden hoe we two-factor konden inschakelen voor SSH-logins, hadden we dit alleen nodig voor SSH-aanmeldingen. Dit heeft ervoor gezorgd dat u zich nog steeds lokaal kunt aanmelden als u uw verificatie-app bent kwijtgeraakt of als er iets fout is gegaan.
Aangezien we tweefactorauthenticatie voor lokale aanmeldingen mogelijk maken, zijn 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 aanmeldingen op Ubuntu
U kunt altijd tweestapsverificatie 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 opent dit een gat in je authenticatiesysteem, maar een aanvaller met fysieke toegang tot je 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 om te bewerken met een opdracht als het volgende:
sudo gedit /etc/pam.d/ lightdm
( Denk eraan dat deze specifieke stappen alleen werken als uw Linux-distributie en desktop de LightDM-inlogmanager gebruiken.)
Voeg de volgende regel toe aan het einde vanhet bestand en sla het vervolgens 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 twee-factor-authenticatie. 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-sessies voor desktopgebruik PAM gebruiken. U zult waarschijnlijk een ander bestand moeten bewerken met iets soortgelijks om de juiste PAM-module te activeren.
Als u gebruik maakt van Home Directory Encryption
Oudere versies van Ubuntu boden een eenvoudige "home folder encryption" -optie die uw hele homedirectory versleutelde totdat u uw wachtwoord invoerde. Concreet gebruikt dit ecryptfs. Omdat de PAM-software standaard afhankelijk is van een Google Authenticator-bestand dat standaard in uw persoonlijke map 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 informatieinformatie 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. U hoeft niets speciaals te doen.
Help, It Brak!
Omdat we dit net voor grafische logins hebben ingeschakeld, 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 commando 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 systeemaanmelding - 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 instellen van deze PAM-module is te vinden in het README-bestand van de software op GitHub.