SKZ fjernbrugergodkendelse linux. Sådan konfigureres to-faktor-godkendelse på Linux

  • Installeret ROSA Enterprise Linux Server-version, der ikke er lavere end 6.8 i "ROSA Standard Server"-konfigurationen
  • Adgang til depoter
  • Enhed Rutoken EDS/Rutoken EDS Flash/Rutoken EDS SC sammen med en læser. Der skal skrives et certifikat til enheden

For at få adgang til lagrene skal du få en nøgle fra supporttjenesten og køre følgende kommando med administratorrettigheder:

Ekko<ключ>> /etc/rosa-support-id-server

Anvendelighed

Instruktionerne beskriver installationen og konfigurationen af ​​de ROSA Enterprise Linux Server-værktøjer, der kræves til godkendelse ved hjælp af Rutoken digital signatur. Eksemplet bruger AMD64-arkitekturen; for et 32-bit system vil alle handlinger være ens, op til mappenavne.

Efter at have gennemført proceduren nedenfor, bliver godkendelse ved hjælp af Rutoken EDS mulig, men vil ikke være obligatorisk.

Installation af komponenter

Installer de nødvendige og fjern modstridende hjælpeprogrammer (administratorrettigheder påkrævet):

Su yum installer ccid opensc pam_pkcs11 gdm-plugin-smartcard yum fjern coolkey

Installer PKCS#11-biblioteket til Rutoken EDS (det er vigtigt at installere biblioteket efter installation af hjælpeprogrammerne):

  • Gå til Rutokens websted: https://www.rutoken.ru/support/download/pkcs/.
  • Åbn fanen "GNU/Linux-brugere", og klik på linket "rtPKCS11ecp Library for GNU/Linux RPM 64-bit (x64)".
  • Download og installer pakken (kræver administratoradgangskode).

Indstillinger

Kontrol af displayet af enheden i systemet og tilstedeværelsen af ​​de nødvendige oplysninger på den

  • Løb pcscd(administratorrettigheder påkrævet):
su
  • Afslut en eksisterende proces pcscd, hvis der var en:
killall pcscd

Fra dette øjeblik skal tokenet indsættes i det relevante slot.

  • Løb:
pcscd-adfffff
  • Åbn en separat terminalfane eller et separat vindue, og kør følgende kommando i det:
pkcs11-værktøj --modul /usr/lib64/librtpkcs11ecp.so -T

Outputtet skal vise parametrene og enhedsnavnet. Et eksempel på output er vist nedenfor.

  • Kontroller, at tokenet har de nødvendige oplysninger ved hjælp af følgende kommando (token-adgangskoden er påkrævet):
pkcs11-værktøj --modul /usr/lib64/librtpkcs11ecp.so -O -l

Outputtet skal indeholde Certificate Object . Parametre såsom ID og etiket kan afvige fra dem, der er vist nedenfor.

Tilføjelse af et certifikat til betroet

  • Opret en database med betroede certifikater (administratorrettigheder påkrævet):
su mkdir /etc/pam_pkcs11/nssdb chmod 0644 /etc/pam_pkcs11/nssdb certutil -d /etc/pam_pkcs11/nssdb -N (oprettelse af database) modutil -dbdir /etc/pam_pkcs11/nssdb/ -add p11-kit-trust -libfile /usr/lib64/pkcs11/p11-kit-trust.so (værktøjet kræver, at du deaktiverer browseren)

  • Kopiér certifikatet fra tokenet (token-adgangskoden er påkrævet. ID-parameteren kan tages fra outputtet af pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l kommandoen):
pkcs11-værktøj --module=/usr/lib64/librtpkcs11ecp.so -l -r -y cert -d -o cert.crt (kommandoen vil skrive certifikatet til den aktuelle mappe som cert.crt)

  • Tilføj certifikatet til de betroede (administratorrettigheder påkrævet):
su cp cert.crt /etc/pki/ca-trust/source/anchors/ (kommandoen indtastes fra den mappe, hvori certifikatet blev placeret) update-ca-trust force-enable update-ca-trust extract (kan tage lidt tid)

Ændring af konfigurationsfiler

Der kræves administratorrettigheder for at ændre konfigurationsfiler.

pam_pkcs11.conf

  • Opret (for eksempel på dit skrivebord) en tekstfil pam_pkcs11.conf med følgende indhold:
pam_pkcs11 (nullok = falsk; debug = true; use_first_pass = falsk; brug_authtok = falsk; card_only = falsk; wait_for_card = falsk; brug_pkcs11_module = rutokenecp; # aktiv rutoken ecp pkcs11_module rutokenecp (module =/usR/li 11ECP.SO; slot _num = 0; support_thread = true; ca_dir = /etc/pam_pkcs11/cacerts; crl_dir = /etc/pam_pkcs11/crls; cert_policy = signatur; ) use_mappers = emne; mapper_search_path = /usr/lib64/pam_pkcs11; modul = intern; ignorcase = falsk; mapfile = file:///etc/pam_pkcs11/subject_mapping ; ) )
  • Placer filen i mappen /etc/pam_pkcs11/:
cd /etc/pam_pkcs11/su mv pam_pkcs11.conf pam_pkcs11.conf.default (backup) mkdir cacerts crls cp /home/<имя_пользователя>/Desktop/pam_pkcs11.conf /etc/pam_pkcs11/

system-aut

  • Tilslut modulet til PAM-autorisationssystemet:
su (opnå administratorrettigheder)
  • Åbn systemgodkendelsesfilen i en editor nano eller mcedit:
nano /etc/pam.d/system-auth
  • Tilføj følgende linje øverst:
auth tilstrækkelig pam_pkcs11.so pkcs11_module=/usr/lib64/librtpkcs11ecp.so debug

  • Gem filen ( ) og luk editoren ( ).

subject_mapping

  • Kør kommandoerne:
su pkcs11_inspect

  • Kopier outputtet fra den forrige kommando til /etc/pam_pkcs11/subject_mapping og angiv hvilken bruger certifikatet tilhører.

Konfigurationslinjen ser sådan ud:

Output af kommandoen pkcs11_inspect -><имя_пользователя>

Bekræfter godkendelse via konsol

  • Åbn et nyt konsolvindue eller fane.
  • Kør su-kommandoen<имя_пользователя>(brugernavn er angivet i subject_mapping).

Eksempel output:

Efter at have kontrolleret godkendelseshandlingen via konsollen, kan du fjerne fejlretningstilstanden. For at gøre dette skal du i filen /etc/pam.d/sysauth i den tilføjede linje fjerne ordet debug , og i filen /etc/pam_pkcs11/pam_pkcs11.conf indsætte debug false i stedet for true .

Opsætning af en skærmlås

  • Åbn filen pkcs11_eventmgr til redigering (administratorrettigheder kræves):
su cd /etc/pam_pkcs11/ mv pkcs11_eventmgr.conf pkcs11_eventmgr.conf.default (backup) nano pkcs11_eventmgr.conf

Efter redigering skal konfigurationsfilen se sådan ud:

Pkcs11_eventmgr ( # Kør i baggrunden? Indebærer debug=falsk hvis sand daemon = sand; # vis fejlmeddelelser? debug = falsk; # pollingtid i sekunder polling_time = 1; # udløbstid i sekunder # standard = 0 (ingen udløber) expire_time = 0; # pkcs11 modul til at bruge pkcs11_module = /usr/lib64/librtpkcs11ecp.so; # # liste over hændelser og handlinger # Kort indsat hændelse card_insert ( # hvad skal man gøre, hvis en handling mislykkes? # ignorer: fortsæt til næste handling # return: afslut handlingssekvens # quit: afslut program on_error = ignore ; ) # Kort er blevet fjernet hændelse card_remove ( on_error = ignore; action = "gdmflexiserver"; ) # For lang tid, kort fjernet hændelse expire_time ( on_error = ignore; action = "/bin /falsk"; ) )

  • Tilføj et hjælpeprogram pkcs11_eventmgr til opstart. For at gøre dette skal du redigere .bash_profile-filen for den godkendte bruger:
nano /hjem/<имя_пользователя>/.bash_profile
  • Tilføj en linje til slutningen af ​​den fil, der kører pkcs11_eventmgr.

Eksempel på en .bash_profile-fil efter redigering:

Når du vælger token-godkendelse, vil skærmen se nogenlunde sådan ud.

Hvis du er Linux-administrator og ønsker at holde dine servere og desktops så sikre som muligt, har du sikkert overvejet at bruge to-faktor-godkendelse. Generelt anbefales det stærkt for alle at sætte det op, da to-faktor-autentificering gør det meget sværere for angribere at få adgang til dine maskiner.

Linux giver dig mulighed for at konfigurere din computer, så du ikke kan logge ind på konsollen, skrivebordet eller via Secure Shell uden en to-faktor-godkendelseskode, der er knyttet til denne maskine. Lad os se på hele opsætningsprocessen på Ubuntu Server 16.04-systemet.

Introduktion

Før du begynder, er der én kendsgerning, du skal overveje - når du først har konfigureret tofaktorgodkendelse, vil du ikke kunne få adgang til din computer uden tredjepartsgenererede koder. Hver gang du vil logge ind, skal du bruge enten din smartphone eller nødkoder, som kan konfigureres under processen.

Vi skal bruge en Linux-server eller desktop. Sørg for, at systemet er opdateret, og at dine data er sikkerhedskopieret i tilfælde af uforudsete omstændigheder. For at oprette tofaktorkoder bruger vi en tredjepartsapplikation, for eksempel Authy eller Google Authenticator. Konventionelt vil vi bruge Google Authenticator, som skal installeres først.

Installation

Log ind på systemet og følg disse trin:

  1. Åbn et terminalvindue.
  2. Kør kommandoen: sudo apt installer libpam-google-authenticator.
  3. Indtast din sudo-adgangskode, og tryk på Enter.
  4. Hvis du bliver bedt om bekræftelse, skal du skrive "y" og trykke på Enter.
  5. Vent på, at installationen er fuldført.

Nu er det tid til at konfigurere din computer til to-faktor-godkendelse.

Konfiguration

Vend tilbage til terminalvinduet og indtast kommandoen: sudo nano /etc/pam.d/common-auth. Tilføj følgende linje til slutningen af ​​filen:

Gem og luk denne fil.

Nu skal vi konfigurere Google Authenticator for hver bruger, der skal have adgang til systemet. For at gøre dette skal du vende tilbage til terminalvinduet og på vegne af den bruger, som du planlægger at give adgang til, køre kommandoen google-authenticator. Her skal du svare på et par spørgsmål.

Det første spørgsmål er: "Vil du have autentificeringstokens til at være tidsbaserede (y/n)". Svar "y", og du får en QR-kode. Åbn to-faktor-appen på din smartphone, tilføj en konto og scan denne QR-kode.

Figur 1. Modtaget QR-kode

Når du har tilføjet koden, er der stadig et par spørgsmål tilbage at besvare:

  • Vil du have mig til at opdatere din "/home/jlwallen/.google_authenticator" fil (y/n) - Vil du opdatere filen /home/jlwallen/.google_authenticator;
  • Vil du ikke tillade flere brug af det samme godkendelsestoken (y/n)? - Vil du deaktivere muligheden for at genbruge et token flere gange? Denne indstilling tillader kun ét login hvert 30. sekund. Hvis denne mulighed er aktiveret, øges dine chancer for at bemærke eller endda forhindre et mand-i-midten-angreb.
  • Da standardværdien er 30 sekunder, og server- og klienttider kan variere lidt, er det muligt at bruge et ekstra token. Derfor, hvis du har problemer med synkroniseringen, kan du øge vinduestiden til omkring 4 minutter. Vil du gøre dette? - Vil du gøre det (y/n).
  • Hvis du ikke er sikker på at beskytte din computer mod brute-force-angreb, kan du aktivere hastighedsbegrænsning for godkendelsesmodulet. Som standard er dette maksimalt 3 loginforsøg hvert 30. sekund. Vil du aktivere hastighedsbegrænsning? - Vil du aktivere hastighedsbegrænsning (y/n)

Besvar hvert spørgsmål bekræftende ved at skrive "y" og trykke på Enter.

Opsætning af SSH

Det næste trin er at konfigurere SSH til at arbejde med to-faktor-godkendelse. Hvis du springer dette trin over, vil du ikke kunne logge ind via SSH.

Først skal du aktivere PAM-modulet. For at gøre dette skal du skrive kommandoen: sudo nano /etc/pam.d/sshd. Når du har åbnet filen, skal du tilføje følgende linje til slutningen af ​​filen:

auth påkrævet pam_google_authenticator.so nullok

Gem denne fil og kør derefter kommandoen: sudo nano /etc/ssh/sshd_config. I denne fil finder vi:

ChallengeResponseAuthentication no

Og ændre det til:

ChallengeResponseAuthentication ja

Gem denne fil og genstart sshd - sudo systemctl genstart sshd.

Log på

Før du logger ud, anbefaler vi kraftigt, at du åbner et nyt terminalvindue og prøver at logge ind via SSH. Hvis dette mislykkes, skal du gentage alle ovenstående trin og sikre dig, at du ikke er gået glip af noget. Når du har logget ind via SSH, kan du logge ud og logge på igen.

konklusioner

To-faktor-godkendelse (2FA) er en godkendelsesmetode, der kræver flere oplysninger for at logge ind på en konto eller enhed. Ud over kombinationen af ​​brugernavn og adgangskode kræver 2FA, at brugeren indtaster yderligere oplysninger såsom en engangsadgangskode (OTP, såsom en sekscifret verifikationskode).

Generelt kræver 2FA, at brugeren indtaster forskellige typer oplysninger:

  • Noget brugeren ved (som en adgangskode)
  • Noget, som brugeren har (for eksempel en verifikationskode, der er genereret af en speciel applikation - en autentificering).

2FA er en undergruppe af multi-factor authentication (MFA). MFA-metoden kræver, udover hvad brugeren ved og hvad han har, noget som han er. Dette er biometriske data: fingeraftryk eller stemmegenkendelse osv.

2FA hjælper med at beskytte godkendelsesprocessen for en specifik tjeneste eller enhed: Selv hvis adgangskoden er kompromitteret, vil angriberen også have brug for sikkerhedskoden, og dette kræver adgang til brugerens enhed, hvor godkendelsesprogrammet er placeret. Af denne grund tilbyder mange onlinetjenester muligheden for at aktivere 2FA for brugerkonti for at øge kontosikkerheden på godkendelsesniveauet.

I denne vejledning lærer du, hvordan du opsætter 2FA ved hjælp af Google PAM-modul til en ikke-rootbruger i Ubuntu 18.04. Da du opsætter 2FA for en ikke-root-bruger, hvis du er låst ude, vil du stadig kunne få adgang til computeren fra din root-konto. Instruktionerne i manualen er ret generelle, så de kan anvendes på både servere og desktop-installationer, både lokale og eksterne.

Krav

  • Ubuntu 18.04 server eller desktop miljø. Ubuntu 18.04-serveren skal konfigureres med .
  • En godkendelse installeret på mobilenheden (f.eks. Google Authenticator eller Authy). Med den vil du scanne QR-sikkerhedskoder.

1: Installation af Google PAM-modulet

For at konfigurere 2FA på Ubuntu 18.04 skal du installere Google PAM-modulet til Linux. Pluggable Authentication Module (PAM) er en godkendelsesmekanisme, der bruges af Linux. Google PAM-modulet giver din bruger mulighed for at fuldføre 2FA-godkendelse ved hjælp af Google-genererede OTP-koder.

Først skal du logge ind som den sudo-bruger, du oprettede under den indledende serveropsætning:

ssh 8host@din_server_ip

Opdater Ubuntu-pakkeindekset for at få den nyeste autentificering:

sudo apt-get opdatering

Efter opdatering af lagrene skal du installere den seneste version af PAM-modulet:

sudo apt-get install libpam-google-authenticator

Det er en meget lille pakke uden afhængigheder, så installationen vil tage et par sekunder. I næste afsnit konfigurerer vi 2FA til sudo-brugeren.

2: Konfigurer to-faktor-godkendelse

Nu hvor du har installeret PAM-modulet, skal du køre det for at generere en QR-kode til den loggede bruger. Dette vil generere koden, men Ubuntu-miljøet kræver ikke 2FA, før du aktiverer det.

Kør kommandoen google-authenticator for at starte og konfigurere PAM-modulet:

google-autentificering

Teamet vil stille dig nogle spørgsmål om konfigurationen. Først vil den spørge, om du ønsker, at tokens skal være tidsbegrænsede. Tidsbegrænsede godkendelsestokens udløber efter et bestemt interval (standarden er 30 sekunder på de fleste systemer). Tidsbegrænsede tokens er mere sikre end ikke-tidsbegrænsede tokens, og de fleste 2FA-implementeringer bruger dem. Du kan vælge begge muligheder her, men vi anbefaler at vælge Ja og bruge tidsbegrænsede autentificeringstokens:

Ønsker du, at autentificeringstokens skal være tidsbaseret (y/n) y

Ved at svare y på dette spørgsmål vil du se flere outputlinjer i konsollen:

  • QR-kode: Dette er en kode, der skal scannes ved hjælp af en autentificeringsapp. Når du har scannet den, genererer appen en ny OTP hvert 30. sekund.
  • Hemmelig nøgle: Dette er en alternativ måde at konfigurere et godkendelsesprogram på. Hvis du bruger en app, der ikke understøtter QR-scanning, kan du indtaste en hemmelig nøgle for at konfigurere autentificeringen.
  • Bekræftelseskode: Dette er den første sekscifrede kode, som denne særlige QR-kode genererer.
  • Nødskrabekoder. Disse er engangs-tokens (også kaldet backup-koder) og giver dig mulighed for at fuldføre 2FA-godkendelse, hvis du mister din autentificeringsenhed. Opbevar disse koder et sikkert sted for at undgå kontosuspendering.

Når du har konfigureret din autentificeringsapp og gemt dine backupkoder et sikkert sted, vil programmet spørge, om du vil opdatere konfigurationsfilen. Hvis du vælger n, skal du køre opsætningsprogrammet igen. Skriv y for at gemme ændringer og fortsætte:

Vil du have mig til at opdatere din "~/.google_authenticator" fil (y/n) y

Dernæst vil programmet spørge, om du vil forhindre, at godkendelseskoder bruges mere end én gang. Som standard kan du kun bruge hver kode én gang, selvom der ikke er gået 30 sekunder, siden den blev oprettet. Dette er det sikreste valg, fordi det forhindrer gentagelsesangreb fra en angriber, som på en eller anden måde formåede at få din brugte bekræftelseskode. Af denne grund er det bedre at forbyde brugen af ​​koder mere end én gang. Svar y for at forhindre flere brug af samme token:

Vil du ikke tillade flere brug af den samme godkendelse
polet? Dette begrænser dig til ét login omkring hver 30'er, men det stiger
dine chancer for at bemærke eller endda forhindre man-in-the-middle-angreb (y/n) y

Du skal derefter angive, om du ønsker, at autentificeringstokens skal accepteres et stykke tid efter deres normale udløbsdato. Koderne er meget tidsfølsomme, så de virker muligvis ikke, hvis dine enheder ikke er synkroniseret. Denne mulighed løser dette problem ved at øge standardgyldighedsperioden for bekræftelseskoder, så godkendelseskoder vil blive accepteret under alle omstændigheder (selvom dine enheder er midlertidigt ude af synkronisering). Det er bedst at sørge for, at tiden på alle dine enheder er synkroniseret, da et svar ja vil reducere systemsikkerheden en smule. Besvar n på dette spørgsmål for at undgå at øge tokenets udløbsdato:

Som standard er tokens gode i 30 sekunder og for at kompensere for
mulig tidsskævhed mellem klient og server, tillader vi en ekstra
token før og efter det aktuelle tidspunkt. Hvis du problemer oplever med fattige
tidssynkronisering, kan du øge vinduet fra dets standard
størrelse på 1:30 min til omkring 4 min. Vil du gøre det (y/n) n

Det sidste spørgsmål er, om du vil aktivere en grænse for antallet af login-forsøg. Dette forhindrer brugeren i at foretage mere end tre mislykkede loginforsøg inden for 30 sekunder, hvilket forbedrer systemsikkerheden. Aktiver denne begrænsning ved at svare y:

Hvis computeren, du logger på, ikke er hærdet mod brute-force
loginforsøg, kan du aktivere hastighedsbegrænsning for godkendelsesmodulet.
Som standard begrænser dette angribere til ikke mere end 3 loginforsøg hver 30.
Vil du aktivere hastighedsbegrænsning (y/n) y

Du har konfigureret og genereret 2FA-koder ved hjælp af PAM-modulet. Nu skal du aktivere 2FA i dit miljø.

3: Aktiver 2FA i Ubuntu

Google PAM-modulet genererer nu 2FA-koder til din bruger, men Ubuntu-systemet ved endnu ikke, at det skal bruge koderne i godkendelsesprocessen. På dette tidspunkt skal du opdatere din Ubuntu-konfiguration for at konfigurere understøttelse af 2FA-tokens ud over grundlæggende godkendelse.

Der er to måder her:

  1. Du kan kræve to-faktor-godkendelse, hver gang en bruger logger på, og hver gang brugeren anmoder om sudo-rettigheder.
  2. Du kan kun kræve 2FA under login, så er det kun brugerens adgangskode, der kræves, når du bliver bedt om sudo-rettigheder.

Den første mulighed ville være ideel til et delt miljø, hvor det er ønskeligt at beskytte enhver handling, der kræver sudo-privilegier. Den anden tilgang er mere praktisk til et lokalt skrivebordsmiljø, hvor du er den eneste bruger på systemet.

Bemærk Bemærk: Hvis du aktiverer 2FA på en ekstern maskine, som du har adgang til via SSH, skal du udføre trin to og tre fra manualen, før du fortsætter. Resten af ​​trinene i denne vejledning gælder for alle Ubuntu-installationer, men fjernmiljøer har brug for yderligere konfiguration for at sikre, at SSH-tjenesten kender til 2FA.

Hvis du ikke bruger SSH til at få adgang til din Ubuntu-installation, kan du springe direkte til resten af ​​trinene i denne vejledning.

Spørg 2FA, når du logger ind og hæver sudo-privilegier

For at få systemet til at bruge 2FA under login og efterfølgende anmodninger om privilegieeskalering, skal du redigere filen /etc/pam.d/common-auth ved at tilføje en linje til slutningen af ​​den eksisterende fil.

Common-auth-filen gælder for alle godkendelsesmekanismer på systemet, uanset hvilket miljø der bruges. Det gælder også for godkendelsesanmodninger, der opstår efter, at brugeren er logget ind, såsom når der bliver bedt om sudo-rettigheder, når en ny pakke installeres fra en terminal.

Åbn filen:

sudo nano /etc/pam.d/common-auth

Tilføj i slutningen af ​​filen:

...
# og her er flere moduler pr. pakke (blokken "Yderligere")
session påkrævet pam_unix.so


Denne linje gør det muligt for Ubuntu-godkendelse at understøtte 2FA, når du logger på via Google PAM-modulet. Nullok-indstillingen giver eksisterende brugere mulighed for at logge ind, selvom de ikke har konfigureret 2FA-godkendelse for deres konto. Med andre ord vil brugere, der har konfigureret 2FA, blive bedt om at indtaste en godkendelseskode, næste gang de logger på, mens brugere, der ikke har kørt google-authenticator-kommandoen, vil være i stand til at logge på med deres, indtil de indstiller op 2FA.

Gem og luk filen.

Spørg kun 2FA, når du logger ind

Hvis du kun ønsker, at 2FA skal anmodes om, når du logger ind på et skrivebordsmiljø, skal du redigere konfigurationsfilen for den skrivebordsadministrator, du bruger. Konfigurationsfilnavnet er normalt det samme som skrivebordsmiljøets navn. For eksempel er konfigurationsfilen for gdm (standard Ubuntu-miljøet starter med Ubuntu 16.04) /etc/pam.d/gdm.

I tilfælde af en hovedløs server (som er en virtuel server), skal du i stedet redigere filen /etc/pam.d/common-session. Åbn den relevante fil afhængigt af dit miljø:

sudo nano /etc/pam.d/common-session

Tilføj de fremhævede linjer til slutningen af ​​filen:

#
# /etc/pam.d/common-session - sessionsrelaterede moduler, der er fælles for alle tjenester
#
...
# # og her er flere moduler pr. pakke (blokken "Yderligere")
session påkrævet pam_unix.so
session valgfri pam_systemd.so
# slutningen af ​​pam-auth-update config
auth påkrævet pam_google_authenticator.so nullok

Ubuntu vil nu kræve 2FA, når en bruger opretter forbindelse til systemet via kommandolinjen (enten lokalt eller eksternt via SSH), men dette gælder ikke for at køre kommandoer med sudo.

Du har konfigureret Ubuntu til at understøtte 2FA. Nu er det tid til at teste konfigurationen og sørge for, at når du logger på dit Ubuntu-system, bliver du bedt om en sikkerhedskode.

4: Test af to-faktor autentificering

Tidligere konfigurerede du 2FA til at generere koder hvert 30. sekund. Prøv nu at logge ind på dit Ubuntu-miljø.

Log først ud og log tilbage til dit Ubuntu-miljø:

ssh 8host@din_server_ip

Hvis du bruger adgangskodebaseret godkendelse, bliver du bedt om at indtaste brugeradgangskoden:

Bemærk: Hvis du bruger certifikatgodkendelse på fjernserveren, bliver du ikke bedt om en adgangskode. Nøglen sendes og accepteres automatisk. Du skal kun indtaste en bekræftelseskode.

Indtast din adgangskode, og du vil blive bedt om at indtaste din 2FA-kode:

Verifikationskode:

Herefter bliver du logget ind:

8host@din_server_ip: ~#

Hvis 2FA kun var aktiveret til login-formål, behøver du ikke længere indtaste 2FA-bekræftelseskoder, før din session slutter, eller du logger ud manuelt.

Hvis du har aktiveret 2FA via common-auth-filen, vil du også blive bedt om at give den, når du anmoder om sudo-privilegier:

8host@din_server_ip: ~# sudo -s
sudo adgangskode til 8host:
Verifikationskode:
root@din_server_ip:

Du har bekræftet, at 2FA-konfigurationen fungerer som forventet. Hvis noget går galt, og systemet ikke beder dig om bekræftelseskoder, skal du gå tilbage til den tredje sektion af vejledningen og sikre dig, at du har redigeret den korrekte Ubuntu-godkendelsesfil.

5: Forhindrer 2FA-blokering

Hvis din mobilenhed går tabt eller bliver ødelagt, er det vigtigt at have backupmetoder på plads for at gendanne adgangen til din 2FA-aktiverede konto. Når du konfigurerer 2FA for første gang, har du flere muligheder for at gendanne adgangen efter at være blevet blokeret:

  • Opbevar en sikkerhedskopi af dine hemmelige konfigurationskoder på et sikkert sted. Du kan gøre dette manuelt, men nogle godkendelsesapps som Authy giverer.
  • Gem dine gendannelseskoder på et sikkert sted uden for dit 2FA-aktiverede miljø, som du kan få adgang til, når det er nødvendigt.

Hvis du af en eller anden grund ikke har adgang til dine sikkerhedskopieringsmuligheder, kan du prøve en anden måde at gendanne adgangen til dit lokale miljø eller den eksterne 2FA-aktiverede server.

6: Gendannelse af adgang til det lokale miljø (valgfrit)

Hvis du har fysisk adgang til maskinen, kan du starte op i gendannelsestilstand for at deaktivere 2FA. Gendannelsestilstand er en måltype (som runlevel) i Linux, der bruges til at udføre administrative opgaver. Du bliver nødt til at redigere nogle indstillinger i GRUB for at gå ind i gendannelsestilstand.

For at få adgang til GRUB skal du først genstarte din computer:

Når GRUB-menuen vises, skal du sørge for, at Ubuntu-posten er fremhævet. Dette er standard 18.04 installationsnavnet, men det kan være anderledes, hvis du manuelt ændrede det efter installationen.

Tryk derefter på e-tasten på dit tastatur for at redigere GRUB-konfigurationen, før du starter dit system.

Gå til slutningen af ​​filen, der vises, og find den linje, der starter med linux og slutter med $vt_handoff. Gå til slutningen af ​​denne linje og tilføj systemd.unit=rescue.target. Sørg for at efterlade et mellemrum mellem $vt_handoff og systemd.unit=rescue.target. Dette vil tillade Ubuntu-maskinen at starte op i gendannelsestilstand.

Når du har foretaget ændringer, skal du gemme filen med tastekombinationen Ctrl + X. Din maskine vil genstarte, og du vil være ved kommandoprompten. Tryk på Enter for at gå ind i gendannelsestilstand.

Når du kommer til kommandoprompten, skal du åbne Google Authenticator-konfigurationsfilen, som er placeret i den blokerede brugers hjemmemappe.

nano /home/8host/.google-authenticator

Den første linje i denne fil er brugerens hemmelige nøgle, som bruges til at konfigurere autentificeringsværktøjet.

Nu har du to muligheder:

  1. Du kan kopiere den hemmelige nøgle og konfigurere autentificeringen.
  2. Hvis du vil starte med en ren tavle, kan du slette ~/.google-authenticator-filen helt for at deaktivere 2FA for den pågældende bruger. Efter at have logget ind igen, kan du konfigurere 2FA igen og modtage en ny hemmelig nøgle.

Under alle omstændigheder kan du gendanne systemet, efter at 2FA er blokeret lokalt ved hjælp af GRUB-opstartsindlæseren. Dernæst vil vi fortælle dig, hvordan du gendanner adgang til et blokeret fjernmiljø.

7: Gendannelse af adgang til et eksternt miljø (valgfrit)

Hvis din sudoer-konto er låst i et eksternt miljø, kan du midlertidigt deaktivere eller omkonfigurere 2FA ved hjælp af root-brugeren.

Log ind som root:

ssh root@din_server_ip

Når du er logget ind, skal du åbne indstillingsfilen for Google Authenticator, som er placeret i den blokerede brugers hjemmemappe:

sudo nano /home/8host/.google_authenticator

Den første linje i denne fil er brugerens hemmelige nøgle, som du skal bruge for at konfigurere autentificeringen.

Nu har du to muligheder:

  1. Hvis du vil konfigurere en ny eller slettet enhed, kan du bruge den hemmelige nøgle til at omkonfigurere autentificeringsappen.
  2. Hvis du vil starte med en ren tavle, kan du helt slette filen /home/8host/.google_authenticator for at deaktivere 2FA for den bruger. Efter at have logget ind som sudo-bruger kan du sætte 2FA op igen og få en ny privat nøgle.

Med enhver af disse muligheder vil du være i stand til at komme dig efter et utilsigtet 2FA-forbud ved at bruge en root-konto.

Konklusion

I denne vejledning opsætter du 2FA på en Ubuntu 18.04-maskine. To-faktor-godkendelse giver et ekstra lag af beskyttelse for din konto og systemet som helhed. Ud over dine skal du også indtaste en ekstra bekræftelseskode for at logge ind. Dette gør det umuligt for uautoriserede personer at få adgang til din konto, selvom det lykkes en hacker at få dine legitimationsoplysninger.

Tags: ,

Linux- dette er et flerbrugermiljø, og for at brugeren kan begynde at arbejde i systemet, skal han gennemgå godkendelsesproceduren. PAM (Tilslutbare godkendelsesmoduler) er et system (mekanisme), der påtager sig arbejdet med at implementere autentificeringsprocedurer. Før optræden PAM, måtte udviklere af programmer, der på en eller anden måde var relateret til autentificering, tilpasse deres program til eksisterende godkendelsesmekanismer. Hvis autentificeringsmekanismerne ændrede sig, var det derfor nødvendigt at ændre de programmer, der brugte dem. Derfor blev der udviklet et system PAM, som er et "lag" mellem programmer og autentificeringsmekanismer. Det vil sige, nu godkendelsesprogrammer (for eksempel programmet Log på) bør kun kunne arbejde med systemet PAM. Programmet sender PAM parametre (for eksempel login og adgangskode), og det (programmet) er ikke længere "interesseret" i, hvilken autentificeringsmetode der er implementeret i systemet - autentificering med adgangskode eller smartkort eller en anden metode. Yderligere arbejder PAM og returnerer enten succes eller fiasko til programmet.

Lad os se på systemet PAM flere detaljer. De vigtigste funktioner, eller handlinger, eller opgaver, som systemet udfører PAM- opdelt i fire grupper, der har specifikke navne:

gruppe auth- disse er handlinger direkte relateret til godkendelse. Det vil sige handlinger eller funktioner, der giver dig mulighed for at bestemme, at du er dig. Dette kan være adgangskodegodkendelse, smartkortgodkendelse, biometrisk godkendelse (fingeraftryk osv.) og andre.

gruppe konto- Det er handlinger relateret til kontostyring. For eksempel, selvom du er autentificeret i systemet, kan din konto blive udelukket fra at arbejde på bestemte tidspunkter af dagen. Eller tillad at logge ind i konsoltilstand, men forbyd at logge ind i grafisk tilstand. Etc.

gruppe session- denne gruppes handlinger tildeler brugeren de nødvendige ressourcer til arbejdet. Det enkleste eksempel er tilladelse til at montere mapper.

gruppe adgangskode- handlinger, der implementerer ændringer i brugergodkendelsesdata. Oftest er disse handlinger til at administrere brugeradgangskoder.

Alle disse handlinger eller procedurer (funktioner) implementeres i form af separate moduler, som er placeret i biblioteket /lib/sikkerhed/. Det vil sige, vi kan sige, at der er gruppemoduler auth, gruppemoduler konto etc. I overensstemmelse hermed er systemet PAM er modulopbygget, og hvis du skal implementere biometrisk autentificering, så skal du blot installere et modul, der kan udføre denne procedure.

Hovedsystemkonfigurationsfil PAM- dette er en fil /etc/pam.conf. Udover filen /etc/pam.conf, indstillinger PAM gemt i mappefiler /etc/pam.d/. Inde i mappen er der tekstfiler, der indeholder en sekvens af handlinger (en bestemt algoritme) for programmer, der bruger PAM. For eksempel fil /etc/pam.d/login indeholder systemdriftsalgoritmen PAM for programmet Log på, og filen /etc/pam.d/passwd for programmet passwd.

Lad os først se på filformatet /etc/pam.conf. Filen består af linjer. Filen kan bestå af én linje, eller den kan bestå af flere linjer, der lægger op til en kæde af sekventielle handlinger. Hver linje beskriver en regel eller et trin i en sådan kæde (algoritme). Linjen består af fire felter. Det første felt er navnet på det program, som dette trin gælder for. Det andet felt er handlingstypen ( auth, konto, session, adgangskode). Det tredje felt er det felt, hvor systemets adfærd er indstillet PAM efter at have gennemført dette trin på dette trin af algoritmen (vi vil dvæle ved dette spørgsmål mere detaljeret nedenfor). Det fjerde felt er modulfilnavnet. Linjen kan også indeholde nogle parametre, der sendes til modulet.

Struktur af filer placeret i mappen /etc/pam.d/, det samme. Den eneste forskel er fraværet af det første felt - navnet. Da navnet på programmet er taget fra navnet på selve filen. Lad os se på et eksempel på en sådan fil. Lad os ringe til ham testpam.

auth tilstrækkelig pam_rootok.so
auth påkrævet pam_unix.so
konto påkrævet pam_unix.so

Lad os se på den første linje. Mark auth siger, at det første skridt er godkendelse. Det tredje felt er det modul, der udfører godkendelsen og returnerer udførelsesresultatet. I dette eksempel er modulet pam_rootok.so kontrollerer om kontoen er root ( rod). Hvis ja, vil succes blive returneret (sandt), hvis ikke, vil fejl eller fiasko blive returneret (falsk). Det andet felt er reaktionen eller indvirkningen af ​​resultatet på kæden som helhed.

Reaktionen kan være af fire typer: påkrævet, påkrævet, valgfri, tilstrækkelig. Brug af eksempellinjen auth tilstrækkelig pam_rootok.so Lad os se på, hvad disse værdier betyder.

Hvis det andet felt er sat til påkrævet, så betyder det, at hvis modulet pam_rootok.so afsluttet med en fejl, derefter videre eksekvering af filen testpam systemet er afbrudt PAM returnerer en fejl til applikationen. Hvis modulet giver et positivt resultat, fortsætter eksekveringen af ​​kæden.

påkrævet ligner påkrævet. Hvis modulet pam_rootok.so endte med en fejl, så PAM vil også returnere en fejl, men efter at de resterende moduler er blevet udført, det vil sige, at kæden ikke afbrydes. Hvis modulet giver et positivt resultat, fortsætter eksekveringen af ​​kæden.

tilstrækkelig- hvis modulet pam_rootok.so returnerede succes, så systemet PAM returnerer succes til applikationen, og yderligere eksekvering af kæden afbrydes. Hvis fejl, fortsætter kæden med at udføre.

valgfri- denne parameter påvirker ikke kædens fremskridt på nogen måde. Angivet for de moduler, der ikke udfører nogen verifikationshandlinger. Hvis filen kun indeholder linjer med parameteren valgfri, At PAM vil returnere ansøgningen til succes.

Flere detaljer om systemet PAM og formålet med et bestemt bibliotek kan læses på hjemmesiden http://kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_SAG.html. Lad os nu lave en lille praktisk øvelse, der giver os mulighed for bedre at forstå, hvordan systemet fungerer. PAM og hvordan man opretter konfigurationsfiler.

Gå til biblioteket /etc/pam.d/. Kopier filen su til din hjemmemappe (så du kan gendanne den) og slette filen i su fra bibliotek /etc/pam.d/. Prøv nu kommandoen su i terminalen for at skifte til superbrugertilstand. Efter indtastning af adgangskoden vil systemet vise en godkendelsesfejl, fordi konfigurationsfilen for programmet mangler su.

Opret en fil /etc/pam.d/su og skriv følgende linje i den:

modul pam_deny.so returnerer altid en fejl. Hvad bliver resultatet? Tjek det ud. Og hvis du erstatter påkrævetpåkrævet?
Lad os nu skrive følgende regel i filen:

modul pam_wheel.so returnerer succes, hvis brugerkontoen tilhører gruppen hjul. Hvis du prøver at køre kommandoen nu su, så ender det straks med en fejl. Det vil sige nu holdet su Kun brugere, der er medlemmer af gruppen, vil være i stand til at udføre hjul og kender kontoadgangskoden rod. Hvis du opretter en gruppe hjul og tilføj din konto der, derefter kommandoen su det vil virke.

Her er et andet eksempel:

auth krævet pam_wheel.so
auth påkrævet pam_permit.so

Prøv at svare på, hvem der kan udføre kommandoen su og hvad skal der gøres for dette?
Dette afslutter den praktiske øvelse (glem ikke at returnere den originale su-fil).

Jeg vil endnu en gang understrege, at konfigurationsfiler i mappen /etc/pam.d/ kun kan oprettes for filer, der bruger systemet PAM. For eksempel, hvis du opretter en fil /etc/pam.d/ls med snor auth krævet pam_deny.so, derefter kommandoen ls vil stadig blive udført, da den ikke bruger systemet PAM. For at kontrollere, om et hold bruger PAM-systemet, kan du bruge kommandoen ldd, som sendes den fulde sti til kommandofilen som en parameter. For eksempel:

Søgeord compat det "siger" bare, at systemet vil blive brugt som et autentificeringssystem PAM.

Og videre. Vær forsigtig, når du eksperimenterer med PAM. Gennem uvidenhed eller skødesløshed kan du nemt blokere dit system. Derfor, før du ændrer noget, skal du sørge for at gemme de originale konfigurationsfiler, så du i tilfælde af problemer hurtigt kan gendanne dem.

Vi var for nylig ved at ændre en brugeradgangskode i Linux, da vi stødte på en fejl: Authentication Token Manipulation Error.

Vi brugte den normale passwd-kommando til at ændre adgangskoden, og den gav os denne fejl, og adgangskoden blev ikke ændret.

Sudo passwd my_user_name Ændring af adgangskode for bruger my_user_name Ændring af adgangskode til tecmint (nuværende) UNIX-adgangskode: passwd: Authentication token manipulation error passwd: password uændret

Reparation af Authentication Token Manipulation Fejl i Ubuntu

"Authentication Token Manipulation Error" betyder, at adgangskodeændringen af ​​en eller anden grund mislykkedes.

Det kan der være flere årsager til. I simple tilfælde vil du se årsagen til problemet i selve outputtet. For eksempel, hvis du ikke har angivet en adgangskode, bør du se den i fejlen:

Ingen adgangskode angivet passwd: Authentication token manipulation error passwd: password uændret

Ligeledes, hvis genindtastning af adgangskoden ikke stemmer overens, vil den også vise disse oplysninger:

Beklager, adgangskoder matcher ikke passwd: Authentication token manipulation error passwd: password uændret

Det er nemt, fordi du ved, hvad der forårsagede problemet og kan træffe korrigerende handlinger baseret på det. Men du er måske ikke altid heldig, for i nogle tilfælde vil du ikke se nogen nyttige oplysninger, kun en fejl.

Lad os se på nogle af disse tilfælde og løse dette problem.

Metode 1

Hvis du er bekendt med Linux-biblioteksstrukturen, ved du, at mappen /etc/shadow gemmer adgangskoden i et krypteret format sammen med andre oplysninger om brugere og deres adgangskoder.

Det er derfor, du skal sikre dig, at du har tilladelse til at læse og skrive til denne fil. Da du vil ændre adgangskoden som superbruger, skal denne fil have læse- og skrivetilladelser til root.

Hvis ikke, skal du indstille den korrekte opløsning:

Sudo chmod 640 /etc/shadow

Metode 2

Metode 1 vil fungere i de fleste tilfælde. Men i vores tilfælde var vi nødt til at genmontere rodpartitionen med læse- og skrivetilladelser. Vi forsøgte at nulstille administratoradgangskoden i Ubuntu.

Monter -rw -o genmonter /

I nogle sjældne tilfælde kan din disk være så fuld, at du ikke vil være i stand til at foretage ændringer i filen /etc/shadow. Men hvis dette er tilfældet, så vil du stå over for mange andre problemer.

Virkede dette for dig?

Vi har delt, hvad der virkede for os, og vi kan kun håbe, at det også virker for dig. Gjorde du det? Hvilken metode virkede for dig? Nævn det i kommentarerne.