Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile
Uues ĂŒhes meie varasemas artiklis rÀÀkisime kahepoolsest autentimisest ettevĂ”tteportaalides. Eelmises artiklis demonstreerisime, kuidas seadistada turvalist autentimist web-serveris IIS.

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

Te soovisite — me kirjutasime.

Mida on vaja, et alustada?

  • Iga kaasaegne Linuxi distributsioon. Testiseade viidi lĂ€bi MX Linux 18.2_x64. See ei ole kĂŒll serveri distributsioon, kuid Debianil ei tohiks olla erilisi erinevusi. Muude distributsioonide puhul vĂ”ivad raamatukogude ja konfiguratsioonifailide teed veidi erineda.
  • Token. JĂ€tkame mudeli kasutamist RUTOKEN ECP PKI, mis sobib ideaalselt kiirusnĂ€itajate poolest ettevĂ”tete kasutamiseks.
  • Tokeniga töötamiseks Linuxis tuleb installida jĂ€rgmised pakettid:
    libccid libpcsclite1 pcscd pcsc-tools opensc

Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

Sertifikaatide vÀljastamine

Varasemates artiklites oleme toetunud sellele, et serveri ja kliendi sertifikaate vĂ€ljastatakse Microsoft CA kaudu. Kuid kuna seadistame kĂ”ik Linuxis, rÀÀgime ka alternatiivsest viisist nende sertifikaatide vĂ€ljastamiseks — ilma Linuxist lahkumata.
CA-na kasutame XCA (https://hohnstaedt.de/xca/), mis on saadaval igas kaasaegses Linuxi distributsioonis. KÔik toimingud, mida teeme XCA-s, on vÔimalik teha ka kÀsureal utiliitide OpenSSL ja pkcs11-tool abil, kuid suurema lihtsuse ja selguse huvides ei toome neid vÀlja.

Esimene samm

  1. Installime:
    $ apt-get install xca
  2. Ja kÀivitame:
    $ xca
  3. Loome oma CA andmebaasi — /root/CA.xdb
    Soovitame hoida Sertifikaadi Autoriteedi andmebaasi kaustas, millele on juurdepÀÀs ainult administraatoril. See on oluline juursertifikaatide privaatsete vÔtmete kaitsmiseks, mida kasutatakse kÔigi teiste sertifikaatide allkirjastamiseks.

Loome juurika CA vÔtmed ja sertifikaadi

Avaliku vĂ”tme infrastruktuuri (PKI) aluseks on hierarhiline sĂŒsteem. Selle sĂŒsteemi peamine koostisosa on juursertifitseerimisagentuur vĂ”i root CA. Selle sertifikaat tuleb luua esimesena.

  1. Loome CA jaoks RSA-2048 privaatvĂ”tme. Selleks klĂ”psame vahekaardil PrivaatvĂ”tmed ja vajutame Uus vĂ”ti ning valime vastava tĂŒĂŒbi.
  2. Seame nimi uuele vĂ”tmepaarile. Ma nimetasime selle – CA Key.
  3. Kirjutame vÀlja CA sertifikaadi, kasutades loodud vÔtmepaari. Selleks liigume vahekaardile Certificates ja vajutame Uus sertifikaat.
  4. Oluline on valida SHA-256, sest SHA-1 kasutamine ei ole enam ohutu.
  5. Mallina on hĂ€davajalik valida [default] CA. Ärge unustage vajutada Rakenda kĂ”ik, muidu mall ei rakendu.
  6. Sakil Teema valime meie vÔtmepaari. Seal saate samuti tÀita kÔik sertifikaadi pÔhivÀljad.

Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

Loome HTTPS-serveri vÔtmed ja sertifikaadi

  1. Sarnaselt loome serverile RSA-2048 privaatvĂ”tme, ma nimetasime selle – Server Key.
  2. Sertifikaadi loomisel valime, et serveri sertifikaati tuleb allkirjastada CA sertifikaadiga.
  3. Ärge unustage valida SHA-256.
  4. Mallina valime [default] HTTPS_server. Vajutame Rakenda kÔik.
  5. PÀrast seda valime vahekaardil Teema meie vÔtme ja tÀidame vajalikud vÀljad.

Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

Loome kasutaja vÔtmed ja sertifikaadi

  1. Kasutaja privaatvĂ”ti salvestatakse meie tokenisse. Selle kasutamiseks on vajalik installeerida PKCS#11 teek meie veebisaidilt. Populaarsete distributsioonide jaoks pakume valmis pakette, mis asuvad siin — https://www.rutoken.ru/support/download/pkcs/. Meil on ka versioonid arm64, armv7el, armv7hf, e2k, mipso32el, mida saab meie SDK-st vĂ”tta — https://www.rutoken.ru/developers/sdk/. Lisaks Linuxi versioonidele on meil ka versioonid macOS, freebsd ja android jaoks.
  2. Lisame XCA-sse uue PKCS#11 pakkuja. Selleks lĂ€heme menĂŒĂŒsse Valikud vahekaardile PKCS#11 pakkuja.
  3. Vajutame Lisa ja valime tee PKCS#11 teeki. Minu puhul on see usrliblibrtpkcs11ecp.so.
  4. Meil on vajalik vormindatud token RutuTokeni ECDSA PKI jaoks. 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. VĂ”tme tĂŒĂŒbina valime – RSA-2048 vĂ”ti RutuTokeni ECDSA PKI-l. Ma nimetasin selle vĂ”tme Client Key.

    Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

  7. Sisestame PIN-koodi. Ja ootame riistvara vÔtmepaari genereerimise lÔppu

    Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

  8. Kasutaja sertifikaat luuakse analoogselt serveri sertifikaadi loomisega. Seekord valime malliks [default] HTTPS_client ja Àrge unustage vajutada Rakenda kÔik.
  9. Sakil Teema sisestame kasutaja teabe. Sertifikaadi salvestamise pÀringule tokenis vastame jaatavalt.

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

Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile
See minimaalne vÔtmete ja sertifikaatide komplekt on piisav, et alustada serverite seadistamisega.

Sertifikaedia vÀljatootmiseks on meil vaja eksportida CA sertifikaat, serveri sertifikaat ja serveri privaatvÔti.

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

Nginx

Kuidas nginx-serverit seadistada ja kĂ€ivitada, ma siin ei kirjuta — selle kohta on internetis piisavalt artikleid, rÀÀkimata ametlikest dokumentidest. Asume kohe HTTPS-i seadistamise ja kahefaasilise autentimise rakendamise juurde.

Lisame failisse nginx.conf sektsiooni server 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;
}

Üksikasjalikku kirjeldust kĂ”igist ssl-i seadistamise parameetritest nginx-is saab leida siit — https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Kirjeldan lĂŒhidalt neid, mida ise seadistasin:

  • ssl_verify_client — nĂ€itab, et sertifikaadi usaldusvÀÀrsuse ahelat tuleb kontrollida.
  • ssl_verify_depth — mÀÀrab usaldusvÀÀrse juursertifikaadi otsimise sĂŒgavuse ahelas. Kuna meie kliendi sertifikaat on kohe juursertifikaadi poolt allkirjastatud, on sĂŒgavus seadistatud — 1. Kui kasutaja sertifikaat allkirjastatakse vahepealse CA poolt, tuleb seda parameetrit seada 2, jne.
  • ssl_client_certificate — nĂ€itab teed usaldusvÀÀrse juursertifikaadini, mida kasutatakse kasutaja sertifikaadi usaldusvÀÀrsuse kontrollimiseks.
  • ssl_certificate/ssl_certificate_key — nĂ€itavad teed sertifikaadini/servers puuduvusesse.

Ärge unustage kĂ€ivitada nginx -t, et kontrollida, kas konfiguratsioonis pole trĂŒkivigu ning kĂ”ik failid asuvad Ă”igel kohal ja nii edasi.

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

Kontrollime tööd Firefoxis

Kuna teeme kÔik tÀielikult Linuxis, arvestame, et ka meie kasutajad töötavad Linuxis (kui neil on Windows, siis vt eelneva artikli juhendit brauserite seadistamiseks.

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

    Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

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

  4. Vajutame Laadi, et lisada uus PKCS#11 seadme draiver ja mÀÀrake tee meie librtpkcs11ecp.so.
  5. Sertifikaadi tuvastamise kontrollimiseks vÔite minna Sertifikaatide haldurisse. Kuvatakse parooli sisestamise nÔue. PÀrast korrektset sisestamist saab kontrollida, et vahekaart Teie sertifikaadid on meie tokenilt saanud sertifikaadi.
  6. NĂŒĂŒd logime sisse tokeniga. Firefox pakub valima sertifikaati, mis valitakse serveris. Valime meie sertifikaadi.

    Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

  7. PROFIT!

    Kaksifaktoriline autentimine saidil USB-tokeni kasutamisega. NĂŒĂŒd ka Linuxile

Seade tehakse ĂŒks kord ja nagu nĂ€ha sertifikaadi taotlemise aknas saame oma valiku salvestada. PĂ€rast seda peame iga kord portaali sisenedes lihtsalt sisestama tokeni ja kasutaja PIN-koodi, mis oli mÀÀratud vormindamise ajal. PĂ€rast sellist autentimist teab server, kes on sisse loginud ja ei ole vaja rohkem tĂ€iendavaid aknaid kontrollimiseks, vaid pÀÀstame kasutaja kohe tema isiklikku kabinetti.

Apache

Nii nagu nginxiga, ei tohiks apache installimisega kellelgi probleeme esineda. Kui te ei tea, kuidas seda veebiserverit installida, kasutage lihtsalt ametlikku dokumentatsiooni.

Aga me alustame HTTPS-i ja kahefaktorilise autentimise seadistamist:

  1. KÔigepealt peame aktiveerima mod_ssl:
    $ a2enmod ssl
  2. Ja seejÀrel lubama saidi vaikimisi HTTPS seadistused:
    $ a2ensite default-ssl
  3. NĂŒĂŒd redigeerime 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

    Nagu nĂ€ete, parametrite nimed praktiliselt kattuvad nginx-i omadustega, seetĂ”ttu ei hakka ma neid selgitama. Taas — kellele huvi pakub, on dokumentatsioon avatud.
    NĂŒĂŒd taaskĂ€ivitage meie server:

    $ service apache2 reload
    $ service apache2 restart

  4. Nagu nĂ€ete, on kahefaktorilise autentimise seadistamine igasugustes veebiserverites, olgu need Windows vĂ”i Linux, maksimaalselt ĂŒhe tunni töö. Brauserite seadistamine vĂ”tab aega umbes 5 minutit. Paljud arvavad, et kahefaktorilise autentimise seadistus ja töö on keeruline ja arusaamatu. Loodan, et meie artikkel vĂ€hemalt veidi, kuid murendab seda mĂŒĂŒti.

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

Kas on vajalik juhend TLS-i seadistamiseks sertifikaatidega ГОСб 34.10-2012:

  • Jah, TLS-GOST on vĂ€ga vajalik

  • Ei, seadistamine ГОСб-algoritmidega ei huvita

HÀÀletas 44 kasutajat. Eemale jÀi 9 kasutajat.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster