Autentificare utilizator la distanță SKZ Linux. CryptoPro JCP pe Linux

Acasă / Dispozitivele mobile

Am schimbat recent o parolă de utilizator în Linux când am întâlnit o eroare: Eroare de manipulare a simbolului de autentificare.

Am folosit comanda normală passwd pentru a schimba parola și ne-a dat această eroare și parola nu a fost schimbată.

Sudo passwd my_user_name Schimbarea parolei pentru utilizator my_user_name Schimbarea parolei pentru tecmint (actuala) Parola UNIX: passwd: Eroare de manipulare a simbolului de autentificare passwd: parola neschimbată

Remedierea erorii de manipulare a simbolului de autentificare în Ubuntu

„Eroare de manipulare a simbolului de autentificare” înseamnă că, dintr-un motiv oarecare, schimbarea parolei a eșuat.

Pot exista mai multe motive pentru aceasta. ÎN cazuri simple veți vedea cauza principală a problemei în rezultatul în sine. De exemplu, dacă nu ați furnizat o parolă, ar trebui să o vedeți într-o eroare:

Nicio parolă furnizată passwd: Eroare de manipulare a simbolului de autentificare passwd: parola neschimbată

De asemenea, dacă reintroducerea parolei nu se potrivește, va afișa și aceste informații:

Ne pare rău, parolele nu se potrivesc passwd: Eroare de manipulare a simbolului de autentificare passwd: parola neschimbată

Este ușor pentru că știți ce a cauzat problema și puteți lua măsuri corective pe baza acesteia. Dar s-ar putea să nu fii întotdeauna norocos pentru că în unele cazuri nu vei vedea niciunul informatii utile, doar o eroare.

Să ne uităm la unele dintre aceste cazuri și să remediem această problemă.

Metoda 1

Dacă sunteți familiarizat cu structura de directoare Linux, știți că directorul /etc/shadow stochează parola într-un format criptat împreună cu alte informații despre utilizatori și parolele acestora.

Acesta este motivul pentru care trebuie să vă asigurați că aveți permisiunea de a citi și scrie în acest fișier. Deoarece veți schimba parola ca superutilizator, acest fișier trebuie să aibă permisiuni de citire și scriere pentru root.

Dacă nu este, ar trebui să setați rezoluția corectă:

Sudo chmod 640 /etc/shadow

Metoda 2

Metoda 1 va funcționa în majoritatea cazurilor. Dar în cazul nostru, a trebuit să remontăm partiția rădăcină cu permisiuni de citire și scriere. Am încercat să resetam parola de administrator în Ubuntu.

Mount -rw -o remount /

În unele cazuri rare, discul dumneavoastră poate fi atât de plin încât nu veți putea face nicio modificare în fișierul /etc/shadow. Dar dacă acesta este cazul, atunci te vei confrunta cu multe alte probleme.

A funcționat asta pentru tine?

Am împărtășit ceea ce a funcționat pentru noi și nu putem decât să sperăm că funcționează și pentru tine. ai facut-o? Care metodă a funcționat pentru tine? Menționați-l în comentarii.

Din 2020, utilizarea criptării în conformitate cu GOST R 34.10-2001 va fi interzisă, ceea ce înseamnă că toate organizațiile care interacționează cu agențiile guvernamentale sunt obligate să implementeze de urgență următorul standard - 2012. Dacă lucrați într-unul dintre ele, atunci nu treceți: în acest articol vom vorbi despre cum să rezolvați problema folosind un server pe CentOS 7 și pachetul CryptoPro JCP.

Dacă este prima dată când auziți despre toate acestea, atunci iată un mic context istoric.

În 1994, FSB a dezvoltat o serie de standarde și măsuri menite să protejeze schimbul de documente între organizații și alți participanți la acest proces. Una dintre aceste măsuri de securitate a fost semnătura digitală electronică a documentelor, iar unul dintre standarde a fost GOST R 34.10-94, care descrie algoritmul de generare și verificare electronică. semnătură digitală. Adoptată și pusă în aplicare prin decretul Standardului de stat al Rusiei din 23 mai 1994, numărul 154, a funcționat până în 2001.

A fost înlocuit cu bine-cunoscutul GOST R 34.10-2001 - un standard îmbunătățit conceput pentru a asigura o mai mare stabilitate a algoritmului. Dar timpul nu stă pe loc, algoritmii și metodele de protecție criptografică se schimbă, iar unsprezece ani mai târziu, GOST R 34.10-2001 este schimbat în GOST R 34.10-2012.

În noul standard, prima versiune a cerințelor parametrilor rămâne aceeași. Lungimea cheii secrete este de aproximativ 256 de biți și este posibil să utilizați o funcție hash cu o lungime a codului hash de 256 sau 512 biți. Principala diferență între noul standard este opțiunile cu parametri suplimentariși scheme, inclusiv hashing conform standardului GOST R 34.11-2012 „Stribog”.

INFO

Stribog este zeul vechilor slavi, care patronează vânturile, vremea și tot ce ține de spațiul aerian. Poate tehnologii cloud Aceleaşi. Citiți mai multe despre acest cifr în articolele „” și „”.

În februarie 2014, FSB a anunțat începerea tranziției la utilizarea noului standard național GOST R 34.10-2012 în mijloace semnătură electronică pentru informatiile care nu contin informatii care constituie secret de stat. Documentul numărul 149/7/1/3-58 din 31 ianuarie 2014 „Cu privire la procedura de trecere la utilizarea noilor standarde de semnătură digitală și funcții de hashing” a fost publicat următoarele cerințe;

  1. După 31 decembrie 2013, încetați certificarea instrumentelor de semnătură electronică pentru conformitatea cu cerințele pentru instrumentele de semnătură electronică aprobate prin Ordinul nr. 796 al FSB al Rusiei din 27 decembrie 2011, dacă aceste instrumente nu prevăd implementarea funcțiilor în conformitate cu cu GOST R 34.10-2012.
  2. După 31 decembrie 2018, interziceți utilizarea GOST R 34.10-2001 pentru generarea unei semnături electronice.

Ministerul Comunicațiilor a creat chiar și un plan pentru trecerea la standard (PDF). Cu toate acestea, în practică s-a dovedit că totul nu este atât de simplu, iar tranziția a trebuit să fie amânată până la 31 decembrie 2019. Motivele sunt următoarele.

  1. Multe autorități de stat și municipale nu sunt pregătite să treacă la noul standard de semnătură electronică GOST-2012 din cauza lipsei de suport la nivel de software.
  2. Pentru a emite certificate de un nou tip, aveți nevoie de echipamente care acceptă noul GOST și de un certificat de la Autoritatea de certificare principală generat folosind GOST-2012. Centrele de certificare l-au primit abia în vara anului 2018. Este nevoie de timp suplimentar pentru a emite certificate pentru toți utilizatorii.

Acum există două standarde de protecție criptografică în uz pentru operarea semnăturii digitale, dar cei care folosesc GOST-2001 trebuie urgent să facă ceva. Iarna, după cum se spune, vine și asta înseamnă că ne așteaptă o serie de teste atunci când implementăm suportul pentru GOST-2012.

Vă voi spune cum să implementați un instrument CIPF certificat de FSB (CryptoPro JCP). server Linux rulează Java JDK. Apropo, dacă încă utilizați GOST-2001, există unul minunat pe site-ul web CryptoPro, vă sfătuiesc să îl citiți, nu va fi de prisos.

Tot fluxul de documente între participanții la schimb are loc conform principiului SMEV (sistem de interacțiune electronică interdepartamentală). O aplicație poate fi un participant la un astfel de sistem, dar poate să nu fie deloc un participant, acest lucru nu schimbă principiul schimbului de documente. Pentru ușurință de înțelegere, am desenat o diagramă mică.


Preturi

Ca întotdeauna, se pune problema licenței soluție software. CryptoPro JCP nu este ieftin, iar dacă o stație de lucru costă 1.200 de ruble, atunci licențele de server sunt mult mai scumpe - aproximativ 30.000 pentru fiecare nucleu (sau două nuclee). procesor Intel cu Hyper Threading dezactivat).

Instalarea și configurarea unui furnizor de cripto

În exemplele pe care le voi folosi mașină virtuală cu CentOS 7, dar alegerea dvs. nu este limitată hardwareși distribuția Linux. Toate acțiunile și comenzile vor fi aceleași.

În primul rând, să creăm utilizator local, sub care va rula software-ul care utilizează semnarea documentelor.

$ sudo useradd -d /opt/user -p<Тут указываем пароль>-s utilizator /bin/bash; utilizator sudo grep /etc/passwd

Să instalăm corect Java JDK. Descărcați distribuția necesară.

$ wget --header „Cookie: oraclelicense=a” --content-disposition http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-taru1x914-tarux .gz -O jdk-8u191-linux-x64.tar.gz

Despachetați arhiva și verificați dacă folderul Java este gata pentru copiere.

$tar zxvf jdk-8u191-linux-x64.tar.gz; ls -al;

Copiați folderul în secțiunea aplicației software. De obicei folosesc /opt .

$ sudo cp -rf jdk1.8.0_191 /opt/

Verificăm dacă a fost copiat corect. Dacă este necesar, schimbați proprietarul folderului în root.

$ ls -al /opt/jdk1.8.0_191/ $ sudo chown -R root:root /opt/jdk1.8.0_191/; cd /opt/jdk1.8.0_191/; ls -al;

Ne înregistrăm variabile de mediu pentru Java JDK pentru toți utilizatorii în mod implicit.

$ sudo vi /etc/profile.d/oracle.sh

Scriem în fișier următoarele:

Export JAVA_HOME=/opt/jdk1.8.0_191 export JRE_HOME=/opt/jdk1.8.0_191/jre export PATH=$PATH:/opt/jdk1.8.0_191/bin:/opt/jdk1.8.0_191/jre/jre

Dacă serverul are mai multe versiuni ale Java JDK, atunci este necesar să se înregistreze alternative pentru noua versiune.

$ sudo alternatives --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 2 $ sudo alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_191/bin/jar 2 $ sudo alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_191/bin/javac 2 $ sudo alternatives --set jar /opt/jdk1.8.0_181/bin/jar $ sudo alternatives --set jar /opt/jdk1.8.0_191/bin/jar $ sudo alternatives --set javac /opt/jdk1.8.0_191/bin/javac $ sudo alternatives --config java

În meniu, selectați opțiunea 2 (sau cea care va duce la utilizarea unei versiuni mai noi de Java). Nu uitați să corectați drepturile la JRE systemPrefs.

$ sudo chmod 777 -R /opt/jdk1.8.0_191/jre/.systemPrefs

Control versiunea instalată Java.

$ java -versiune
versiunea java „1.8.0_191”
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
VM server Java HotSpot(TM) pe 64 de biți (build 25.191-b12, mod mixt)

Copiați folderul cu kitul de distribuție CryptoPro JCP în secțiunea de software de aplicație.

$ sudo cp -rf jcp-2.0.40035 /opt/

Verificăm dacă totul a fost copiat corect.

$ ls -al /opt/jcp-2.0.40035/

Acordăm drepturi de a rula scripturi.

$ sudo chmod +x /opt/jcp-2.0.40035/*.sh

Verificăm proprietarul și drepturile asupra folderului, acesta trebuie să fie root. Să intrăm în asta.

$ ls -al /opt/jcp-2.0.40035/; cd /opt/jcp-2.0.40035/;

Pentru a evita problemele de instalare, verificați numărul de nuclee de pe procesor și verificați licența. Puteți afla numărul de nuclee cu comanda nproc.

Să trecem la instalarea furnizorului cripto JCP. În timpul instalării, va trebui să răspundeți la o serie de întrebări.

Continuarea este disponibilă numai pentru membri

Opțiunea 1. Alăturați-vă comunității „site” pentru a citi toate materialele de pe site

Calitatea de membru al comunității în perioada specificată vă va oferi acces la TOATE materialele Hacker, vă va crește reducerea cumulativă personală și vă va permite să acumulați un rating profesional Xakep Score!

  • Sistem ROSA Enterprise Linux instalat Versiunea serverului nu mai mic de 6,8 în configurația „ROSA Standard Server”.
  • Acces la depozite
  • Dispozitiv Rutoken EDS/Rutoken EDS Flash/Rutoken EDS SC împreună cu un cititor. Pe dispozitiv trebuie scris un certificat

Pentru a obține acces la depozite, obțineți o cheie de la serviciul de asistență și rulați următoarea comandă cu drepturi de administrator:

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

Aplicabilitate

Instrucțiunile descriu instalarea și configurarea utilităților ROSA Enterprise Linux Server necesare pentru autentificare folosind semnătura digitală Rutoken. Exemplul folosește arhitectura AMD64; pentru un sistem pe 32 de biți, toate acțiunile vor fi similare, până la numele folderelor.

După finalizarea procedurii de mai jos, autentificarea folosind Rutoken EDS va deveni posibilă, dar nu va fi obligatorie.

Instalarea componentelor

Instalați utilitățile necesare și eliminați utilitățile aflate în conflict (sunt necesare drepturi de administrator):

Su yum install ccid opensc pam_pkcs11 gdm-plugin-smartcard yum remove coolkey

Instalați biblioteca PKCS#11 pentru Rutoken EDS (este important să instalați biblioteca după instalarea utilităților):

  • Accesați site-ul web Rutoken: https://www.rutoken.ru/support/download/pkcs/.
  • Deschideți fila „GNU/Linux Users” și faceți clic pe linkul „rtPKCS11ecp Library for GNU/Linux RPM 64-bit (x64)”.
  • Descărcați și instalați pachetul (este necesară parola de administrator).

Setări

Verificarea afișajului dispozitivului în sistem și prezența informațiilor necesare pe acesta

  • Fugi bucscd(sunt necesare drepturi de administrator):
su
  • Încheiați un proces existent bucscd, dacă a fost unul:
killall pcscd

Din acest moment, jetonul trebuie introdus în slotul corespunzător.

  • Run:
pcscd-adfffff
  • Deschideți o filă sau o fereastră de terminal separată și executați următoarea comandă în ea:
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -T

Ieșirea ar trebui să arate parametrii și numele dispozitivului. Un exemplu de ieșire este prezentat mai jos.

  • Verificați dacă jetonul are informațiile necesare utilizând următoarea comandă (este necesară parola jetonului):
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l

Ieșirea trebuie să conțină obiect certificat. Parametri precum ID-ul și eticheta pot diferi de cei afișați mai jos.

Adăugarea unui certificat la de încredere

  • Creați o bază de date cu certificate de încredere (sunt necesare drepturi de administrator):
su mkdir /etc/pam_pkcs11/nssdb chmod 0644 /etc/pam_pkcs11/nssdb certutil -d /etc/pam_pkcs11/nssdb -N (crearea bazei de date) modul -dbdir /etc/pam_pkcs11/nssdb/ -add p11-kit-trust -libfile /usr/lib64/pkcs11/p11-kit-trust.so (utilitatea vă va cere să dezactivați browserul)

  • Copiați certificatul de pe token (este necesară parola tokenului. Parametrul ID poate fi preluat din ieșirea comenzii pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l):
pkcs11-tool --module=/usr/lib64/librtpkcs11ecp.so -l -r -y cert -d -o cert.crt (comanda va scrie certificatul în directorul curent ca cert.crt)

  • Adăugați certificatul celor de încredere (sunt necesare drepturi de administrator):
su cp cert.crt /etc/pki/ca-trust/source/anchors/ (comanda se introduce din directorul în care a fost plasat certificatul) update-ca-trust force-enable update-ca-trust extract (poate dura ceva timp)

Schimbarea fișierelor de configurare

Sunt necesare drepturi de administrator pentru a modifica fișierele de configurare.

pam_pkcs11.conf

  • Creați (de exemplu, pe desktop) un fișier text pam_pkcs11.conf cu următorul conținut:
pam_pkcs11 ( nullok = fals; debug = true; use_first_pass = false; use_authtok = false; card_only = false; wait_for_card = false; use_pkcs11_module = rutokenecp; # Aktiv Rutoken ECP pkcs11_modulecs11_pkcspkcs/rutokenecp slot_ num = 0; support_thread = ca_dir = /etc/pam_pkcs11/crls, use_mappers;
  • Plasați fișierul în directorul /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/

sistem-auth

  • Conectați modulul la sistemul de autorizare PAM:
su (obținerea drepturilor de administrator)
  • Deschideți fișierul de autentificare a sistemului într-un editor nano sau mcedit:
nano /etc/pam.d/system-auth
  • Adăugați următoarea linie în partea de sus:
auth suficient pam_pkcs11.so pkcs11_module=/usr/lib64/librtpkcs11ecp.so debug

  • Salvați fișierul ( ) și închideți editorul ( ).

subiect_mapping

  • Rulați comenzile:
su pkcs11_inspect

  • Copiați rezultatul comenzii anterioare în /etc/pam_pkcs11/subject_mapping și specificați utilizatorului căruia îi aparține certificatul.

Linia de configurare arată astfel:

Ieșirea comenzii pkcs11_inspect -><имя_пользователя>

Verificarea autentificării prin consolă

  • Deschideți o nouă fereastră sau filă de consolă.
  • Rulați comanda su<имя_пользователя>(numele de utilizator este listat în subiect_mapping).

Exemplu de ieșire:

După verificarea operațiunii de autentificare prin consolă, puteți elimina modul de depanare. Pentru a face acest lucru, în fișierul /etc/pam.d/sysauth din linia adăugată eliminați cuvântul debug , iar în fișierul /etc/pam_pkcs11/pam_pkcs11.conf puneți debug false în loc de true .

Configurarea unei blocări a ecranului

  • Deschideți fișierul pkcs11_eventmgr pentru editare (sunt necesare drepturi de administrator):
su cd /etc/pam_pkcs11/ mv pkcs11_eventmgr.conf pkcs11_eventmgr.conf.default (backup) nano pkcs11_eventmgr.conf

După editare, fișierul de configurare ar trebui să arate astfel:

Pkcs11_eventmgr ( # Run in background? Implica debug=false daca true daemon = true; # afiseaza mesaje de depanare? debug = false; # timp de sondare in secunde polling_time = 1; # timp de expirare in secunde # implicit = 0 (fara expirare) expire_time = 0; # pkcs11 module pentru a utiliza pkcs11_module = /usr/lib64/librtpkcs11ecp.so; sfârșitul secvenței de acțiuni # ieșire: terminați programul on_error = ignore ) # Card a fost eliminat eveniment card_remove ( on_error = ignore; action = "gdmflexiserver"; ) # Prea mult timp card eliminat eveniment expire_time ( on_error = ignore; action = "/bin / fals";))

  • Adăugați un utilitar pkcs11_eventmgr la pornire. Pentru a face acest lucru, editați fișierul .bash_profile al utilizatorului autentificat:
nano /acasă/<имя_пользователя>/.bash_profile
  • Adăugați o linie la sfârșitul fișierului care rulează pkcs11_eventmgr.

Exemplu de fișier .bash_profile după editare:

Când selectați autentificarea cu simbol, ecranul va arăta cam așa.

Autentificarea cu doi factori (2FA) este o metodă de autentificare care vă permite să vă conectați cont sau dispozitivul necesită mai multe informații. Pe lângă combinația de nume de utilizator și parolă, 2FA solicită utilizatorului să intre Informații suplimentare, cum ar fi o parolă unică (OTP, cum ar fi un cod de verificare din șase cifre).

În general, 2FA solicită utilizatorului să introducă diferite tipuri de informații:

  • Ceva pe care utilizatorul îl știe (cum ar fi o parolă)
  • Ceva pe care îl are utilizatorul (de exemplu, un cod de verificare generat de o aplicație specială - un autentificator).

2FA este un subset de autentificare multifactor (MFA). Metoda MFA, pe lângă ceea ce știe utilizatorul și ceea ce are, necesită ceva care este. Acestea sunt date biometrice: amprentă sau recunoaștere vocală etc.

2FA ajută la protejarea procesului de autentificare pentru un anumit serviciu sau dispozitiv: chiar dacă parola este compromisă, atacatorul va avea nevoie și de codul de securitate, iar acest lucru necesită acces la dispozitivul utilizatorului unde se află aplicația de autentificare. Din acest motiv, multe servicii online oferă opțiunea de a activa 2FA pentru conturile de utilizator pentru a crește securitatea contului la nivel de autentificare.

În acest tutorial, veți învăța cum să configurați 2FA folosind modulul Google PAM pentru un utilizator non-root în Ubuntu 18.04. Deoarece configurați 2FA pentru un utilizator non-root, dacă sunteți blocat, veți putea în continuare să accesați computerul din contul dvs. root. Instrucțiunile din manual sunt destul de generale, așa că pot fi aplicate atât la servere, cât și la instalațiile desktop, atât locale, cât și la distanță.

Cerințe

  • Ubuntu Server 18.04 sau desktop mediu de lucru. Serverul Ubuntu 18.04 trebuie configurat cu .
  • Un autentificator instalat pe dispozitivul mobil (de exemplu, Google Authenticator sau Authy). Cu el vei scana coduri QR de securitate.

1: Instalarea modulului Google PAM

Pentru a configura 2FA pe Ubuntu 18.04, trebuie să instalați modulul Google PAM pentru Linux. Modulul de autentificare conectabil (PAM) este un mecanism de autentificare utilizat de Linux. Modulul Google PAM va permite utilizatorului dvs. să finalizeze autentificarea 2FA utilizând codurile OTP generate de Google.

Mai întâi conectați-vă ca utilizator sudo pe care l-ați creat în timpul configurarea inițială servere:

ssh 8host@your_server_ip

Actualizați indexul pachetului Ubuntu pentru a obține ultima versiune autentificator:

sudo apt-get update

După actualizarea depozitelor, instalați cea mai recentă versiune a modulului PAM:

sudo apt-get install libpam-google-authenticator

Este un pachet foarte mic, fără dependențe, așa că instalarea va dura câteva secunde. În secțiunea următoare, vom configura 2FA pentru utilizatorul sudo.

2: Configurați autentificarea cu doi factori

Acum că ați instalat modulul PAM, rulați-l pentru a genera un cod QR pentru utilizatorul conectat. Acest lucru va genera codul, dar mediul Ubuntu nu va necesita 2FA până când îl activați.

Rulați comanda google-authenticator pentru a lansa și configura modulul PAM:

google-authenticator

Echipa vă va pune câteva întrebări despre configurație. În primul rând, vă va întreba dacă doriți ca jetoanele să fie limitate în timp. Tokenurile de autentificare limitate în timp expiră după un anumit interval (valoarea implicită este de 30 de secunde pe majoritatea sistemelor). Token-urile limitate în timp sunt mai sigure decât jetoanele nelimitate în timp și majoritatea implementărilor 2FA le folosesc. Puteți alege oricare dintre opțiuni aici, dar vă recomandăm să alegeți Da și să utilizați jetoane de autentificare limitate în timp:

Doriți ca tokenurile de autentificare să fie bazate pe timp (da/n) y

Răspunzând y la această întrebare, veți vedea mai multe linii de ieșire în consolă:

  • Cod QR: Acesta este un cod care trebuie scanat folosind o aplicație de autentificare. După ce l-ați scanat, aplicația va genera un nou OTP la fiecare 30 de secunde.
  • Cheie secretă: aceasta cale alternativă setările aplicației de autentificare. Dacă utilizați o aplicație care nu acceptă scanarea QR, puteți introduce o cheie secretă pentru a configura autentificatorul.
  • Cod de verificare: acesta este primul cod din șase cifre pe care îl generează acest cod QR.
  • Coduri de urgență. Acestea sunt jetoane unice (numite și coduri de rezervă) și vă vor permite să finalizați autentificarea 2FA dacă vă pierdeți dispozitivul de autentificare. Păstrați aceste coduri într-un loc sigur pentru a evita suspendarea contului.

După ce ați configurat aplicația de autentificare și ați salvat coduri de rezervăîntr-o locație sigură, programul vă va întreba dacă doriți să actualizați fișierul de configurare. Dacă selectați n, va trebui să rulați din nou programul de instalare. Tastați y pentru a salva modificările și continua:

Doriți să vă actualizez fișierul „~/.google_authenticator” (da/n) a

Apoi, programul vă va întreba dacă doriți să împiedicați utilizarea codurilor de autentificare de mai multe ori. În mod implicit, puteți utiliza fiecare cod o singură dată, chiar dacă nu au trecut 30 de secunde de la crearea acestuia. Aceasta este cea mai sigură alegere, deoarece previne atacurile reluate de la un atacator care a reușit cumva să obțină codul de verificare folosit. Din acest motiv, este mai bine să interziceți utilizarea codurilor de mai multe ori. Răspundeți y pentru a preveni mai multe utilizări ale aceluiași simbol:

Doriți să interziceți mai multe utilizări ale aceleiași autentificări
jeton? Acest lucru vă limitează la o singură conectare la fiecare 30 de secunde, dar crește
șansele tale de a observa sau chiar de a preveni atacurile de tip om-in-the-middle (da/n) y

Apoi trebuie să specificați dacă doriți ca tokenurile de autentificare să fie acceptate la ceva timp după data lor normală de expirare. Codurile sunt foarte sensibile la timp, așa că este posibil să nu funcționeze dacă dispozitivele dvs. nu sunt sincronizate. Această opțiune rezolvă această problemă prin creșterea perioadei de valabilitate implicită a codurilor de verificare, astfel încât codurile de autentificare să fie acceptate în orice caz (chiar dacă dispozitivele dvs. sunt temporar nesincronizate). Cel mai bine este să vă asigurați că ora de pe toate dispozitivele dvs. este sincronizată, deoarece răspunsul cu da va reduce ușor securitatea sistemului. Răspundeți n la această întrebare pentru a evita creșterea datei de expirare a jetonului:

În mod implicit, jetoanele sunt bune pentru 30 de secunde și pentru a compensa
posibilă distorsiune temporală între client și server, permitem un plus
jeton înainte și după ora curentă. Dacă aveți probleme cu săraci
sincronizare de timp, puteți mări fereastra de la cea implicită
dimensiune de la 1:30 min până la aproximativ 4 min. Doriți să faceți acest lucru (da/n) n

Ultima întrebare este dacă doriți să activați o limită a numărului de încercări de conectare. Acest lucru va împiedica utilizatorul să facă mai mult de trei încercări eșuate de conectare în decurs de 30 de secunde, sporind astfel securitatea sistemului. Activați această restricție răspunzând y:

Dacă computerul la care vă conectați nu este întărit împotriva forței brute
încercări de conectare, puteți activa limitarea ratei pentru modulul de autentificare.
În mod implicit, acest lucru limitează atacatorii la cel mult 3 încercări de conectare la fiecare 30 de secunde.
Doriți să activați limitarea ratei (da/n) y

Ați configurat și generat coduri 2FA utilizând modulul PAM. Acum trebuie să activați 2FA în mediul dvs.

3: Activați 2FA în Ubuntu

Modulul Google PAM generează acum coduri 2FA pentru utilizatorul dvs., dar sistemul Ubuntu nu știe încă că trebuie să folosească codurile în procesul de autentificare. În acest moment, trebuie să actualizați configurația Ubuntu pentru a configura suportul pentru token-urile 2FA, pe lângă autentificarea de bază.

Există două moduri aici:

  1. Puteți solicita autentificare cu doi factori de fiecare dată când un utilizator se conectează și de fiecare dată când utilizatorul solicită drepturi sudo.
  2. Puteți solicita doar 2FA în timpul conectării, apoi doar parola utilizatorului va fi necesară atunci când vi se solicită drepturile sudo.

Prima opțiune ar fi ideală pentru un mediu partajat în care este de dorit să se protejeze orice acțiuni care necesită privilegii sudo. A doua abordare este mai practică pentru un mediu desktop local în care sunteți singurul utilizator de pe sistem.

Nota Notă: Dacă activați 2FA pe o mașină de la distanță pe care o accesați prin SSH, va trebui să finalizați pașii doi și trei din manual înainte de a continua. Restul pașilor din acest tutorial se aplică tuturor instalărilor Ubuntu, dar mediile la distanță au nevoie setări suplimentare pentru ca serviciul SSH să știe despre 2FA.

Dacă nu utilizați SSH pentru a accesa instalarea Ubuntu, puteți sări direct la restul pașilor din acest tutorial.

Solicitați 2FA când vă conectați și creșteți privilegiile sudo

Pentru ca sistemul să folosească 2FA în timpul conectării și solicitărilor ulterioare de escaladare a privilegiilor, trebuie să editați fișierul /etc/pam.d/common-auth adăugând o linie la sfârșitul fișierului existent.

Fișierul de autentificare comună se aplică tuturor mecanismelor de autentificare din sistem, indiferent de mediul utilizat. Se aplică, de asemenea, solicitărilor de autentificare care apar după ce utilizatorul s-a autentificat, cum ar fi atunci când i se solicită drepturi sudo la instalarea unui pachet nou de la un terminal.

Deschideți fișierul:

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

La sfârșitul fișierului adăugați:

...
# și aici sunt mai multe module per pachet (blocul „Adițional”)
sesiune necesară pam_unix.so


Această linie permite autentificarea Ubuntu să accepte 2FA atunci când vă conectați prin modulul Google PAM. Opțiunea nullok permite utilizatorilor existenți să se conecteze chiar dacă nu au configurat autentificarea 2FA pentru contul lor. Cu alte cuvinte, utilizatorilor care au configurat 2FA li se va cere să introducă un cod de autentificare data viitoare când se conectează, în timp ce utilizatorii care nu au rulat comanda google-authenticator se vor putea conecta cu acreditările lor standard până când se stabilesc sus 2FA.

Salvați și închideți fișierul.

Solicitați 2FA numai când vă conectați

Dacă doriți ca 2FA să fie solicitat numai atunci când vă conectați la un mediu desktop, va trebui să editați fișierul de configurare al managerului desktop pe care îl utilizați. Numele fișierului de configurare este de obicei același cu numele mediului desktop. De exemplu, fișierul de configurare pentru gdm (mediul Ubuntu implicit începând cu Ubuntu 16.04) este /etc/pam.d/gdm.

În cazul unui server fără cap (care este server virtual), în schimb trebuie să editați fișierul /etc/pam.d/common-session. Deschideți fișierul corespunzător în funcție de mediul dvs.:

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

Adăugați liniile evidențiate la sfârșitul fișierului:

#
# /etc/pam.d/common-session - module legate de sesiune comune tuturor serviciilor
#
...
# # și aici sunt mai multe module per pachet (blocul „Adițional”)
sesiune necesară pam_unix.so
sesiune opțională pam_systemd.so
# sfârșitul configurației pam-auth-update
auth required pam_google_authenticator.so nullok

Ubuntu va necesita acum 2FA atunci când un utilizator se conectează la sistem prin linia de comandă (fie local, fie de la distanță prin SSH), dar acest lucru nu se va aplica la rularea comenzilor cu sudo.

Ați configurat Ubuntu să accepte 2FA. Acum este timpul să testați configurația și să vă asigurați că atunci când vă conectați la sistemul Ubuntu vi se va solicita un cod de securitate.

4: Testarea autentificării cu doi factori

Anterior, ați configurat 2FA pentru a genera coduri la fiecare 30 de secunde. Acum încercați să vă conectați la mediul Ubuntu.

Mai întâi, deconectați-vă și conectați-vă din nou în mediul Ubuntu:

ssh 8host@your_server_ip

Dacă utilizați autentificarea bazată pe parolă, vi se va solicita să introduceți parola de utilizator:

Nota: Dacă utilizați autentificarea prin certificat pe serverul de la distanță, nu vi se va solicita o parolă. Cheia va fi trimisă și acceptată automat. Va trebui doar să introduceți un cod de verificare.

Introduceți parola și vi se va solicita să introduceți codul 2FA:

Cod de verificare:

După aceasta, veți fi autentificat:

8host@your_server_ip: ~#

Dacă 2FA a fost activat numai în scopuri de conectare, nu va mai trebui să introduceți coduri de verificare 2FA până când se termină sesiunea sau vă deconectați manual.

Dacă ați activat 2FA prin fișierul common-auth, vi se va solicita să îl furnizați și ori de câte ori solicitați privilegii sudo:

8host@your_server_ip: ~# sudo -s
parola sudo pentru 8host:
Cod de verificare:
root@your_server_ip:

Ați verificat că configurația 2FA funcționează conform așteptărilor. Dacă ceva a mers prost și sistemul nu v-a solicitat codurile de verificare, reveniți la a treia secțiune a ghidului și asigurați-vă că ați editat fisierul corect Autentificare Ubuntu.

5: Prevenirea blocării 2FA

În caz de pierdere sau distrugere dispozitiv mobil este important să se furnizeze metode backup pentru a restabili accesul la contul dvs. activat 2FA. Când configurați 2FA pentru prima dată, aveți mai multe opțiuni pentru restabilirea accesului după ce ați fost blocat:

  • Salva copie de rezervă codurile dvs. secrete de configurare într-un loc sigur. Puteți face acest lucru manual, dar unele aplicații de autentificare precum Authy oferă funcții de copiere a codului.
  • Stocați-vă codurile de recuperare într-o locație sigură în afara mediului dvs. compatibil 2FA, pe care o puteți accesa atunci când este necesar.

Dacă dintr-un motiv oarecare nu aveți acces la opțiunile de rezervă, puteți încerca o altă modalitate de a restabili accesul la mediul dvs. local sau la serverul 2FA la distanță activat.

6: Restabilirea accesului la mediul local (opțional)

Dacă ai acces fizic pe mașină, puteți porni în modul de recuperare pentru a dezactiva 2FA. Modul de recuperare este un tip țintă (cum ar fi nivelul de rulare) în Linux, care este utilizat pentru a efectua sarcini administrative. Va trebui să editați unele setări în GRUB pentru a intra în modul de recuperare.

Pentru a accesa GRUB, mai întâi reporniți computerul:

Când apare meniul GRUB, asigurați-vă că intrarea Ubuntu este evidențiată. Acesta este numele implicit de instalare 18.04, dar poate fi diferit dacă l-ați schimbat manual după instalare.

Apoi apăsați tasta e de pe tastatură pentru a edita configurația GRUB înainte de a porni sistemul.

Mergeți la sfârșitul fișierului care apare și găsiți linia care începe cu Linux și se termină cu $vt_handoff. Mergeți la sfârșitul acestei linii și adăugați systemd.unit=rescue.target. Asigurați-vă că lăsați un spațiu între $vt_handoff și systemd.unit=rescue.target. Acest lucru va permite mașinii Ubuntu să pornească în modul de recuperare.

După ce ați făcut modificări, salvați fișierul folosind combinația de taste Ctrl + X Mașina dvs. va reporni și veți fi în linie de comandă. Apăsați Enter pentru a intra în modul de recuperare.

Odată ajuns la promptul de comandă, deschideți fișierul de configurare Google Authenticator, care se află în directorul principal al utilizatorului blocat.

nano /home/8host/.google-authenticator

Prima linie din acest fișier este cheia secretă a utilizatorului, care este folosită pentru a configura autentificatorul.

Acum aveți două opțiuni:

  1. Puteți copia cheia secretă și puteți configura autentificatorul.
  2. Dacă doriți să începeți cu o soluție curată, puteți șterge complet fișierul ~/.google-authenticator pentru a dezactiva 2FA pentru acel utilizator. După ce vă conectați din nou, puteți configura din nou 2FA și puteți primi o nouă cheie secretă.

În orice caz, puteți restaura sistemul după ce ați fost blocat de 2FA într-un mediu local folosind încărcătorul de boot GRUB. În continuare, vă vom spune cum să restabiliți accesul la un mediu de la distanță blocat.

7: Restabilirea accesului la un mediu la distanță (opțional)

Dacă contul dvs. sudoer este blocat într-un mediu la distanță, puteți dezactiva sau reconfigura temporar 2FA folosind utilizatorul root.

Conectați-vă ca root:

ssh root@your_server_ip

După autentificare, deschideți fișierul setări Google Autentificator, care se află în directorul principal al utilizatorului blocat:

sudo nano /home/8host/.google_authenticator

Prima linie din acest fișier este cheia secretă a utilizatorului, de care aveți nevoie pentru a configura autentificatorul.

Acum aveți două opțiuni:

  1. Dacă doriți să configurați un dispozitiv nou sau șters, puteți utiliza cheia secretă pentru a reconfigura aplicația de autentificare.
  2. Dacă doriți să începeți cu o soluție curată, puteți șterge complet fișierul /home/8host/.google_authenticator pentru a dezactiva 2FA pentru acel utilizator. După ce vă conectați ca utilizator sudo, puteți configura din nou 2FA și puteți obține o nouă cheie privată.

Cu oricare dintre aceste opțiuni, vă veți putea recupera dintr-o interdicție accidentală 2FA folosind un cont root.

Concluzie

În acest tutorial, ați configurat 2FA pe o mașină Ubuntu 18.04. Autentificarea cu doi factori oferă un nivel suplimentar de protecție pentru contul dvs. și pentru sistemul în ansamblu. Pe lângă acreditările standard, vi se va cere să introduceți și un cod de verificare suplimentar pentru a vă conecta. Acest lucru face imposibil ca persoanele neautorizate să obțină acces la contul dvs., chiar dacă un atacator reușește să vă obțină acreditările.

Etichete: ,

Linux- acesta este un mediu multi-utilizator și pentru ca utilizatorul să înceapă să lucreze în sistem, trebuie să treacă printr-o procedură de autentificare. PAM (Module de autentificare conectabile) este un sistem (mecanism) care preia munca de implementare a procedurilor de autentificare. Înainte de apariție PAM, dezvoltatorii de programe care erau cumva legate de autentificare au trebuit să-și adapteze programul la mecanismele de autentificare existente. În consecință, dacă mecanismele de autentificare s-au schimbat, atunci a fost necesar să se schimbe programele care le-au folosit. Prin urmare, a fost dezvoltat un sistem PAM, care este un „strat” între programe și mecanisme de autentificare. Adică acum programe de autentificare (de exemplu, programul log in) ar trebui să poată lucra numai cu sistemul PAM. Programul transmite PAM parametrii (de exemplu, autentificare și parolă) și acesta (programul) nu mai este „interesat” de ce metodă de autentificare este implementată în sistem - autentificare prin parolă sau smart card sau altă metodă. Lucrări ulterioare PAMși returnează programului fie succes, fie eșec.

Să ne uităm la sistem PAM mai multe detalii. Principalele funcții, sau acțiuni sau sarcini pe care le îndeplinește sistemul PAM- împărțit în patru grupe care au nume specifice:

grup auth- acestea sunt acțiuni legate direct de autentificare. Adică acțiuni sau funcții care vă permit să determinați că sunteți voi. Aceasta ar putea fi autentificarea prin parolă, autentificarea cu smart card, autentificarea biometrică (amprentă digitală etc.) și altele.

grup cont- Acestea sunt acțiuni legate de gestionarea contului. De exemplu, chiar dacă sunteți autentificat în sistem, contul dvs. poate fi interzis să funcționeze în anumite momente ale zilei. Sau permiteți conectarea în modul consolă, dar interziceți conectarea în modul grafic. etc.

grup sesiune- actiunile acestui grup aloca utilizatorului resursele necesare muncii. Cel mai simplu exemplu este permisiunea de a monta directoare.

grup parolă- acțiuni care implementează modificări în datele de autentificare a utilizatorilor. Cel mai adesea acestea sunt acțiuni de gestionare a parolelor utilizatorilor.

Toate aceste acțiuni sau proceduri (funcții) sunt implementate sub formă de module separate, care se află în director /lib/security/. Adică putem spune că există module de grup auth, module de grup cont etc. În consecință, sistemul PAM este modular și dacă trebuie să implementați autentificarea biometrică, atunci trebuie doar să instalați un modul care poate efectua această procedură.

Fișierul principal de configurare a sistemului PAM- acesta este un dosar /etc/pam.conf. Pe langa dosar /etc/pam.conf, setări PAM stocate în fișiere directoare /etc/pam.d/. In interiorul catalogului sunt fișiere text care conţin o succesiune de acţiuni (un anumit algoritm) pentru programele care utilizează PAM. De exemplu, fișier /etc/pam.d/login conține algoritmul de funcționare a sistemului PAM pentru program log in, și fișierul /etc/pam.d/passwd pentru program passwd.

Să ne uităm mai întâi la formatul fișierului /etc/pam.conf. Fișierul este format din rânduri. Fișierul poate consta dintr-o singură linie sau poate consta din mai multe linii care se adună într-un lanț de acțiuni secvențiale. Fiecare linie descrie o regulă sau un pas al unui astfel de lanț (algoritm). Linia este formată din patru câmpuri. Primul câmp este numele programului căruia i se aplică acest pas. Al doilea câmp este tipul de acțiune ( auth, cont, sesiune, parolă). Al treilea câmp este câmpul în care este stabilit comportamentul sistemului PAM după finalizarea acestui pas la acest pas al algoritmului (ne vom opri mai detaliat asupra acestei probleme mai jos). Al patrulea câmp este numele fișierului modulului. Linia poate conține, de asemenea, unii parametri trecuți la modul.

Structura fișierelor aflate în director /etc/pam.d/, aceeași. Singura diferență este absența primului câmp - numele. Deoarece numele programului este preluat din numele fișierului însuși. Să ne uităm la un exemplu de astfel de fișier. Să-l sunăm testpam.

auth suficient pam_rootok.so
auth required pam_unix.so
cont este necesar pam_unix.so

Să ne uităm la prima linie. Domeniu auth spune că primul pas este autentificarea. Al treilea câmp este modulul care va efectua autentificarea și va returna rezultatul execuției. În acest exemplu, modulul pam_rootok.so verifică dacă contul este root ( rădăcină). Dacă da, succesul va fi returnat (adevărat), dacă nu, eroarea sau eșecul va fi returnat (fals). Al doilea câmp este reacția sau impactul rezultatului asupra lanțului ca întreg.

Reacția poate fi de patru tipuri: necesar, necesar, opțional, suficient. Folosind linia exemplu auth suficient pam_rootok.so Să ne uităm la ce înseamnă aceste valori.

Dacă al doilea câmp este setat la necesar, atunci aceasta înseamnă că dacă modulul pam_rootok.so finalizat cu o eroare, apoi execuția ulterioară a fișierului testpam sistemul este întrerupt PAM returnează o eroare aplicației. Dacă modulul este returnat rezultat pozitiv, apoi execuția lanțului continuă.

necesar similar cu necesar. Dacă modulul pam_rootok.so s-a încheiat cu o eroare, atunci PAM va returna si o eroare, dar dupa ce modulele ramase au fost executate, adica lantul nu este intrerupt. Dacă modulul returnează un rezultat pozitiv, atunci execuția lanțului continuă.

suficient- dacă modulul pam_rootok.so a returnat succesul, apoi sistemul PAM returnează succesul aplicației și execuția ulterioară a lanțului este întreruptă. Dacă eșec, lanțul continuă să se execute.

opțional- acest parametru nu afectează în niciun fel progresul lanțului. Indicat pentru acele module care nu efectuează nicio acțiune de verificare. Dacă fișierul conține doar linii cu parametrul opțional, Asta PAM va readuce cererea la succes.

Mai multe detalii despre sistem PAM iar scopul unei anumite biblioteci poate fi citit pe site-ul http://kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_SAG.html. Acum să facem un mic exercițiu practic care ne va permite să înțelegem mai bine cum funcționează sistemul. PAMși cum să creați fișiere de configurare.

Accesați directorul /etc/pam.d/. Copiați fișierul suîn directorul dvs. de acasă (pentru a-l putea restaura) și ștergeți fișierul în su din director /etc/pam.d/. Acum încercați comanda suîn terminal pentru a comuta în modul superutilizator. După introducerea parolei, sistemul va afișa o eroare de autentificare deoarece lipsește fișierul de configurare pentru program su.

Creați un fișier /etc/pam.d/suși scrieți următorul rând în el:

Modul pam_deny.so returnează întotdeauna o eroare. Care va fi rezultatul? Verifică. Și dacă înlocuiești necesar pe necesar?
Acum să scriem următoarea regulă în fișier:

Modul pam_wheel.deci returnează succes dacă contul de utilizator aparține grupului roată. Dacă încercați să rulați comanda acum su, apoi se va încheia imediat cu o eroare. Adică acum echipa su Numai utilizatorii care sunt membri ai grupului vor putea executa roatăși cunoașteți parola contului rădăcină. Dacă creezi un grup roatăși adăugați-vă contul acolo, apoi comanda su va funcționa.

Iată un alt exemplu:

auth requisite pam_wheel.so
auth required pam_permit.so

Încercați să răspundeți cine poate executa cu succes comanda su si ce va trebui facut pentru asta?
Astfel se încheie exercițiul practic (nu uitați să-l întoarceți la locul său dosarul original su).

Vreau să subliniez încă o dată că fișierele de configurare din directorul /etc/pam.d/ pot fi create numai pentru fișierele care folosesc sistemul PAM. De exemplu, dacă creați un fișier /etc/pam.d/ls cu sfoară auth requisite pam_deny.so, apoi comanda ls va fi în continuare executat deoarece nu utilizează sistemul PAM. Pentru a verifica dacă o echipă folosește sistemul PAM, puteți folosi comanda ldd, care este transmisă calea completă către fișierul de comandă ca parametru. De exemplu:

Cuvânt cheie compat doar „spune” că sistemul va fi folosit ca sistem de autentificare PAM.

Și încă un lucru. Fii atent când experimentezi PAM. Prin ignoranță sau neglijență, vă puteți bloca cu ușurință sistemul. Prin urmare, înainte de a schimba ceva, asigurați-vă că salvați fișierele de configurare originale, astfel încât în ​​caz de probleme să le puteți restaura rapid.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații