Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile
V ĂŒhe meie varasema artikli me rÀÀkisime kahefaktorilise autentimise olulisusest ettevĂ”tete portaalides. Eelmises osas nĂ€itasime, kuidas seadistada turvalist autentimist web-serveris IIS.

Kommentaarides paluti meil kirjutada juhend kĂ”ige levinumate web-serverite kohta Linuxis — nginx ja Apache.

Te palusite — me kirjutasime.

Mis on vajalik, et alustada?

  • Iga tĂ€napĂ€evane Linuxi distributsioon. TĂ€itsin testseadistuse MX Linux 18.2_x64. See ei ole serveri distributsioon, kuid Debianis ei tohiks olla suuri erinevusi. Teiste distributsioonide puhul vĂ”ivad teed raamatukogudeni ja konfiguratsioonifailid natuke erineda.
  • Token. JĂ€tkame mudeli kasutamist RUToken EÜT PKI, mis sobib ideaalselt kiirusnĂ€itajate poolest Ă€rikasutuseks.
  • Tokeniga töötamiseks Linuxis on vajalik paigaldada jĂ€rgmised paketid:
    libccid libpcsclite1 pcscd pcsc-tools opensc

Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

Sertifikaatide vÀljastamine

Eelnevates artiklites tuginesime sellele, et serveri ja kliendi sertifikaadid vĂ€ljastatakse Microsoft CA abil. Kuid kuna seadistame kĂ”ike Linuxis, rÀÀgime ka alternatiivsest viisist nende sertifikaatide vĂ€ljastamiseks — jÀÀdes Linuxisse.
CA-na kasutame XCA (https://hohnstaedt.de/xca/), mis on saadaval igas kaasaegses Linuxi jaotuses. KĂ”iki toiminguid, mida teeme XCA-s, saab teha ka kĂ€surea reĆŸiimis OpenSSL ja pkcs11-tool utiliitide abil, kuid lihtsuse ja selguse huvides ei too me neid artiklis vĂ€lja.

Alustamine

  1. Installime:
    $ apt-get install xca
  2. Ja kÀivitame:
    $ xca
  3. Loome oma CA andmebaasi — /root/CA.xdb
    Soovitame hoida Certificate Authority andmebaasi kaustas, kuhu pÀÀseb ligi ainult administraator. See on tÀhtis, et kaitsta kÔiki teisi sertifikaate allkirjastavate juuresolevate sertifikaatide privaatvÔtmeid.

Loome juure CA vÔtmed ja sertifikaadi

Ava vĂ”tmete infrastruktuur (PKI) tugineb hierarhilisele sĂŒsteemile. Selle sĂŒsteemi peamine osa on juursertifikaadi Keskus vĂ”i root CA. Tema sertifikaat tuleb luua esimesena.

  1. Loome CA jaoks RSA-2048 privaatvĂ”tme. Selleks valige vahekaart PrivaatvĂ”tmed vajutame Uus vĂ”ti ja valime vastava tĂŒĂŒbi.
  2. MÀÀrame nime uuele vÔtme paarile. Mina nimetasime selle CA vÔtmekseks.
  3. Kandke vigade jaoks vÀlja CA sertifikaat, kasutades loodud vÔtme paari. Selleks liigume vahekaardile Sertifikaadid ja vajutame Uus sertifikaat.
  4. Kohustuslik valime SHA-256, kuna SHA-1 kasutamine ei ole enam ohutu.
  5. Kohustuslik valime malliks [default] CA. Ärge unustage vajutada Rakenda kĂ”ik, muidumall ei rakendu.
  6. Vahekaardil Teema valime meie vÔtme paari. Seal saate tÀita kÔik peamised sertifikaadi vÀljad.

Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

Loome HTTPS-serveri vÔtmed ja sertifikaadi

  1. Samasuguse viisiga loome serverile RSA-2048 privaatvÔtme, mina nimetasime selle Server Key.
  2. Sertifikaadi loomisel valime, et serveri sertifikaat tuleb allkirjastada CA sertifikaadiga.
  3. Ärge unustage valida SHA-256.
  4. Mallina valime [default] HTTPS_server. KlÔpsame Rakenda kÔik.
  5. PÀrast seda valitseme vahekaardil Teema valime meie vÔtme ja tÀidame vajalikud vÀljad.

Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

Loome kasutaja jaoks vÔtmed ja sertifikaadi

  1. Kasutaja privaatvĂ”ti salvestatakse meie tokenisse. Selle kasutamiseks tuleb installida PKCS#11 teek meie veebisaidilt. Levitame valmis pakette populaarsete pistetega, mis asuvad siin — https://www.rutoken.ru/support/download/pkcs/. Meil on ka kogumikud arm64, armv7el, armv7hf, e2k, mipso32el, mida saab meie SDK-st — https://www.rutoken.ru/developers/sdk/. Lisaks Linuxi kogumikele on olemas ka kogumikud macOS, freebsd ja androidi jaoks.
  2. Lisame uue PKCS#11 teenusepakkuja XCA-sse. Selleks lĂ€heme menĂŒĂŒsse Valikud vahekaardile PKCS#11 teenusepakkuja.
  3. Kli klikime Lisa ja valime tee PKCS#11 teegi juurde. Minu puhul on see usrliblibrtpkcs11ecp.so.
  4. Me vajame vormindatud Ruutoken ECP PKI tokenit. Laadige alla utiliit rtAdmin — https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. TĂ€idame
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u
  6. Klavi tĂŒĂŒbi valimisel valime — RSA-2048 vĂ”ti Ruutoken ECP PKI-l. Ma nimetasime selle vĂ”tme Client Key.

    Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

  7. Sisestame PIN-koodi. Ja ootame, kuni seadme genereerimine on lÔppenud vÔtmepaari jaoks.

    Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

  8. Kasutajale sertifikaat luuakse sarnaselt serveri sertifikaadiga. Seekord valime malliks [default] HTTPS_client ja Àrge unustage vajutada Rakenda kÔik.
  9. Vahekaardil Teema sisestame kasutaja teabe. Sertifikaadi salvestamise tokenile vastame afirmatiivselt.

LÔppkokkuvÔttes peaks XCA-s vahekaardil olema umbes selline pilt. Sertifikaadid XCA-s peaks olema umbes selline pilt.

Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile
Selle minimaalne vÔtmete ja sertifikaatide kogum on piisav, et alustada serverite seadistamist.

Seadistamiseks peame eksportima CA sertifikaadi, serveri sertifikaadi ja serveri privaatsĂŒĂŒdimuse.

Selleks tuleb vastaval vahekaardil valida vajalik kirje XCA-s ja vajutada Export.

Nginx

Kuidas installida ja kĂ€ivitada nginx-serverit, ma ei kirjuta — selle teema kohta on internetis piisavalt artikleid, rÀÀkimata ametlikest dokumentidest. Siirdume kohe HTTPS-i seadistamise ja kahefaktori autentimise juurde.

Lisame nginx.conf faili serveri sektsiooni jÀrgmised read:

server {
	listen 443 ssl;
	ssl_verify_depth 1;
	ssl_certificate /etc/nginx/Server.crt;
	ssl_certificate_key /etc/nginx/ServerKey.pem;
	ssl_client_certificate /etc/nginx/CA.crt;
	ssl_verify_client on;
}

Kooli kĂ”ik SSL seadistamise parameetrite ĂŒksikasjalikud kirjeldused leiate siit — https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Kirjeldan lĂŒhidalt vaid neid, mida ise seadistasin:

  • ssl_verify_client — nĂ€itab, et sertifikaadi usaldusvÀÀrsus peab olema kontrollitud.
  • ssl_verify_depth — mÀÀrab usaldusvÀÀrse juursertifikaadi otsingu sĂŒgavuse ahelas. Kuna meie kliendi sertifikaat on kohe allkirjastatud juursertifikaadiga, siis on sĂŒgavus seatud — 1. Kui kasutaja sertifikaat on allkirjastatud vahe-CA poolt, siis tuleb selle parameetri vÀÀrtuseks panna 2 ja nii edasi.
  • ssl_client_certificate — nĂ€itab usaldusvÀÀrse juursertifikaadi teed, mida kasutatakse kasutaja sertifikaadi usaldusvÀÀrsuse kontrollimisel.
  • ssl_certificate/ssl_certificate_key — nĂ€itavad serveri sertifikaadi/privaatse vĂ”tme teed.

Ärge unustage kĂ€ivitada nginx -t, et kontrollida, et konfiguratsioonis pole trĂŒkivigu, kĂ”ik failid asuvad Ă”iges kohas jne.

Ja tegelikult kÔik! Nagu nÀete, on seadistamine vÀga lihtne.

Kontrollime tööd Firefoxis

Kuna me teeme kÔik tÀielikult Linuxis, siis oletame, et ka meie kasutajad töötavad Linuxis (kui neil on Windows, siis vt eelnevas artiklis brauserite seadistamise juhendit.

  1. KĂ€ivitame Firefoxi.
  2. Proovime alguses siseneda ilma tokenita. Saame sellise pildi:

    Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

  3. Siseneme aadressile about:preferences#privacy, ja lÀheme Security Devices

  4. Kli klikime Load, et lisada uus PKCS#11 seadmepettekandja ja nÀidata teed meie librtpkcs11ecp.so-le.
  5. Sertifikaadi nÀhtavuse kontrollimiseks minge aadressile Certificate Manager. Ilmub PIN-koodi sisestamise taotlus. PÀrast Ôiget sisestamist saab kontrollida, et vahekaardil Your Certificates on meie sertifikaat tokenilt ilmunud.
  6. NĂŒĂŒd logime sisse tokeniga. Firefox pakub valida sertifikaadi, mis valitakse serveris. Valime meie sertifikaadi.

    Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

  7. PROFIT!

    Kahe faktori autentimine saidil USB-tokeniga. NĂŒĂŒd ka Linuxile

Seadistus tehakse ĂŒks kord, ja nagu nĂ€ha sertifikaadi taotlemise aknas, saame oma valiku salvestada. PĂ€rast seda tuleb iga kord portaalile sisenemisel vaid token sisestada ja kasutaja PIN-kood, mis oli mÀÀratud vormindamise ajal, sisse kirjutada. PĂ€rast sellist autentimist teab server juba, milline kasutaja on sisse loginud ja ei ole enam vaja lisakaste kontrollimiseks, vaid saab kohe suunata kasutaja tema isiklikku kabinetti.

Apache

Nii nagu nginxiga ei tohiks keegi apache'i paigaldamisega probleeme kogeda. Kui te ei tea, kuidas seda veebiserverit paigaldada, kasutage lihtsalt ametlikku dokumentatsiooni.

Asume HTTPSe ja kahefaktorilise autentimise seadistamise juurde:

  1. Esiteks tuleb aktiveerida mod_ssl:
    $ a2enmod ssl
  2. Ja seejĂ€rel lĂŒlitage sisse saidi HTTPS-seaded:
    $ a2ensite default-ssl
  3. NĂŒĂŒd muuda konfiguratsioonifaili: /etc/apache2/sites-enabled/default-ssl.conf:
        SSLEngine on
        SSLProtocol all -SSLv2
    
        SSLCertificateFile	/etc/apache2/sites-enabled/Server.crt
        SSLCertificateKeyFile /etc/apache2/sites-enabled/ServerKey.pem
    
        SSLCACertificateFile /etc/apache2/sites-enabled/CA.crt
    
        SSLVerifyClient require
        SSLVerifyDepth  10

    Kuidas nĂ€ha, parameetrite nimetused on praktiliselt samad kui nginx-is, seega ei vaja ma nende selgitamist. JĂ€llegi, kellel on huvi ĂŒksikasjade vastu — olete dokumentatsioonis oodatud.
    NĂŒĂŒd taaskĂ€ivitage meie server:

    $ service apache2 reload
    $ service apache2 restart

  4. Kuidas nĂ€ha, kahefaasilise autentimise seadmine igasugusele veebiserverile, nii Windowsis kui ka Linuxis, vĂ”tab maksimaalselt tunni. Brauserite seadmine kestab umbes 5 minutit. Paljud arvavad, et kahefaasilise autentimise seadmine ja kasutamine on keeruline ja arusaamatu. Lootuses, et meie artikkel vĂ€hemalt osaliselt murendab seda mĂŒĂŒti.

Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. Logige sisse, palun.

Kas on vajalik juhend TLS-i seadistamiseks GOST 34.10-2012 sertifikaatidega:

  • Jah, TLS-GOST on tĂ”esti vajalik

  • Ei, GOST-algoritmidega seadmine ei huvita

44 kasutajat hÀÀletas. 9 kasutajat jÀid erapooletuks.

Allikas: habr.com

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