För ytterligare säkerhet kan du kräva en tidsbaserad autentiseringstoken samt ett lösenord för att logga in på din Linux-dator. Denna lösning använder Google Authenticator och andra TOTP-appar.
Denna process utfördes på Ubuntu 14.04 med standarden Enhetsskrivbord och LightDM-inloggningshanteraren, men principerna är desamma på de flesta Linux-distributioner och skrivbord.
Vi visade dig tidigare hur man kräver Google Authenticator för fjärråtkomst via SSH , och denna process är liknande. Detta kräver inte Google Authenticator-appen, men fungerar med alla kompatibla appar som implementerar TOTP-autentiseringsschemat, inklusive Authy .
Installera Google Authenticator PAM
RELATERAD: Så här skyddar du SSH med Google Authenticator Two-Factor Authentication
Som när vi ställer in detta för SSH-åtkomst måste vi först installera lämplig PAM-programvara ("pluggable-authentication module"). PAM är ett system som gör att vi kan ansluta olika typer av autentiseringsmetoder till ett Linux-system och kräva dem.
På Ubuntu kommer följande kommando att installera Google Authenticator PAM. Öppna ett terminalfönster, skriv följande kommando, tryck på Enter och ange ditt lösenord. Systemet laddar ner PAM från din Linuxdistributions programvarulager och installerar den:
sudo apt-get install libpam-google-authenticator
Andra Linux-distributioner bör förhoppningsvis ha det här paketet tillgängligt för enkel installation också - öppna din Linux-distributionens programvarulager och gör en sökning efter det. I värsta fall kan du hitta källkoden för PAM-modulen på GitHub och kompilera det själv.
Som vi påpekat tidigare beror den här lösningen inte på att "ringa hem" till Googles servrar. Den implementerar TOTP-standardalgoritmen och kan användas även när din dator inte har internetåtkomst.
Skapa dina autentiseringsnycklar
Du måste nu skapa en hemlig autentiseringsnyckel och ange den i appen Google Authenticator (eller liknande) på din telefon. Logga först in som ditt användarkonto på ditt Linux-system. Öppna ett terminalfönster och kör google-authenticator kommando. Typ Y och följ anvisningarna här. Detta skapar en speciell fil i det aktuella användarkontots katalog med information om Google Authenticator.
Du kommer också att gå igenom processen för att få den tvåfaktorsverifieringskoden till en Google Authenticator eller liknande TOTP-app på din smartphone. Ditt system kan generera en QR-kod som du kan skanna eller skriva in den manuellt.
Var noga med att anteckna dina nödskrapkoder, som du kan använda för att logga in med om du tappar telefonen.
Gå igenom denna process för varje användarkonto som använder din dator. Om du till exempel är den enda personen som använder din dator kan du bara göra det en gång på ditt vanliga användarkonto. Om du har någon annan som använder din dator vill du låta dem logga in på sitt eget konto och skapa en lämplig tvåfaktorkod för sitt eget konto så att de kan logga in.
Aktivera autentisering
Här blir saker lite tjocka. När vi förklarade hur man aktiverar tvåfaktorer för SSH-inloggningar krävde vi det endast för SSH-inloggningar. Detta säkerställde att du fortfarande kunde logga in lokalt om du tappade din autentiseringsapp eller om något gick fel.
Eftersom vi aktiverar tvåfaktorautentisering för lokala inloggningar finns det potentiella problem här. Om något går fel kan du kanske inte logga in. Med tanke på det kommer vi att guida dig genom att aktivera detta endast för grafiska inloggningar. Detta ger dig en flyktlucka om du behöver den.
Aktivera Google Authenticator för grafiska inloggningar på Ubuntu
Du kan alltid aktivera tvåstegsautentisering för endast grafiska inloggningar och hoppa över kravet när du loggar in från textprompten. Det betyder att du enkelt kan byta till en virtuell terminal, logga in där och återställa dina ändringar så att Gogole Authenciator inte behövs om du får problem.
Visst, detta öppnar ett hål i ditt autentiseringssystem, men en angripare med fysisk åtkomst till ditt system kan redan utnyttja det ändå . Därför är tvåfaktorautentisering särskilt effektiv för fjärrinloggningar via SSH.
Så här gör du för Ubuntu, som använder LightDM-inloggningshanteraren. Öppna LightDM-filen för redigering med ett kommando som följande:
sudo gedit /etc/pam.d/lightdm
(Kom ihåg att dessa specifika steg bara fungerar om din Linux-distribution och skrivbord använder LightDM-inloggningshanteraren.)
Lägg till följande rad i slutet av filen och spara den:
auth krävs pam_google_authenticator.so nullok
”Nullok” -biten i slutet säger till systemet att låta en användare logga in även om de inte har kört google-authenticator-kommandot för att ställa in tvåfaktorautentisering. Om de har ställt in det måste de ange en tidskod - annars kommer de inte att göra det. Ta bort "nullok" och användarkonton som inte har konfigurerat en Google Authenticator-kod kan bara inte logga in grafiskt.
Nästa gång en användare loggar in grafiskt, blir de ombedd att ange sitt lösenord och sedan uppmanas den aktuella verifieringskoden som visas på sin telefon. Om de inte anger verifieringskoden får de inte logga in.
Processen bör vara ganska lika för andra Linux-distributioner och skrivbord, eftersom de vanligaste Linux-skrivbordssessionshanterarna använder PAM. Du måste troligen bara redigera en annan fil med något liknande för att aktivera lämplig PAM-modul.
Om du använder hemkatalogkryptering
Äldre versioner av Ubuntu erbjöd en enkel "Kryptering av hemmappar" som krypterade hela din hemkatalog tills du anger ditt lösenord. Specifikt använder detta ecryptfs. Eftersom PAM-programvaran beror på en Google Authenticator-fil som lagras i din hemkatalog som standard stör krypteringen att PAM läser filen såvida du inte ser till att den är tillgänglig i okrypterad form till systemet innan du loggar in. README för mer information om hur du undviker detta problem om du fortfarande använder de föråldrade krypteringsalternativen för hemkatalogen.
Moderna versioner av Ubuntu erbjuder kryptering med full disk istället, vilket fungerar bra med ovanstående alternativ. Du behöver inte göra något speciellt
Hjälp, det bröt!
Eftersom vi just aktiverat detta för grafiska inloggningar bör det vara enkelt att inaktivera det om det orsakar ett problem. Tryck på en tangentkombination som Ctrl + Alt + F2 för att komma åt en virtuell terminal och logga in där med ditt användarnamn och lösenord. Du kan sedan använda ett kommando som sudo nano /etc/pam.d/lightdm för att öppna filen för redigering i en terminaltextredigerare. Använda sig av vår guide till Nano för att ta bort raden och spara filen så kan du logga in normalt igen.
Du kan också tvinga Google Authenticator att krävas för andra typer av inloggningar - eventuellt till och med alla systeminloggningar - genom att lägga till raden "auth required pam_google_authenticator.so" till andra PAM-konfigurationsfiler. Var försiktig om du gör det här. Och kom ihåg att du kanske vill lägga till "nullok" så att användare som inte har gått igenom installationsprocessen fortfarande kan logga in.
Ytterligare dokumentation om hur du använder och konfigurerar denna PAM-modul finns i programvarans README-fil på GitHub .