Sådan logger du på dit Linux-skrivebord med Google Authenticator
For yderligere sikkerhed kan du kræve et tidsbaseret godkendelsestoken samt en adgangskode til at logge ind på din Linux-pc. Denne løsning bruger Google Authenticator og andre TOTP apps.
Denne proces blev udført på Ubuntu 14.04 med standard Unity desktop og LightDM login manager, men principperne er de samme på de fleste Linux distributioner og desktops.
Vi har tidligere vist dig, hvordan du kræver Google Authenticator for fjernadgang via SSH, og denne proces er ens. Dette kræver ikke Google Authenticator-appen, men fungerer sammen med en kompatibel app, der implementerer TOTP-godkendelsesordningen, herunder Authy.
Installer Google Authenticator PAM
Som når du opsætter SSH-adgangen, skal vi først installere det relevante PAM-program ("plug-to-authentication module"). PAM er et system, der giver os mulighed for at tilslutte forskellige typer autentificeringsmetoder til et Linux-system og kræve dem.
På Ubuntu installerer følgende kommando Google Authenticator PAM. Åbn et Terminal vindue, skriv følgende kommando, tryk Enter, og angiv dit kodeord. Systemet vil downloade PAM fra din Linux distribution software repositories og installere det:
sudo apt-get installer libpam-google-autentificering
Andre Linux-distributioner bør forhåbentlig have denne pakke tilgængelig for nem installation også - Åbn din Linux-distributionens software-lagre og udfør en søgning efter det. I værste fald kan du finde kildekoden til PAM-modulet på GitHub og kompilere det selv.
Som vi tidligere har påpeget, er denne løsning ikke afhængig af at "ringe hjem" til Googles servere. Det implementerer standard TOTP-algoritmen og kan bruges, selvom din computer ikke har internetadgang.
Opret dine godkendelsestaster
Du skal nu oprette en hemmelig godkendelsesnøgle og indtaste den i appen Google Authenticator (eller en lignende) på din telefon. Først skal du logge ind som din brugerkonto på dit Linux-system. Åbn et terminalvindue og kør det google-autentifikator kommando. Type y og følg vejledningen her. Dette vil oprette en speciel fil i den aktuelle brugerkontos bibliotek med Google Authenticator-oplysninger.
Du vil også blive gennemgået processen med at få den to-faktor verifikationskode til en Google Authenticator eller lignende TOTP-app på din smartphone. Dit system kan generere en QR-kode, du kan scanne, eller du kan skrive det manuelt.
Vær sikker på at notere dine nødbremsekoder, som du kan bruge til at logge ind med, hvis du mister din telefon.
Gå igennem denne proces for hver brugerkonto, der bruger din computer. Hvis du for eksempel er den eneste person, der bruger din computer, kan du bare gøre det en gang på din normale brugerkonto. Hvis du har en anden, der bruger din computer, vil du gerne have dem tilmeldt deres egen konto og generere en passende tofaktorkode for deres egen konto, så de kan logge ind.
Aktivér godkendelse
Her bliver tingene lidt dicy. Da vi forklarede, hvordan du aktiverede to-faktor for SSH logins, krævede vi det kun til SSH logins. Dette sikrede, at du stadig kunne logge ind lokalt, hvis du mistede din godkendelsesapp, eller hvis noget gik galt.
Da vi giver mulighed for tofaktorautentificering til lokale logins, er der potentielle problemer her. Hvis noget går galt, kan du muligvis ikke logge ind. Med det i tankerne vil vi kun gå igennem, så du kun kan bruge det til grafiske logins. Dette giver dig en escape luge, hvis du har brug for det.
Aktivér Google Authenticator til grafiske logins på Ubuntu
Du kan altid aktivere to-trins-godkendelse til kun grafiske logins, hvor du overgår kravet, når du logger ind fra tekstprompten. Dette betyder, at du nemt kan skifte til en virtuel terminal, logge ind der og vende dine ændringer, så Gogole Authenciator ikke ville være påkrævet, hvis du oplever et problem.
Sikker på, dette åbner et hul i dit autentificeringssystem, men en angriber med fysisk adgang til dit system kan allerede udnytte det alligevel. Derfor er tofaktorautentificering særligt effektiv til eksterne logins via SSH.
Sådan gør du det for Ubuntu, som bruger LightDM login manager. Åbn LightDM-filen til redigering med en kommando som følgende:
sudo gedit /etc/pam.d/lightdm
(Husk, at disse specifikke trin kun fungerer, hvis din Linux distribution og desktop bruger LightDM login manager.)
Tilføj følgende linje til slutningen af filen, og gem den:
auth kræves pam_google_authenticator.so nullok
"Nullok" -bit i slutningen fortæller systemet at lade en bruger logge ind, selvom de ikke har kørt kommandoen google-autentificering for at konfigurere tofaktors godkendelse. Hvis de har sat det op, skal de indtaste en time-baesd-kode - ellers vil de ikke. Fjern "nullok" og brugerkonti, der ikke har oprettet en Google Authenticator-kode, vil ikke kunne logge ind grafisk.
Næste gang en bruger logger ind grafisk, bliver de bedt om deres adgangskode og derefter bedt om, at den nuværende bekræftelseskode vises på deres telefon. Hvis de ikke indtaster verifikationskoden, får de ikke lov til at logge ind.
Processen skal være forholdsvis ens for andre Linux distributioner og desktops, da de fleste almindelige Linux desktop session managers bruger PAM. Du skal sandsynligvis bare redigere en anden fil med noget, der ligner aktivering af det relevante PAM-modul.
Hvis du bruger Home Directory Encryption
Ældre udgivelser af Ubuntu tilbydes en nem "home folder encryption" mulighed, der krypterede hele din hjemmekatalog, indtil du indtaster dit kodeord. Dette bruger specifikt ecryptfs. Men fordi PAM-softwaren afhænger af en Google Authenticator-fil, der er gemt i din hjemmekatalog som standard, forstyrrer krypteringen PAM-læsningen af filen, medmindre du sikrer, at den er tilgængelig i ukrypteret form til systemet, før du logger ind. Se README for mere oplysninger om at undgå dette problem, hvis du stadig bruger de udskrevne home directory-krypteringsindstillinger.
Moderne versioner af Ubuntu tilbyder i stedet fulddisk-kryptering, hvilket vil fungere fint med ovenstående muligheder. Du behøver ikke gøre noget særligt
Hjælp, det brød!
Fordi vi bare aktiverede dette til grafiske logins, bør det være nemt at deaktivere, hvis det forårsager et problem. Tryk på en tastekombination som Ctrl + Alt + F2 for at få adgang til en virtuel terminal og log ind der med dit brugernavn og adgangskode. Du kan derefter bruge en kommando som sudo nano /etc/pam.d/lightdm for at åbne filen til redigering i en terminal tekst editor. Brug vores guide til Nano til at fjerne linjen og gem filen, og du vil normalt kunne logge ind igen.
Du kan også tvinge Google Authenticator til at blive påkrævet for andre typer logins - muligvis endda alle systemlogins - ved at tilføje linjen "auth required pam_google_authenticator.so" til andre PAM-konfigurationsfiler. Pas på, hvis du gør dette. Og husk, du vil muligvis tilføje "nullok", så brugere, der ikke har gået igennem installationsprocessen, kan stadig logge ind.
Yderligere dokumentation om brug og opsætning af dette PAM-modul findes i softwares README-fil på GitHub.