Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

Lihtsad paroolid ei kaitse ja keerulisi on vĂ”imatu meeles pidada. SeetĂ”ttu satuvad need sageli klaviatuuri alla vĂ”i kĂ”rvale postitatud sticky note'ile. Et paroolid jÀÀksid „unustavate” kasutajate mĂ€llu ning kaitse usaldusvÀÀrsus ei vĂ€heneks, on olemas kahefaktoriline autentimine (2FA).

SĂ”ltuvalt seadme omamisest ja PIN-koodi teadmisest vĂ”ib ise PIN-kood olla lihtsam ja kergem meeles pidada. LĂŒhikese vĂ”i juhusliku PIN-koodi puudused kompenseerivad fĂŒĂŒsilise omamise nĂ”uded ja piirangud PIN-koodi proovimisele.

Lisaks on riigiasutustes sageli soov, et kÔik toimiks vastavalt riiklikele standarditele. Sellest kahekordse autentimise variandist Linuxi sisenemisel juttu tuleb. Alustan kaugemalt.

PAM-moodulid

Plug-in autentimise moodulid (Pluggable Authentication Modules, PAM) on moodulid standardse API ja erinevate autentimismehhanismide rakendustega rakendustes.
KÔik tööriistad ja rakendused, mis oskavad PAM-iga töötada, vÔtavad need kasutusele ja saavad neid kasutada kasutaja autentimiseks.
Töös on see umbes nii: kÀsk login pöördub PAM-i poole, mis sooritab kÔik vajalikud kontrollid konfigureerimisfailis mÀÀratud moodulite abil ja tagastab tulemuse tagasi kÀskudele login.

librtpam

EttevĂ”tte Aktiiv vĂ€lja töötatud moodul lisab kahefaktorilise autentimise kasutajatele nutikaartide vĂ”i USB-tokenitega, kasutades asĂŒmmeetrilisi vĂ”tmeid viimaste kodumaiste krĂŒptograafia standardite kohaselt.

Vaatleme selle tööpÔhimÔtet:

  • tokenil on talletatud kasutaja sertifikaat ja tema privaatvĂ”ti;
  • sertifikaat on salvestatud kasutaja kodukatalooge kui usaldusvÀÀrne.

Autentimise protsess toimub jÀrgmiselt:

  1. RĂŒtokenil otsitakse kasutaja isiklikku sertifikaati.
  2. KĂŒside tokeni PIN-koodi.
  3. Juhtub, et juhuslikke andmeid allkirjastatakse privaatvĂ”tmega otse RĂŒtokeni kiibis.
  4. Saadud allkiri kontrollitakse kasutaja sertifikaadi avaliku vÔtmega.
  5. Moodul tagastab kutsuvatele rakendustele allkirja kontrollimise tulemuse.

Saate autentida vastavalt GOST R 34.10-2012 vÔtmetele (pikkusega 256 vÔi 512 bitti) vÔi aegunud GOST R 34.10-2001.

VĂ”tmete turvalisuse pĂ€rast ei pea muretsema – need genereeritakse otse RŃƒŃ‚ĐŸĐșĐ”Đœis ja ei lahku kunagi oma mĂ€lust krĂŒptograafiliste operatsioonide ajal.

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

RŃƒŃ‚ĐŸĐșĐ”Đœ ЭЩП 2.0 on sertifitseeritud FSB ja FSTEK poolt vastavalt NДВ 4, mistĂ”ttu vĂ”ib seda kasutada teabe sĂŒsteemides, mis töötlevad konfidentsiaalset teavet.

Praktiline kasutamine

Peaaegu iga kaasaegne Linux sobib, nÀitena kasutame xUbuntu 18.10.

1) Paigaldame vajalikud paketid

sudo apt-get install libccid pcscd opensc
Kui soovite lisada töölaua lukustamise ekraanile, paigaldage tÀiendavalt paket libpam-pkcs11.

2) Lisage PAM-moodul GOSTide toega

Laadige raamatukogu https://download.rutoken.ru/Rutoken/PAM/
Kopeerige PAM-i kausta librtpam.so.1.0.0 sisu sĂŒsteemi kausta
/usr/lib/ vÔi /usr/lib/x86_64-linux-gnu/vÔi /usr/lib64

3) Paigaldage paket librtpkcs11ecp.so

Laadige alla ja paigaldage DEB- vÔi RPM-paket aadressilt: https://www.rutoken.ru/support/download/pkcs/

4) Kontrollige, kas RŃƒŃ‚ĐŸĐșĐ”Đœ ЭЩП 2.0 töötab sĂŒsteemis

Terminalis kÀivitage
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Kui nĂ€ete rida Rutoken ECP – tĂ€hendab, et kĂ”ik on korras.

5) Loe vÀlja sertifikaat

Kontrollige, et seadmel on sertifikaat
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Kui pÀrast rida:
Using slot 0 with a present token (0x0)

  • kuvatakse teave vĂ”tmete ja sertifikaatide kohta, on vajalik sertifikaadi lugemine ja selle salvestamine kettale. Selleks kĂ€ivitage jĂ€rgmine kĂ€sk, kus {id} tuleb asendada sertifikaadi ID-ga, 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, liigume 6. punkti juurde.
  • ei ole midagi, siis on seade tĂŒhi. Palun pöörduge administraatori poole vĂ”i looge vĂ”tmed ja sertifikaat ise, jĂ€rgides jĂ€rgmist punkti.

5.1) Looge testsertifikaat

TÀhelepanu! Kirjeldatud vÔtmete ja sertifikaatide loomise meetodid sobivad testimiseks ja ei ole mÔeldud kasutamiseks reaalsetes tingimustes. Selleks tuleb kasutada sertifikaate ja vÔtmeid, mille on vÀlja andnud usaldusvÀÀrne sertifitseerimiskeskus teie organisatsioonis vÔi akrediteeritud isikutuvastus keskus.
PAM-moodul on loodud kaitsma kohalikke arvuteid ja eeldab tööd vÀikestes organisatsioonides. Kuna kasutajaid on vÀhe, saab administraator ise jÀlgida sertifikaatide tagasivÔtmist ja kÀsitsi blokeerida kontosid, samuti sertifikaatide kehtivusaja jÀlgimist. PAM-moodul ei oska veel kontrollida sertifikaate CRLi kaudu ega luua usaldusasutuste ahelaid.

Lihtne tee (brauseri kaudu)

Testsertifikaadi saamiseks kasutage veebiteenust "Rutoken registreerimiskeskus". Protsess vÔtab aega mitte rohkem kui 5 minutit.

Gikide tee (kokkuvÔtte ja ehk ka kompilaatori kaudu)

Kontrollige OpenSC versiooni
$ opensc-tool --version
Kui versioon on vÀiksem kui 0.20, siis uuendage vÔi koostage pkcs11-tool haru, mis toetab GOST-2012 meie GitHubist (artikli avaldamise ajal pole vÀljalasket 0.20 veel ilmunud) vÔi OpenSC-i pÔhiprojekti master-harust hiljemalt commit 8cf1e6f

Generame vÔtme paari jÀrgmiste parameetritega:
--key-type: GOSTR3410-2012-512:A (GOST-2012 512 bitti parameetriga A), GOSTR3410-2012-256:A (GOST-2012 256 bitti parameetriga A)

--id: objekti identifikaator (CKA_ID) kujul kahekohalised numbrid hex formaadis ASCII tabelist. Kasutage ainult ASCII-koodide trĂŒkitud mĂ€rke, kuna id tuleb edastada OpenSSL-ile stringina. NĂ€iteks ASCII-koodile "3132" vastab string "12". Mugavuse huvides vĂ”ib kasutada veebiteenust stringi konvertimiseks ASCII-koodideks.

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

JĂ€rgmisena hakkame looma sertifikaati. Allpool on kirjeldatud kahte teed: esimene lĂ€bi CA (kasutame test CA-sid), teine – isesignitud. Selleks tuleb esmalt paigaldada ja konfigureerida OpenSSL versioon 1.1 vĂ”i uuem Rutokeni jaoks, kasutades erimoodulit rtengine, jĂ€rgides juhendit OpenSSL-i paigaldamine ja seadistamine.
NÀiteks: "--id 3132" OpenSSL-is tuleb mÀrkida "pkcs11:id=12«.

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

Teine vÔimalus on lihtsalt laiskus ja luua isesignitud
$ 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Àeks vÀlja nagu base64 fail:

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

Kui teie sertifikaat nÀeb vÀlja nii:

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

siis peate konvertima sertifikaadi DER-formaadist PEM-formaati (base64)

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

Lisame sertifikaadi usaldussertifikaatide loetellu
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Viimane rida kaitseb usaldussertifikaatide loetelu teiste kasutajate juhuslike vÔi tahtlike muudatuste eest. See vÀlistab olukorra, kus keegi lisab siia oma sertifikaadi ja suudab teie nimel sisse logida.

7) Seame ĂŒles autentimise

Meie PAM mooduli seadistamine on tÀiesti tavaline ja toimub tÀpselt nagu teiste moodulite seadistamine. Loome faili /usr/share/pam-configs/rutoken-gost-pam , mis sisaldab mooduli tÀisnime, kas see on vaikesÀtetega lubatud, mooduli prioriteeti ja autentimise parameetreid.
Autentimise parameetrites on nÔuded operatsiooni edule:

  • required (nĂ”utav): sellised moodulid peavad tagastama positiivse vastuse. Kui mooduli vĂ€ljakutse tulemus sisaldab negatiivset vastust, toob see kaasa autentimise vea. PĂ€ring katab Ă€ra, kuid teised moodulid kutsutakse ĂŒles.
  • requisite (vajalik): sarnane required’iga, kuid viib kohe autentimise ebaĂ”nnestumiseni ja ignoreerib ĂŒlejÀÀnud mooduleid.
  • sufficient (piisav): kui enne sellist moodulit ei ole ĂŒhtegi required vĂ”i sufficient moodulit tagastanud negatiivset tulemust, tagastab moodul positiivse vastuse. ÜlejÀÀnud mooduleid jĂ€etakse tĂ€helepanuta.
  • optional (valikuline): kui virnas ei ole mooduleid required ja ĂŒkski sufficient moodulitest ei ole tagastanud positiivset tulemust, peab vĂ€hemalt ĂŒks optional moodulitest tagastama positiivse vastuse.

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

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

salvesta fail, seejÀrel kÀivita
$ sudo pam-auth-update
avatud aknas pane tÀheke Rutoken PAM GOST ja vajutame OK

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

8) Kontrollime seadistust

Kuna kogu on seadistatud, kuid samas ei kaota vĂ”imalust sĂŒsteemi sisenemiseks, sisestage kĂ€sk
$ sudo login
Sisestage kasutajanimi. KĂ”ik on Ă”igesti seadistatud, kui sĂŒsteem nĂ”uab seadme PIN-koodi.

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

9) Seame ĂŒles arvuti lukustamise tokeni eemaldamisel

Paketi koosseisus libpam-pkcs11 on utiliit pkcs11_eventmgr, mis vĂ”imaldab tĂ€ita erinevaid toiminguid PKCS#11 sĂŒndmuste tekkimisel.
Seadistamiseks pkcs11_eventmgr teenindab konfiguratsioonifail: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Erinevates Linuxi distributsioonides on kÀsk, mis kutsub esile konto lukustamise nutikaardi vÔi tokeni eemaldamisel, erinev. Vaata. event card_remove.
Konfiguratsioonifaili nÀidis on toodud allpool:

pkcs11_eventmgr
{
    # KĂ€ivitamine taustal
    daemon = true;
     
    # SĂŒsteemiteate seadistamine
    debug = false;
 
    # KĂŒsimise aeg sekundites
    polling_time = 1;
 
    # Aegumise ajastamise seade kaardi eemaldamiseks
    # Vaikimisi 0
    expire_time = 0;
 
    # Paigaldage pkcs11 teek RUT Tokeniga töötamiseks
    pkcs11_module = usr/lib/librtpkcs11ecp.so;
 
    # Tegevused kaardiga
    # Kaart on sisestatud:
    event card_insert {
        # JĂ€tame vaikeseaded (mitte midagi ei toimu)
        on_error = ignore ;
 
        action = "/bin/false";
    }
 
    # Kaart on eemaldatud
    event card_remove {
        on_error = ignore;
         
        # KĂ€ivitage ekraani lukustamise funktsioon
        
        # GNOME 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 (mitte midagi ei toimu)
        on_error = ignore;
 
        action = "/bin/false";
    }
}

PÀrast seda lisage rakendus pkcs11_eventmgr automaatsesse kÀivitamisse. Selleks redigeerige faili .bash_profile:
$ nano /home//.bash_profile
Lisage faili lÔpus rida pkcs11_eventmgr ja taaskÀivitage arvuti.

Kirjeldatud seadistamisetapid operatsioonisĂŒsteemi jaoks vĂ”ivad olla juhendiks igas kaasaegses Linuxi jaotuses, sealhulgas kohalikud.

Kuidas kasutada PAM-mooduleid Linuxis kohaliku autentimise jaoks GOST-2012 vÔtmetega RUTOKEN-il

KokkuvÔte

Linuxi PC-d Venemaa riigisektoris muutuvad jĂ€rjest populaarsemaks, kuid usaldusvÀÀrse kahefaasilise autentimise seadistamine selles opsĂŒsteemis ei ole alati lihtne. Meie juhend aitab lahendada "paroolide probleemi" ja usaldusvÀÀrselt kaitsta juurdepÀÀsu PC-le, kulutades sellele mitte liiga palju aega.

Allikas: habr.com

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster