Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

Lihtsad paroolid ei kaitse, keerulisi on aga keeruline meeles pidada. SeetĂ”ttu satuvad need sageli klaviatuuri alla vĂ”i monitori kĂŒlge kleebitud kleepsude peale. Selleks, et paroolid jÀÀksid unustavate kasutajate mĂ”tetes ja kaitse usaldusvÀÀrsus ei vĂ€heneks, on olemas kahefaktoriline autentimine (2FA).

Kombineerides seadme omamise tegurit ja selle PIN-koodi teadmist, vĂ”ib PIN-kood ise olla lihtsam ja kergemini meeldejÀÀv. PIN-koodi pikkuse vĂ”i juhuslikkuse puudujÀÀgid kompenseeritakse fĂŒĂŒsilise omamise nĂ”udmise ja PIN-koodi rĂŒndamise piirangutega.

Lisaks on riigiasutustes vahel soov, et kÔik töötaks vastavalt riiklikule standardile. Sellest kahefaktorilise autentimise variandist, mis mÔeldud Linuxi sisselogimiseks, on juttu. Alustan algusest.

PAM-moodulid

Paigaldatavad autentimismoodulid (Pluggable Authentication Modules, PAM) on moodulid, millel on standardne API ja erinevate autentimismehhanismide rakendused rakendustes.
KĂ”ik utiliidid ja rakendused, mis oskavad PAM-iga töötada, haaravad need ja saavad kasutada sĂŒsteemi autentimiseks.
Praktikas toimib see enamasti jÀrgmiselt: login meeskond pöördub PAM-i poole, mis teostab kÔik vajalikud kontrollid konfigureeritud moodulite abil ja tagastab tulemuse tagasi login meeskonnale.

librtpam

EttevĂ”tte „Aktiv“ vĂ€lja töötatud moodul lisab kasutajate kahefaktorilise autentimise nutikaartide vĂ”i USB-tokenite abil, kasutades asĂŒmmeetrilisi vĂ”tmeid, vastavalt uusimatele kodumaistele krĂŒptograafia standarditele.

Vaatame selle tööpÔhimÔtet:

  • tokenil on salvestatud kasutaja sertifikaat ja tema privaatvĂ”ti;
  • sertifikaat on salvestatud kasutaja kodukaustas usaldusvÀÀrsena.

Autentimisprotsess toimub jÀrgmiselt:

  1. Ruthokenil otsitakse kasutaja isiklikku sertifikaati.
  2. KĂŒsimiseks on vajalik tokeni PIN-kood.
  3. Juhtub, et juhuslikud andmed allkirjastatakse privaatvÔtme abil otse Ruthokeni kiibil.
  4. Saadud allkiri kontrollitakse kasutaja sertifikaadi avaliku vÔtme abil.
  5. Moodul tagastab kutsuvasse rakendusse allkirja kontrollimise tulemuse.

Autentimist saab teostada ka HEOST R 34.10-2012 vÔtmetega (pikusega 256 vÔi 512 bitti) vÔi aegunud HEOST R 34.10-2001 vÔtmetega.

Klukkide turvalisuse pĂ€rast ei tasu muretseda – need genereeritakse otse Ruutokenis ja ei lahku kunagi selle mĂ€lust krĂŒptograafiliste operatsioonide ajal.

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

Ruutoken ECP 2.0 on sertifitseeritud FSB ja FSTEK poolt NDV 4 kohaselt, seega vĂ”ib seda kasutada teabehaldussĂŒsteemides, mis töötlevad konfidentsiaalset teavet.

Praktiline kasutamine

Sobib praktiliselt iga kaasaegne Linux, nÀiteks kasutame xUbuntu 18.10.

1) Paigaldame vajalikud paketid

sudo apt-get install libccid pcscd opensc
Kui soovite lisada töölaua lukustuse ekraanisÀÀstjaga – paigaldage lisaks pakett libpam-pkcs11.

2) Lisame PAM-mooduli, mis toetab GOST-e

Laeme alla teegi, mille nimi on https://download.rutoken.ru/Rutoken/PAM/
Kopeerime PAM kausta librtpam.so.1.0.0 sisu sĂŒsteemikausta
/usr/lib/ vÔi /usr/lib/x86_64-linux-gnu/vÔi /usr/lib64

3) Paigaldame paketi librtpkcs11ecp.so

Lae alla ja paigalda DEB- vÔi RPM-pakett jÀrgmisel lingil: https://www.rutoken.ru/support/download/pkcs/

4) Kontrollime, et Ruutoken ECP 2.0 töötab sĂŒsteemis

Terminaalis tÀidame
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Kui nĂ€ete rida Rutoken ECP – siis on kĂ”ik korras.

5) Loeme sertifikaadi

Kontrollime, kas seadmes on sertifikaat
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Kui pÀrast rida:
Kasutage pesad 0 koos esitatud tokeniga (0x0)

  • kuvatakse teave vĂ”tmete ja sertifikaatide kohta, siis tuleb sertifikaat lugeda ja salvestada kettale. Selleks tĂ€itke jĂ€rgmine kĂ€sk, kus {id} asemel tuleb sisestada sertifikaadi ID, mille nĂ€gite eelmise kĂ€su vĂ€ljundis:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    Kui fail cert.crt on loodud, liikuge punkti 6 juurde.
  • ei ole midagi, tĂ€hendab seade on tĂŒhi. Palun vĂ”tke ĂŒhendust administraatori vĂ”i looge vĂ”tmed ja sertifikaat ise, jĂ€rgides jĂ€rgmist punkti.

5.1) Loome testsertifikaadi

TĂ€helepanu! Kirjeldatud vĂ”tmete ja sertifikaatide loomise viisid sobivad testimiseks ega ole mĂ”eldud kasutamiseks tootmisreĆŸiimis. Selleks tuleb kasutada teie organisatsiooni usaldusvÀÀrse sertifitseerimiskeskuse vĂ”i akrediteeritud sertifitseerimisasutuse vĂ€ljastatud vĂ”tmeid ja sertifikaate.
PAM-moodul on loodud kaitseks kohalike arvutite eest ja on mÔeldud vÀikeste organisatsioonide kasutamiseks. Kuna kasutajaid on vÀhe, saab administraator ise jÀlgida sertifikaatide kehtivust ja blokeerida konto vajadusel, samuti jÀlgida sertifikaatide kehtivusaega. PAM-moodul ei suuda veel sertifikaate CRL kaudu kontrollida ega usalduskette luua.

Lihtne tee (brauseri kaudu)

Testsertifikaadi saamiseks kasutage veebiteenust „Rukuteni registreerimiskeskus”. Protsess vĂ”tab aega mitte rohkem kui 5 minutit.

Giku tee (konsoli ja vÔimaliku kompilaatori kaudu)

Kontrollige OpenSC versiooni
$ opensc-tool --version
Kui versioon on vÀiksem kui 0.20, siis vÀrskendage vÔi kompileerige pkcs11-tool haru, mis toetab GOST-2012 meie GitHub-ist (selle artikli avaldamise ajal ei olnud vabanenud versioon 0.20) vÔi OpenSC pÔhiprojekti master harust mitte hiljem than commit 8cf1e6f

Genereerime vÔtmepaari jÀrgmiste parameetritega:
--key-type: GOSTR3410-2012-512:A (GOST-2012 512 bit koos parameetritega A), GOSTR3410-2012-256:A (GOST-2012 256 bit koos parameetritega A)

--id: objekti identifikaator (CKA_ID) esindatud kahetoimeliste sĂŒmbolite number jĂ€rjendis hex ASCII tabelist. Kasutage ainult ASCII-koodide trĂŒkisĂŒmboleid, kuna id peab olema edastatud OpenSSL-ile stringina. NĂ€iteks ASCII-koodidega “3132” vastab string «12». Mugavuse huvides saate kasutada stringi ASCII-koodideks konvertimise veebiteenust.

$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132

SeejĂ€rel loome sertifikaadi. Allpool on kirjeldatud kahte vĂ”imalust: esimene lĂ€bi CA (kasutame test CA-d), teine – enda allkirjastatud. Selleks tuleb esmalt installida ja seadistada OpenSSL versioon 1.1 vĂ”i uuem, et töötada Ruutokeniga spetsiaalse mooduli rtengine kaudu, jĂ€rgides juhendit. OpenSSL-i installimine ja seadistamine.
NĂ€iteks: ‘--id 3132’ OpenSSL-is tuleb tsiteerida «pkcs11:id=12«.

Saate kasutada test CA teenuseid, mida on palju, nÀiteks, siin on, siin on ja siin on, selleks loome sertifikaadi taotluse

Teine variant – vĂ”ite laiskust nĂ€idata ja luua enda allkirjastatud
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Laadige sertifikaat seadmesse
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) Registreerige sertifikaat sĂŒsteemis

Veenduge, et teie sertifikaat nÀeb vÀlja nagu base64 fail:

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

Kui teie sertifikaat nÀeb vÀlja niimoodi:

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

sertifikaat tuleb konverteerida DER-formaadist PEM-formaati (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Kontrollime taas, et nĂŒĂŒd on kĂ”ik korras.

Lisame sertifikaadi usaldusvÀÀrsete sertifikaatide nimekirja
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Viimane rida kaitseb usaldusvÀÀrsete sertifikaatide nimekirja juhuslike vÔi tahtlike muudatuste eest teiste kasutajate poolt. See vÀlistab olukorra, kus keegi lisaks siia oma sertifikaadi ja saaks teie nimel sisselogida.

7) Seame ĂŒles autentimise

Meie PAM mooduli seadistamine on tÀiesti tavaline ja toimub tÀpselt samamoodi nagu teiste moodulite seadistamine. Loome faili /usr/share/pam-configs/rutoken-gost-pam mis sisaldab mooduli tÀielikku nime, kas see on vaikimisi lubatud, mooduli prioriteet ja autentimise parameetrid.
Autentimise parameetrites on nÔudmisi operatsiooni edukuse kohta:

  • required (nĂ”utav): sellised moodulid peavad tagastama positiivse vastuse. Kui mooduli vĂ€ljakutse tulemus sisaldab negatiivset vastust, toob see kaasa autentimise tĂ”rke. PĂ€ring lĂŒkatakse tagasi, kuid teised moodulid kutsutakse siiski esile.
  • requisite (vajalik): sarnane required-ile, kuid toob kohe kaasa autentimise tĂ”rke ja ignoreerib ĂŒlejÀÀnud mooduleid.
  • piisav (sufficient): kui enne sellist moodulit ei ole ĂŒkski moodul required vĂ”i sufficient tagastanud negatiivset tulemust, tagastab moodul positiivse vastuse. ÜlejÀÀnud mooduleid ignoreeritakse.
  • valikuline (optional): kui virnas ei ole mooduleid required ja ĂŒkski moodul sufficient ei tagastanud positiivset tulemust, peab vĂ€hemalt ĂŒks valikuline moodul tagastama positiivse vastuse.

Faili tÀisteave /usr/share/pam-configs/rutoken-gost-pam:
Nimi: Rutoken PAM GOST
Vaikimisi: jah
Prioriteet: 800
Autentimise tĂŒĂŒp: Peamine
Autentimine: piisav /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

salvestame faili, pÀrast seda tÀidame
$ sudo pam-auth-update
avatavas aknas paneme tÀhe Rutoken PAM GOST ja vajutame OK

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

8) Kontrollime seadistust

Kuidas mÔista, et kÔik on seadistatud, kuid samas mitte kaotada sisenemise vÔimalust, tippige kÀsk
$ sudo login
Sisestage kasutajanimi. KĂ”ik on Ă”igesti seadistatud, kui sĂŒsteem nĂ”uab seadme PIN-koodi.

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

9) Seame arvuti lukustamise mooduli vÀljavÔtmisel

Paketi koosseisu libpam-pkcs11 kuulub utiliit pkcs11_eventmgr, mis vĂ”imaldab teostada erinevaid toiminguid PKCS#11 sĂŒndmuste tekkimisel.
Seadmise jaoks pkcs11_eventmgr on konfiguratsioonifail: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Erinevate Linuxi distributsioonide puhul on kĂ€sk, mis kutsub vĂ€lja konto blokeerimise nutika kaardi vĂ”i ĆŸetooni eemaldamisel, erinev. Vt. event card_remove.
Konfiguratsioonifaili nÀidis on esitatud allpool:

pkcs11_eventmgr
{
    # Taustal kÀivitamine
    daemon = true;
     
    # Silumise teate seadistamine
    debug = false;
 
    # KĂŒsimise aeg sekundites
    polling_time = 1;
 
    # Kaardi eemaldamise taimer
    # Vaikimisi 0
    expire_time = 0;
 
    # Valige pkcs11 teek Rootokeni jaoks
    pkcs11_module = usr/lib/librtpkcs11ecp.so;
 
    # Kaardiga toimetamine
    # Kaart on sisestatud:
    event card_insert {
        # JĂ€tame vaikeseaded (midagi ei toimu)
        on_error = ignore;
 
        action = "/bin/false";
    }
 
    # Kaart on eemaldatud
    event card_remove {
        on_error = ignore;
         
        # Kutsub vÀlja ekraanilukustamise funktsiooni
        
        # GNOME'i jaoks 
        action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";
        
        # XFCE jaoks
        # action = "xflock4";
        
        # Astra Linuxi (FLY) jaoks
        # action = "fly-wmfunc FLYWM_LOCK";
    }
 
    # Kaart on pikka aega eemaldatud
    event expire_time {
        # JĂ€tame vaikeseaded (midagi ei toimu)
        on_error = ignore;
 
        action = "/bin/false";
    }
}

PÀrast seda lisage rakendus pkcs11_eventmgr automaatkÀivitamiseks. Selle jaoks redigeerige faili .bash_profile:
$ nano /home//.bash_profile
Lisage faili lÔppu rida pkcs11_eventmgr ja taaskÀivitage arvuti.

Kirjeldatud sammud operatsioonisĂŒsteemi seadistamiseks vĂ”ivad toimida juhendina igas kaasaegses Linuxi distributiivis, sealhulgas kodumaisetes.

Kuidas kasutada PAM-mooduleid kohaliku autentimise jaoks Linuxis GOST-2012 vÔtmete pÔhjal Rutanoki abil

KokkuvÔte

Linuxi PC-d on Venemaa riigiasutustes ĂŒha populaarsemad, kuid usaldusvÀÀrse kahefaktorilise autentimise seadistamine selles operatsioonisĂŒsteemis ei ole alati lihtne. Oleme rÔÔmsad, et saame selle juhendiga aidata lahendada "parooliprobleeme" ja kindlustada juurdepÀÀs arvutitele, kulutamata selleks liiga palju aega.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster