Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux
Në një prej artikujve tanë të mëparshëm ne folëm për rëndësinë e autentifikimit me dy faktorë në portale korporative të kompanive. Herën e kaluar demonstruam se si të konfiguroni autentifikimin e sigurt në serverin web IIS.

NĂ« komentet na kĂ«rkuan tĂ« shkruajmĂ« njĂ« udhĂ«zues pĂ«r serverĂ«t web mĂ« tĂ« zakonshĂ«m pĂ«r Linux — nginx dhe Apache.

Ju kĂ«rkuat — ne e shkruam.

ÇfarĂ« nevojitet pĂ«r tĂ« filluar?

  • Çdo distribucion modern tĂ« Linux. Kam realizuar konfigurimin testues nĂ« MX Linux 18.2_x64. Kjo sigurisht nuk Ă«shtĂ« njĂ« distribucion serveri, por pĂ«r Debian nuk do tĂ« ketĂ« dallime tĂ« mĂ«dha. PĂ«r distribucionet e tjera mund tĂ« ndryshojnĂ« pak rrugĂ«t pĂ«r nĂ« bibliotekat/konfigurat.
  • Token. Ne vazhdojmĂ« tĂ« pĂ«rdorim modelin Rutoken ECP PKI, i cili Ă«shtĂ« ideal nĂ« karakteristikat e shpejtĂ«sisĂ« pĂ«r pĂ«rdorim korporativ.
  • PĂ«r tĂ« punuar me token nĂ« Linux, duhet tĂ« instaloni paketat e mĂ«poshtme:
    libccid libpcsclite1 pcscd pcsc-tools opensc

Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

Shkruajtja e certifikatave

NĂ« artikujt e mĂ«parshĂ«m kemi mbĂ«shtetur se certifikatat e serverĂ«ve dhe klientĂ«ve do tĂ« lĂ«shohen pĂ«rmes Microsoft CA. Por tani qĂ« gjithçka po e konfigurojmĂ« nĂ« Linux, do tĂ« tregojmĂ« gjithashtu njĂ« mĂ«nyrĂ« alternative pĂ«r lĂ«shimin e kĂ«tyre certifikatave — pa e braktisur Linuxin.
Si CA do të përdorim XCA (https://hohnstaedt.de/xca/), e cila është e disponueshme në çdo shpërndarje moderne të Linux-it. Të gjitha veprimet që do të kryejmë në XCA mund të bëhen edhe në mënyrë të komandave përmes mjeteve OpenSSL dhe pkcs11-tool, por për thjeshtësinë dhe qartësinë, ne nuk do t'i përfshijmë këto në këtë artikull.

Fillimi i punës

  1. Instalojmë:
    $ apt-get install xca
  2. Dhe fillojmë:
    $ xca
  3. KrijojmĂ« bazĂ«n tonĂ« tĂ« tĂ« dhĂ«nave pĂ«r CA — /root/CA.xdb
    Sugjerojmë që të ruani bazën e të dhënave të Autoritetit të Certifikimit në një dosje, të cilën ka qasje vetëm administratori. Kjo është e rëndësishme për mbrojtjen e çelësave privatë të certifikatave të rrënjës, të cilat përdoren për të nënshkruar të gjitha certifikatat e tjera.

Krijojmë çelësat dhe certifikatën root CA

Në thelb të infrastrukturës së çelësave publikë (PKI) është një sistem hierarkik. Qendra kryesore e sertifikimit ose root CA është ajo që është më e rëndësishme në këtë sistem. Certifikata e saj duhet të krijohet e para.

  1. KrijojmĂ« njĂ« çelĂ«s tĂ« mbyllur RSA-2048 pĂ«r CA. PĂ«r kĂ«tĂ«, nĂ« skedĂ«n ÇelĂ«sat PrivatĂ« klikojmĂ« ÇelĂ«s i Ri dhe zgjedhim tipin pĂ«rkatĂ«s.
  2. Vendosim njĂ« emĂ«r pĂ«r çiftin e ri tĂ« çelĂ«save. UnĂ« e quajta — CA Key.
  3. Shkruajmë vetë certifikatën CA, duke përdorur çiftin e krijuar të çelësave. Për këtë kalojmë në skedën Certifikatat dhe klikojmë Certifikatë e Re.
  4. Sigurohuni të zgjidhni SHA-256, sepse përdorimi i SHA-1 nuk mund të përmbyllet si i sigurt më.
  5. Si model, sigurohuni të zgjidhni [default] CA. Mos harroni të klikoni në Apliko të gjitha, përndryshe modeli nuk do të aplikohet.
  6. Në skedën Subjekti zgjedhim çiftin tonë të çelësave. Aty mund të plotësoni të gjitha fushat kryesore të certifikatës.

Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

Krijojmë çelësat dhe certifikatën për serverin https

  1. NjĂ«soj krijojmĂ« pĂ«r server çelĂ«s tĂ« mbyllur RSA-2048, unĂ« e quajta — Server Key.
  2. Gjatë krijimit të certifikatës zgjedhim se certifikata e serverit duhet të nënshkruhet në certifikatën CA.
  3. Mos harroni të zgjidhni SHA-256.
  4. Si model, zgjedhim [default] HTTPS_server. Klikojmë Apliko të gjitha.
  5. Pas kësaj, në skedën Subjekti zgjedhim çelësin tonë dhe plotësojmë fushat e nevojshme.

Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

Krijojmë çelësat dhe certifikatën për përdoruesin

  1. ÇelĂ«si i pĂ«rdoruesit do tĂ« ruhet nĂ« tokenin tonĂ«. PĂ«r tĂ« punuar me tĂ«, duhet tĂ« instaloni bibliotekĂ«n PKCS#11 nga faqja jonĂ«. Ne ofrojmĂ« paketa tĂ« gatshme pĂ«r distribucione tĂ« njohura, tĂ« cilat ndodhen kĂ«tu — https://www.rutoken.ru/support/download/pkcs/. Ne gjithashtu kemi ndĂ«rtime pĂ«r arm64, armv7el, armv7hf, e2k, mipso32el, tĂ« cilat mund t'i merrni nĂ« SDK tonĂ« — https://www.rutoken.ru/developers/sdk/. PĂ«rveç ndĂ«rtimeve pĂ«r linux, ka gjithashtu ndĂ«rtime pĂ«r macOS, freebsd dhe android.
  2. Shtojmë një PKCS#11 Provider të ri në XCA. Për këtë, shkojmë në menunë Mundësitë në kartën PKCS#11 Provider.
  3. Klikojmë Shto dhe zgjedhim rrugën për bibliotekën PKCS#11. Në rastin tim, kjo është usrliblibrtpkcs11ecp.so.
  4. Na nevojitet njĂ« token i formatizuar i RutuToken EÇP PKI. Shkarkoni utilitarin rtAdmin — https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. Kryejmë
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u
  6. Si njĂ« lloj çelĂ«si zgjedhim — çelĂ«si RSA-2048 nĂ« RutuToken EÇP PKI. UnĂ« e quajta kĂ«tĂ« çelĂ«s Client Key.

    Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

  7. Shtypim PIN-in. Dhe presim përfundimin e gjenerimit të çiftit të çelësave të harduerit

    Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

  8. Certifikata për përdoruesin krijohet në përputhje me certifikatën e serverit. Këtë herë zgjedhim modelin [default] HTTPS_client dhe mos harroni të klikoni Apliko të gjitha.
  9. Në skedën Subjekti hyrni informacionin për përdoruesin. Në kërkesën për të ruajtur certifikatën në token, përgjigjemi pozitivisht.

Si rezultat, në kartën Certifikatat Në XCA duhet të dalë një imazh i tillë.

Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux
Ky grup minimal çelësash dhe certifikatash mjafton për të filluar konfigurimin e drejtpërdrejtë të serverëve.

Për konfigurimin, na nevojitet të eksportojmë certifikatën e CA-të, certifikatën e serverit dhe çelësin privat të serverit.

Për këtë, duhet të zgjidhni regjistrimin e duhur në skedën përkatëse në XCA dhe të klikoni Eksport.

Nginx

Nuk do tĂ« shkruaj se si tĂ« instaloni dhe nisni serverin nginx — ka mjaft artikuj mbi kĂ«tĂ« temĂ« nĂ« internet, pĂ«rveç dokumentacionit zyrtar. Le tĂ« fillojmĂ« menjĂ«herĂ« me konfigurimin e HTTPS dhe autentifikimit me dy faktorĂ« pĂ«rmes tokenit.

Shtoni në seksionin server në nginx.conf rreshtat e mëposhtëm:

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;
}

PĂ«rshkrimi i detajuar i tĂ« gjitha parametrave nĂ« lidhje me konfigurimin e ssl nĂ« nginx mund tĂ« gjendet kĂ«tu — https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Unë do të përshkruaj shkurtimisht ato që kam vendosur vetë:

  • ssl_verify_client — tregon se duhet tĂ« verifikohet zinxhiri i besimit tĂ« certifikatĂ«s.
  • ssl_verify_depth — pĂ«rcakton thellĂ«sinĂ« e kĂ«rkimit tĂ« certifikatĂ«s sĂ« besuar nĂ« zinxhir. MeqenĂ«se ne kemi njĂ« certifikatĂ« klienti tĂ« nĂ«nshkruar menjĂ«herĂ« nga certifikata rrĂ«njĂ«sore, thellĂ«sia Ă«shtĂ« e vendosur — 1. NĂ«se certifikata e pĂ«rdoruesit nĂ«nshkruhet nga njĂ« CA ndĂ«rmjetĂ«s, ky parametĂ«r duhet tĂ« jetĂ« 2, e kĂ«shtu me radhĂ«.
  • ssl_client_certificate — tregon rrugĂ«n deri te certifikata rrĂ«njĂ«sore e besuar, e cila pĂ«rdoret gjatĂ« kontrollit tĂ« besueshmĂ«risĂ« sĂ« certifikatĂ«s sĂ« pĂ«rdoruesit.
  • ssl_certificate/ssl_certificate_key — tregojnĂ« rrugĂ«n deri te certifikata/çelĂ«si privat i serverit.

Mos harro të ekzekutosh nginx -t për të kontrolluar nëse ka gabime në konfigura, nëse të gjitha skedarët janë në vendin e duhur dhe kështu me radhë.

Dhe në fakt, kjo është gjithçka! Siç e shihni, konfigurimi është shumë i thjeshtë.

Kontrollojmë funksionimin në Firefox

Pasi po e bëjmë gjithçka plotësisht në Linux, do të supozojmë se edhe përdoruesit tanë punojnë në Linux (nëse ata kanë Windows, atëherë shihni udhëzimin për konfigurimin e shfletuesve në artikullin e mëparshëm.

  1. Nisemi me Firefox.
  2. Do të provojmë fillimisht të hyjmë pa token. Marrim këtë pamje:

    Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

  3. HymĂ« nĂ« about:preferences#privacy, dhe shkojmĂ« te Pajisjet e Sigurisë 
  4. Klikojmë Ngarko, për të shtuar një Drejtor Tëri PKCS#11 dhe tregojmë rrugën deri te librtpkcs11ecp.so.
  5. Për të verifikuar që certifikata është e dukshme, mund të hyni në Menaxherin e Certifikatave. Do të shfaqet një kërkesë për të futur PIN-in. Pasi të futet saktë, mund të kontrolloni që në skedën Certifikatat Tuaja ka dalë certifikata jonë nga tokeni.
  6. Tani hyjmë me tokenin. Firefox-i ofron të zgjedhë certifikatën që do të jetë zgjedhur në server. Zgjedhim certifikatën tonë.

    Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

  7. PROFIT!

    Autentifikimi me dy faktorë në faqen duke përdorur USB-token. Tani edhe për Linux

Konfigurimi bëhet një herë, dhe siç shihet në dritaren e kërkesës për certifikatën, mund ta ruajmë zgjedhjen tonë. Pas kësaj, çdo herë që hyjmë në portal, do të na duhet vetëm të futim tokenin dhe të shkruajmë PIN-in e përdoruesit, i cili është caktuar gjatë formatimit. Pas një autentifikimi të tillë, serveri tashmë e di se cili përdorues ka hyrë, dhe nuk është e nevojshme të krijohen dritare të tjera për verifikim, por menjëherë mund të lejojmë përdoruesin të hyjë në llogarinë e tij.

Apache

Ashtu si me nginx, nuk duhet të ketë probleme me instalimin e apache. Nëse nuk e dini si ta instaloni këtë server web, thjesht përdorni dokumentacionin zyrtar.

Dhe tani kalojmë në konfigurimin e HTTPS-it dhe autentifikimit me dy faktorë:

  1. Së pari, është e nevojshme të aktivizoni mod_ssl:
    $ a2enmod ssl
  2. Dhe pastaj aktivizoni cilësimet HTTPS të faqes së internetit siç është parazgjedhur:
    $ a2ensite default-ssl
  3. Tani redaktojmë skedarin e konfigurimit: /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

    Siç e shihni, emrat e parametrave janĂ« praktikisht tĂ« njĂ«jtĂ« me emrat e parametrave nĂ« nginx, prandaj nuk do t'i shpjegoj. SĂ«rish, ata qĂ« janĂ« tĂ« interesuar pĂ«r detaje — mirĂ«seardhĂ«t nĂ« dokumentacion.
    Tani rifillojmë serverin tonë:

    $ service apache2 reload
    $ service apache2 restart

  4. Siç e shihni, konfigurimi i autentifikimit me dy faktorë në çdo server web, qoftë në Windows apo në Linux, është një punë që nuk merr më shumë se një orë. Edhe konfigurimi i shfletuesve zë rreth 5 minuta. Shumë mendojnë se konfigurimi dhe puna me autentifikimin me dy faktorë është e komplikuar dhe e paqartë. Shpresoj që artikulli ynë të shkatërrojë paksa këtë mit.

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. Hyni, ju lutemi.

A është e nevojshme një udhëzues për konfigurimin e funksionimit të TLS me certifikatat sipas GOST 34.10-2012:

  • Po, TLS-GOST Ă«shtĂ« shumĂ« i nevojshĂ«m

  • Jo, konfigurimi me algoritmet GOST nuk Ă«shtĂ« i interesant

44 përdorues kanë votuar. 9 përdorues janë abstenuar.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster