SKZ udaljena provjera autentičnosti korisnika linux. Ispravljanje 'Pogreške manipulacije autentifikacijskim tokenom' na Ubuntu Linuxu. Stvaranje ključeva na tokenu

17.05.2020 Vijesti

  1. Spojite USB token na svoje računalo.
  2. Da biste odredili naziv modela USB tokena, otvorite Terminal i unesite naredbu:
$lsusb

Kao rezultat toga, naziv modela USB tokena bit će prikazan u prozoru terminala:

Obavezno koristite: Aktivni Rutoken ECP

Uvod

Pluggable Authentication Modules (PAM) skup su zajedničkih biblioteka koje vam omogućuju integraciju različitih metoda provjere autentičnosti niske razine u jedan API visoke razine. To nam omogućuje da pružimo jedinstvene mehanizme za upravljanje, ugradnju aplikacijski programi u proces autentifikacije.

Opći postupak za konfiguriranje PAM-a je sljedeći:

  1. Generirajte par RSA ključeva na tokenu (testirano je da radi za ključ duljine 2048 bita, bilo je problema s 1024)
  2. Ako je potreban certifikat, upotrijebite OpenSSL ili neki drugi softver za generiranje certifikata i zapišite ga u token
  3. Zapiši javni ključ ili certifikat u traženi imenik

Na kraju to izgleda ovako:



Preliminarna priprema

Demonstracija rada provodi se na Ubuntu 18.04. Opisani redoslijed radnji također je relevantan za druge verzije sustava Ubuntu i Debian.

Za konfiguraciju PAM modula morate instalirati sljedeće pakete:

  • pcscd
  • OpenSC
  • OpenSSL
  • libpam-p11
  • libengine-pkcs11-openssl

Sudo apt-get install pcscd opensc openssl libpam-p11 libengine-pkcs11-openssl

Korisnici Rutokena S također trebaju instalirati upravljački program s naše web stranice.

Opći postupak

Postavljanje pam_p11

Prije nego počnete raditi s tokenom, trebali biste konfigurirati modul pam_p11:

    Stvori datoteku /usr/share/pam-configs/p11 sa sljedećim sadržajem:

    Ime: Pam_p11 Zadano: da Prioritet: 800 Auth-Type: Primarni Auth: dovoljno pam_p11_opensc.so /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

    Ako ne koristite Ubuntu 18.04, trebate provjeriti lokaciju opensc-pkcs11.so. Može se nalaziti, na primjer, u

    /usr/lib/opensc-pkcs11.so. Ako ga ne možete pronaći, koristite naredbu find

    Ažurirajte PAM konfiguraciju:

    Sudo pam-auth-update

  1. U dijaloškom okviru koji se pojavi morate biti sigurni da je odabrana pam_p11. Ako želite onemogućiti autentifikaciju lozinkom, možete onemogućiti Unix autentifikaciju.

    Stvaranje ključeva na tokenu

  2. Pripremimo žeton.

    $ pkcs15-init -E $ pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk "" $ pkcs15-init --store-pin --label "Korisnički PIN" --auth- id 02 --pin "12345678" --puk "" --so-pin "87654321" --finalize

    U parametrima pin i so-pin možete odrediti željene korisničke i administratorske pin kodove.

    Stvaramo par ključeva RSA duljine 2048 bita s ID-om "45" (vrijedi zapamtiti ID, bit će potreban prilikom izrade certifikata). Provjera autentičnosti tokena događa se pod korisničkim entitetom.

    $ pkcs15-init --generiraj ključ rsa/2048 --auth-id 02 --id 45<вводим PIN пользователя>

    Provjerimo generirani ključ:

    $ pkcs15-tool --list-keys Korištenje čitača s karticom: Aktiv Rutoken ECP 00 00 Private RSA Key Object Flags: , private, promjenjivo Upotreba: , sign Access Flags: , osjetljivo, alwaysSensitive, neverExtract, lokalna ModLength: 2048 Ključna ref : 1 (0x1) Izvorni: da Put: 3f001000100060020001 ID autorizacije: 02 ID: 45

    Stvaranje certifikata i uvoz na token

  3. Pokrenite openssl

    Učitavanje pkcs11 modula podrške:

    OpenSSL> dinamički motor -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/x86_64- linux-gnu/opensc-pkcs11.so (dinamički) Podrška za dinamičko učitavanje motora : SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so : ID:pkcs11 : LIST_ADD:1 : LOAD : MODULE_PATH: /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so Učitano: (pkcs11) pkcs11 motor OpenSSL>

    Ako ne koristite Ubuntu 18.04, trebate provjeriti lokaciju pkcs11.so. Može se nalaziti, na primjer, u /usr/lib/openssl/engines/. Ako ga ne možete pronaći, koristite naredbu find

    Napravite samopotpisani certifikat u PEM formatu:

    OpenSSL> req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out cert.pem -text

    Gdje je 0:45 par slot:id (što smo naznačili u koraku 5). OpenSSL će od vas tražiti da unesete svoj PIN i ispunite podatke o certifikatu. Ako dobijete pogrešku, provjerite jesu li neki drugi USB tokeni ili čitači pametnih kartica spojeni na vaše računalo.

    Provjeravamo izrađeni certifikat. Samopotpisana datoteka certifikata pod nazivom cert.pem trebala bi biti kreirana u trenutnom direktoriju.
    Napomena: ako uklonite ključ -x509 prilikom stvaranja certifikata u OpenSSL-u, tada će izlaz biti aplikacija za certifikat.

    Bilješka

    Tijekom faze odabira korisnika informacije o povezanom tokenu možda se neće dinamički ažurirati. Ako ste povezali token i ne vidite polje za unos PIN-a, možda ćete morati promijeniti fokus na "gostujuću sesiju" i natrag na svog korisnika.

Ako ste Linux administrator i želite maksimalno povećati sigurnost svojih poslužitelja i desktop računala, vjerojatno ste razmišljali o korištenju dvofaktorske provjere autentičnosti. Općenito, toplo se preporučuje svima da ga postave, budući da dvofaktorska autentifikacija znatno otežava napadačima pristup vašim strojevima.

Linux vam omogućuje da konfigurirate svoje računalo tako da se ne možete prijaviti na konzolu, radnu površinu ili putem Secure Shell bez koda za provjeru autentičnosti s dva faktora povezanog s ovim strojem. Pogledajmo cijeli postupak postavljanja sustava Ubuntu poslužitelj 16.04.

Uvod

Prije nego što počnete, morate uzeti u obzir jednu činjenicu - nakon što postavite dvofaktorsku autentifikaciju, nećete moći pristupiti svom računalu bez kodova koje su generirale treće strane. Svaki put kada se želite prijaviti, trebat će vam ili vaš pametni telefon ili kodovi za hitne slučajeve, koji se mogu konfigurirati tijekom procesa.

Trebat će nam Linux poslužitelj ili desktop. Provjerite je li sustav ažuran i ima li sigurnosna kopija vaših podataka u slučaju nepredviđenih okolnosti. Za izradu dvofaktorskih kodova koristit ćemo se aplikacija treće strane, kao što su Authy ili Google Authenticator. Uobičajeno, koristit ćemo Google Authenticator, koji se prvo mora instalirati.

Montaža

Prijavite se u sustav i slijedite ove korake:

  1. Otvorite prozor terminala.
  2. Pokrenite naredbu: sudo apt instalirajte libpam-google-authenticator.
  3. Unesite svoju sudo lozinku i pritisnite Enter.
  4. Ako se od vas zatraži potvrda, upišite "y" i pritisnite Enter.
  5. Pričekajte da instalacija završi.

Sada je vrijeme da postavite svoje računalo za dvofaktorsku autentifikaciju.

Konfiguracija

Vratite se u prozor terminala i unesite naredbu: sudo nano /etc/pam.d/common-auth. Dodajte sljedeći redak na kraj datoteke:

Spremite i zatvorite ovu datoteku.

Sada moramo konfigurirati Google Authenticator za svakog korisnika koji bi trebao imati pristup sustavu. Da biste to učinili, morate se vratiti u prozor terminala i u ime korisnika kojem planirate dodijeliti pristup, pokrenuti naredbu google-authenticator. Ovdje ćete morati odgovoriti na par pitanja.

Prvo pitanje glasi: "Želite li da se tokeni za provjeru autentičnosti temelje na vremenu (da/ne)". Odgovorite "y" i dobit ćete QR kod. Otvorite aplikaciju dva faktora na pametnom telefonu, dodajte račun i skenirajte ovaj QR kod.

Slika 1. Primljeni QR kod

Nakon što dodate kod, preostalo je još nekoliko pitanja za odgovoriti:

  • Želite li da ažuriram vašu datoteku "/home/jlwallen/.google_authenticator" (y/n) - Želite li ažurirati datoteku /home/jlwallen/.google_authenticator;
  • Želite li onemogućiti višestruku upotrebu istog autentifikacijskog tokena (y/n)? - Želite li onemogućiti mogućnost ponovne upotrebe jednog tokena više puta? Ova postavka dopušta samo jednu prijavu svakih 30 sekundi. Ako je ova opcija uključena, povećavaju se vaše šanse da primijetite ili čak spriječite napad čovjeka u sredini.
  • Budući da je zadana vrijednost 30 sekundi, a vremena poslužitelja i klijenta mogu se neznatno razlikovati, moguće je koristiti neki dodatni token. Stoga, ako imate problema sa sinkronizacijom, možete povećati vrijeme prozora na oko 4 minute. Želiš li to učiniti? - Želite li to učiniti (y/n).
  • Ako niste sigurni kako zaštititi svoje računalo od napada brutalnom silom, možete omogućiti ograničenje brzine za modul provjere autentičnosti. Prema zadanim postavkama, ovo su maksimalno 3 pokušaja prijave svakih 30 sekundi. Želite li omogućiti ograničenje brzine? - Želite li omogućiti ograničenje brzine (da/ne)

Na svako pitanje odgovorite potvrdno upisivanjem “y” i pritiskom na Enter.

Postavljanje SSH-a

Sljedeći korak je konfiguracija SSH-a za rad dvofaktorska autentifikacija. Ako preskočite ovaj korak, nećete se moći prijaviti putem SSH-a.

Prvo morate omogućiti PAM modul. Da biste to učinili, upišite naredbu: sudo nano /etc/pam.d/sshd. Nakon otvaranja datoteke dodajte sljedeći redak na kraj datoteke:

potrebna autentifikacija pam_google_authenticator.so nullok

Spremite ovu datoteku i zatim pokrenite naredbu: sudo nano /etc/ssh/sshd_config. U ovoj datoteci nalazimo:

ChallengeResponseAuthentication br

I promijenite to u:

ChallengeResponseAuthentication da

Spremite ovu datoteku i ponovno pokrenite sshd - sudo systemctl ponovno pokrenite sshd.

Prijaviti se

Prije odjave toplo preporučamo da otvorite novi prozor terminala i pokušate se prijaviti putem SSH-a. Ako ovo ne uspije, ponovite sve gore navedene korake, pazeći da niste ništa propustili. Nakon što ste se uspješno prijavili putem SSH-a, možete se odjaviti i ponovno prijaviti.

zaključke

Nedavno smo mijenjali korisničku lozinku u Linuxu kada smo naišli na pogrešku: Pogreška manipulacije autentifikacijskim tokenom.

Koristili smo normalnu naredbu passwd za promjenu lozinke i dala nam je ovu pogrešku i lozinka nije promijenjena.

Sudo passwd my_user_name Promjena lozinke za korisnika my_user_name Promjena lozinke za tecmint (trenutačnu) UNIX lozinku: passwd: Greška manipulacije autentifikacijskim tokenom passwd: lozinka nepromijenjena

Ispravljanje pogreške manipulacije autentifikacijskim tokenom u Ubuntuu

"Pogreška manipulacije autentifikacijskim tokenom" znači da iz nekog razloga promjena lozinke nije uspjela.

Za to može postojati nekoliko razloga. U jednostavnim slučajevima, glavni uzrok problema ćete vidjeti u samom izlazu. Na primjer, ako niste dali lozinku, trebali biste je vidjeti u pogrešci:

Nije navedena lozinka passwd: pogreška manipulacije tokenom autentifikacije passwd: lozinka nepromijenjena

Isto tako, ako ponovni unos lozinke ne odgovara, prikazat će se i ove informacije:

Žao nam je, lozinke se ne podudaraju passwd: pogreška manipulacije tokenom autentifikacije passwd: lozinka nepromijenjena

Lako je jer znate što je uzrokovalo problem i na temelju toga možete poduzeti korektivne mjere. Ali možda nećete uvijek imati sreće jer u nekim slučajevima nećete vidjeti ništa korisna informacija, samo greška.

Pogledajmo neke od ovih slučajeva i riješimo ovaj problem.

Metoda 1

Ako ste upoznati sa strukturom direktorija Linuxa, znate da direktorij /etc/shadow pohranjuje lozinku u šifriranom formatu zajedno s drugim informacijama o korisnicima i njihovim lozinkama.

Zbog toga morate biti sigurni da imate dopuštenje za čitanje i pisanje ove datoteke. Budući da ćete mijenjati lozinku kao superkorisnik, ova datoteka mora imati dozvole za čitanje i pisanje za root.

Ako nije, morate postaviti ispravnu rezoluciju:

Sudo chmod 640 /etc/shadow

Metoda 2

Metoda 1 će raditi u većini slučajeva. Ali u našem slučaju, morali smo ponovno montirati root particiju s dopuštenjima za čitanje i pisanje. Pokušali smo resetirati administratorsku lozinku u Ubuntuu.

Montiraj -rw -o ponovno montiraj /

U nekim rijetkim slučajevima, vaš disk može biti toliko pun da nećete moći napraviti nikakve promjene u datoteci /etc/shadow. Ali ako je to slučaj, tada ćete se suočiti s mnogim drugim problemima.

Je li vam ovo uspjelo?

Podijelili smo što je nama uspjelo i možemo se samo nadati da će uspjeti i vama. Jesi li to učinio? Koja vam je metoda uspjela? Navedite to u komentarima.

Od 2020. upotreba šifriranja u skladu s GOST R 34.10-2001 bit će zabranjena, što znači da su sve organizacije koje komuniciraju s vladinim agencijama prisiljene hitno implementirati sljedeći standard - 2012. Ako radite u jednom od njih, nemojte prolaziti: u ovom članku ćemo govoriti o tome kako riješiti problem pomoću poslužitelja na CentOS 7 i CryptoPro paket JCP.

Ako prvi put čujete za sve ovo, onda evo malo povijesne pozadine.

Godine 1994. FSB je razvio niz standarda i mjera namijenjenih zaštiti razmjene dokumenata između organizacija i drugih sudionika u ovom procesu. Jedna od tih sigurnosnih mjera bio je elektronički digitalni potpis dokumenata, a jedan od standarda bio je GOST R 34.10-94, koji opisuje algoritam za generiranje i provjeru elektroničkih digitalni potpis. Usvojen i stavljen na snagu dekretom Državnog standarda Rusije od 23. svibnja 1994., broj 154, radio je do 2001. godine.

Zamijenio ga je dobro poznati GOST R 34.10-2001 - poboljšani standard dizajniran da osigura veću stabilnost algoritma. Ali vrijeme ne stoji, mijenjaju se algoritmi i metode kriptografske zaštite, a jedanaest godina kasnije GOST R 34.10-2001 mijenja se u GOST R 34.10-2012.

U novom standardu, prva verzija zahtjeva za parametre ostaje ista. Duljina tajnog ključa je oko 256 bita, a moguće je koristiti hash funkciju s duljinom hash koda od 256 ili 512 bita. Glavna razlika između novog standarda su opcije sa dodatni parametri i sheme, uključujući raspršivanje prema standardu GOST R 34.11-2012 "Stribog".

INFO

Stribog je bog starih Slavena, koji je pokrovitelj vjetrova, vremena i svega što je povezano sa zračnim prostorom. Možda tehnologije u oblaku Isti. Pročitajte više o ovoj šifri u člancima “” i “”.

U veljači 2014. FSB je najavio početak prijelaza na korištenje nove nacionalne norme GOST R 34.10-2012 u sredstvima Elektronički potpis za podatke koji ne sadrže podatke koji predstavljaju državnu tajnu. Objavljen je dokument broj 149/7/1/3-58 od 31. siječnja 2014. „O postupku prijelaza na korištenje novih standarda digitalnog potpisa i funkcija raspršivanja“ kojim su utvrđeni sljedeći zahtjevi.

  1. Nakon 31. prosinca 2013. prestati certificirati alate za elektronički potpis za usklađenost sa zahtjevima za alate za elektronički potpis odobrene Naredbom br. 796 FSB-a Rusije od 27. prosinca 2011., ako ti alati ne osiguravaju provedbu funkcija u skladu s s GOST R 34.10-2012.
  2. Nakon 31. prosinca 2018. zabraniti korištenje GOST R 34.10-2001 za generiranje elektroničkog potpisa.

Ministarstvo komunikacija čak je izradilo i plan prelaska na standard (PDF). Međutim, u praksi se pokazalo da sve nije tako jednostavno i prijelaz je morao biti odgođen do 31. prosinca 2019. Razlozi su sljedeći.

  1. Mnoge državne i općinske vlasti nisu spremne prijeći na novi standard elektroničkog potpisa GOST-2012 zbog nedostatka podrške na razini softvera.
  2. Za izdavanje novih certifikata potrebna vam je oprema koja podržava novi GOST, i potvrdu glavnog tijela za izdavanje certifikata, generiran pomoću GOST-2012. Certifikacijski centri su ga dobili tek u ljeto 2018. Za izdavanje certifikata svim korisnicima potrebno je dodatno vrijeme.

Trenutno su u upotrebi dva standarda kriptografske zaštite: EDS rad, ali oni koji koriste GOST-2001 hitno moraju nešto učiniti. Zima, kako kažu, dolazi, a to znači da nas čeka niz testova prilikom implementacije podrške za GOST-2012.

Reći ću vam kako implementirati FSB-certificirani CIPF alat (CryptoPro JCP) na Linux poslužitelj koji izvodi Java JDK. Usput, ako još uvijek koristite GOST-2001, na web stranici CryptoPro postoji prekrasan, savjetujem vam da ga pročitate, neće biti suvišno.

Sav protok dokumenata između sudionika razmjene odvija se prema principu SMEV (sustav međuodjelske elektroničke interakcije). Aplikacija može biti sudionik u takvom sustavu, ali ne može uopće biti sudionik, što ne mijenja princip razmjene dokumenata. Radi lakšeg razumijevanja, nacrtao sam mali dijagram.


Cijene

Kao i uvijek, postavlja se pitanje licenciranja softverskog rješenja. CryptoPro JCP nije jeftin, a ako jedna radna stanica košta 1200 rubalja, tada su poslužiteljske licence puno skuplje - oko 30 000 za svaku jezgru (ili dvije jezgre Intelov procesor s onemogućenim Hyper Threadingom).

Instalacija i konfiguracija kriptoprovajdera

U primjerima koje ću koristiti virtualni stroj s CentOS 7, ali vaš izbor nije ograničen hardver I Linux distribucija. Sve radnje i naredbe bit će iste.

Prije svega, kreirajmo lokalnog korisnika pod kojim će se pokretati softver koji koristi potpisivanje dokumenata.

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

Instalirajmo Java JDK ispravno. Preuzmite potrebnu distribuciju.

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

Raspakirajte arhivu i provjerite je li Java mapa spremna za kopiranje.

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

Kopirajte mapu u odjeljak aplikacijskog softvera. Obično koristim /opt.

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

Provjeravamo je li ispravno kopirano. Ako je potrebno, promijenite vlasnika mape u 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;

Registriramo se varijable okoline za Java JDK za sve korisnike prema zadanim postavkama.

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

U datoteku pišemo sljedeće:

Izvoz JAVA_HOME=/opt/jdk1.8.0_191 izvoz JRE_HOME=/opt/jdk1.8.0_191/jre izvoz PATH=$PATH:/opt/jdk1.8.0_191/bin:/opt/jdk1.8.0_191/jre/bin

Ako poslužitelj ima nekoliko verzija Java JDK-a, tada je potrebno registrirati alternative za nova verzija.

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

U izborniku odaberite opciju 2 (ili onu koja će dovesti do korištenja novijeg Java verzije). Ne zaboravite ispraviti prava na JRE systemPrefs.

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

Provjeravanje instalirana verzija Java.

$ java -verzija
java verzija "1.8.0_191"
Java(TM) SE Runtime Environment (verzija 1.8.0_191-b12)
Java HotSpot(TM) 64-bitni poslužitelj VM (verzija 25.191-b12, mješoviti način)

Kopirajte mapu s CryptoPro JCP distribucijskim kompletom u odjeljak aplikacijskog softvera.

$ sudo cp -rf jcp-2.0.40035 /opt/

Provjeravamo je li sve ispravno kopirano.

$ ls -al /opt/jcp-2.0.40035/

Dajemo prava za pokretanje skripti.

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

Provjeravamo vlasnika i prava na mapu, mora biti root. Idemo u to.

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

Kako biste izbjegli probleme s instalacijom, provjerite broj jezgri na procesoru i provjerite licencu. Možete saznati broj jezgri s nproc naredbom.

Prijeđimo na instaliranje JCP crypto providera. Tijekom instalacije morat ćete odgovoriti na brojna pitanja.

Nastavak je dostupan samo članovima

Opcija 1. Pridružite se zajednici "site" kako biste pročitali sve materijale na stranici

Članstvo u zajednici unutar navedenog razdoblja omogućit će vam pristup SVIM hakerskim materijalima, povećati vaš osobni kumulativni popust i omogućiti vam da skupite profesionalnu ocjenu Xakep Score!