Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai
Π’ gure aurreko artikuluetako bat enpresen atari korporatiboetan bi faktoreen autentifikazioaren garrantziaz hitz egin dugu. Azken aldian IIS web zerbitzarian autentifikazio segurua nola konfiguratu erakutsi genuen.

Iruzkinetan, Linux-erako web zerbitzari ohikoenetarako argibideak idazteko eskatu ziguten nginx eta Apache.

Zuk galdetu - idatzi dugu.

Zer behar duzu hasteko?

  • Edozein Linux banaketa moderno. Proba konfigurazioa egin nuen MX Linux 18.2_x64-n. Hau ez da zerbitzariaren banaketa, noski, baina nekez egongo da Debian-en desberdintasunik. Beste banaketa batzuetarako, konfigurazio liburutegietarako bideak apur bat desberdinak izan daitezke.
  • Tokena. Eredua erabiltzen jarraitzen dugu Rutoken EDS PKI, erabilera korporatiborako abiadura ezaugarriei dagokienez aproposa dena.
  • Linux-en token batekin lan egiteko, pakete hauek instalatu behar dituzu:
    libccid libpcsclite1 pcscd pcsc-tools opensc

Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

Ziurtagiriak ematea

Aurreko artikuluetan, zerbitzari eta bezeroen ziurtagiriak Microsoft CA erabiliz emango direla oinarritu ginen. Baina Linux-en dena konfiguratzen ari garenez, ziurtagiri hauek igortzeko beste modu baten berri ere emango dizugu, Linuxetik irten gabe.
XCA erabiliko dugu CA gisa (https://hohnstaedt.de/xca/), edozein Linux banaketa modernotan eskuragarri dagoena. XCAn egingo ditugun ekintza guztiak komando lerroko moduan egin daitezke OpenSSL eta pkcs11-tool utilitateak erabiliz, baina sinpletasun eta argitasun handiagoa lortzeko, ez ditugu artikulu honetan aurkeztuko.

Pizten

  1. Instalatu:
    $ apt-get install xca
  2. Eta korrika egiten dugu:
    $ xca
  3. Gure datu-basea sortzen dugu CA - /root/CA.xdb
    Autoritate ziurtagiri-emaileen datu-basea administratzaileak soilik sarbidea duen karpeta batean gordetzea gomendatzen dugu. Garrantzitsua da erro-ziurtagirien gako pribatuak babesteko, gainerako ziurtagiri guztiak sinatzeko erabiltzen direnak.

Sortu gakoak eta root CA ziurtagiria

Gako publikoko azpiegitura (PKI) sistema hierarkiko batean oinarritzen da. Sistema honen gauza nagusia root ziurtagiri-agintaritzak edo root CA da. Bere ziurtagiria sortu behar da lehenik.

  1. RSA-2048 gako pribatu bat sortzen dugu CArako. Horretarako, fitxan Giltza pribatuak bultzatu Giltza berria eta hautatu mota egokia.
  2. Ezarri izen bat gako-pare berriari. CA Key deitu nion.
  3. CA ziurtagiria bera igortzen dugu, sortutako gako bikotea erabiliz. Horretarako, joan fitxara Ziurtagiriak eta egin klik Ziurtagiri berria.
  4. Ziurtatu aukeratzen duzula SHA-256, SHA-1 erabiltzea ezin baita segurutzat jo.
  5. Ziurtatu txantiloi gisa aukeratzen duzula [lehenetsia] CA. Ez ahaztu klik egitea Aplikatu guztiak, bestela txantiloia ez da aplikatuko.
  6. Fitxan Gaia aukeratu gure giltza bikotea. Bertan ziurtagiriaren eremu nagusi guztiak bete ditzakezu.

Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

Gakoak eta https zerbitzariaren ziurtagiria sortzea

  1. Era berean, zerbitzariarentzat RSA-2048 gako pribatu bat sortzen dugu, zerbitzariaren gakoa deitu nuen.
  2. Ziurtagiri bat sortzean, zerbitzariaren ziurtagiria CA ziurtagiri batekin sinatu behar dela hautatzen dugu.
  3. Ez ahaztu hautatzeko SHA-256.
  4. Txantiloi gisa aukeratzen dugu [lehenetsia] HTTPS_zerbitzaria. Egin klik Aplikatu guztiak.
  5. Ondoren, fitxan Gaia hautatu gure gakoa eta bete behar diren eremuak.

Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

Sortu giltzak eta ziurtagiria erabiltzailearentzat

  1. Erabiltzailearen gako pribatua gure tokenean gordeko da. Berarekin lan egiteko, gure webgunetik PKCS#11 liburutegia instalatu behar duzu. Banaketa ezagunetarako, prest dauden paketeak banatzen ditugu, hemen kokatuta daudenak - https://www.rutoken.ru/support/download/pkcs/. Arm64, armv7el, armv7hf, e2k, mipso32el-en muntaiak ere baditugu, gure SDK-tik deskargatu daitezkeenak - https://www.rutoken.ru/developers/sdk/. Linux-erako muntaketez gain, macOS, freebsd eta Android-erako muntaketak ere badaude.
  2. XCAri PKCS#11 hornitzaile berria gehitzea. Horretarako, joan menura Aukerak fitxara PKCS#11 hornitzailea.
  3. Egin klik Gehitu eta hautatu PKCS#11 liburutegirako bidea. Nire kasuan usrliblibrtpkcs11ecp.so da.
  4. Formateatutako Rutoken EDS PKI token bat beharko dugu. Deskargatu rtAdmin utilitatea - https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. Burutzen dugu
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>
  6. Rutoken EDS PKIrako RSA-2048 gakoa hautatzen dugu gako mota gisa. Gako honi Bezero-gakoa deitu nion.

    Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

  7. Sartu PIN kodea. Eta gako-bikotearen hardware-sorkuntza amaitu arte itxarongo dugu

    Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

  8. Erabiltzailearentzat ziurtagiri bat sortzen dugu zerbitzariaren ziurtagiriarekin analogia eginez. Oraingoan txantiloi bat hautatuko dugu [lehenetsia] HTTPS_client eta ez ahaztu klik egitea Aplikatu guztiak.
  9. Fitxan Gaia sartu erabiltzaileari buruzko informazioa. Tokenaren ziurtagiria gordetzeko eskaerari baietz erantzuten diogu.

Ondorioz, fitxan Ziurtagiriak XCAn horrelako zerbait lortu beharko zenuke.

Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai
Gutxieneko gako eta ziurtagiri multzo hori nahikoa da zerbitzariak beraiek konfiguratzen hasteko.

Konfiguratzeko, CA ziurtagiria, zerbitzariaren ziurtagiria eta zerbitzariaren gako pribatua esportatu behar ditugu.

Horretarako, hautatu nahi duzun sarrera XCAko dagokion fitxan eta egin klik Esportatu.

nginx

Ez dut idatziko nginx zerbitzari bat nola instalatu eta exekutatu - Interneten gai honi buruzko artikulu nahikoa dago, dokumentazio ofiziala ahaztu gabe. Goazen zuzenean HTTPS eta bi faktoreko autentifikazioa konfiguratzera token bat erabiliz.

Gehitu lerro hauek nginx.conf-en zerbitzariaren atalean:

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

nginx-en ssl konfiguratzearekin lotutako parametro guztien deskribapen zehatza hemen aurki daiteke - https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Nire buruari galdetu nizkionak labur deskribatuko ditut:

  • ssl_verify_client - ziurtagiriaren konfiantza-katea egiaztatu behar dela zehazten du.
  • ssl_verify_depth - Kateko erro-ziurtagiri fidagarriaren bilaketa-sakonera definitzen du. Gure bezero-ziurtagiria erroko ziurtagirian berehala sinatzen denez, sakonera 1ean ezartzen da. Erabiltzaile-ziurtagiria tarteko CA batean sinatzen bada, 2 zehaztu behar da parametro honetan, eta abar.
  • ssl_client_certificate - erro-ziurtagiri fidagarriaren bidea zehazten du, erabiltzailearen ziurtagiriaren konfiantza egiaztatzean erabiltzen dena.
  • ssl_certificate/ssl_certificate_key - adierazi zerbitzariaren ziurtagiriaren/gako pribatuaren bidea.

Ez ahaztu nginx -t exekutatzea konfigurazioan akatsik ez dagoela egiaztatzeko, eta fitxategi guztiak leku egokian daudela, eta abar.

Eta hori guztia! Ikus dezakezunez, konfigurazioa oso erraza da.

Firefoxen funtzionatzen ari dela egiaztatzea

Guztia Linux-en egiten dugunez, gure erabiltzaileek Linux-en ere lan egiten dutela suposatuko dugu (Windows badute, orduan ikusi arakatzaileak konfiguratzeko argibideak aurreko artikuluan.

  1. Abiarazi dezagun Firefox.
  2. Saia gaitezen lehenengo tokenrik gabe saioa hasten. Irudi hau lortzen dugu:

    Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

  3. Aurrera jarraitzen dugu about: lehentasunak # pribatutasun, eta joango gara Segurtasun gailuak…
  4. Egin klik KargaPKCS#11 gailu kontrolatzaile berri bat gehitzeko eta gure librtpkcs11ecp.so-rako bidea zehazteko.
  5. Ziurtagiria ikusgai dagoela egiaztatzeko, hona jo dezakezu Ziurtagirien kudeatzailea. PINa sartzeko eskatuko zaizu. Zuzen idatzi ondoren, fitxan zer dagoen egiaztatu dezakezu Zure ziurtagiriak tokeneko gure ziurtagiria agertu zen.
  6. Orain goazen tokenarekin. Firefoxek zerbitzarirako hautatuko den ziurtagiri bat hautatzeko eskatzen dizu. Aukeratu gure ziurtagiria.

    Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

  7. IRABAZIA!

    Bi faktoreko autentifikazioa webgunean USB token bat erabiliz. Orain Linuxerako ere bai

Konfigurazioa behin egiten da, eta ziurtagiria eskatzeko leihoan ikus dezakezun bezala, gure hautaketa gorde dezakegu. Honen ostean, atarian sartzen garen bakoitzean, token bat sartu eta formateatzean zehaztutako erabiltzailearen PIN kodea sartu besterik ez dugu beharko. Autentifikazio horren ondoren, zerbitzariak dagoeneko badaki zein erabiltzaile hasi den saioa eta jada ezin duzu egiaztatzeko leiho gehigarririk sortu, baina berehala utzi erabiltzaileari bere kontu pertsonalean sartzen.

Apache

Nginx-ekin bezala, inork ez luke arazorik izan behar apache instalatzeko. Web zerbitzari hau nola instalatu ez badakizu, erabili dokumentazio ofiziala.

Eta gure HTTPS eta bi faktoreko autentifikazioa konfiguratzen hasiko gara:

  1. Lehenik eta behin mod_ssl aktibatu behar duzu:
    $ a2enmod ssl
  2. Eta gero gaitu gunearen HTTPS ezarpen lehenetsiak:
    $ a2ensite default-ssl
  3. Orain konfigurazio fitxategia editatzen dugu: /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

    Ikus dezakezunez, parametroen izenak ia bat datoz nginx-en parametroen izenekin, beraz, ez ditut azalduko. Berriz ere, xehetasunetan interesa duen edonor ongi etorria da dokumentaziora.
    Orain gure zerbitzaria berrabiaraziko dugu:

    $ service apache2 reload
    $ service apache2 restart

  4. Ikus dezakezunez, bi faktoreko autentifikazioa konfiguratzeak edozein web zerbitzaritan, Windows edo Linux-en, ordubete behar du gehienez. Eta nabigatzaileak konfiguratzeko 5 minutu inguru behar dira. Jende askok uste du bi faktoreko autentifikazioarekin konfiguratzea eta lan egitea zaila eta argia ez dela. Espero dut gure artikuluak mito hau deuseztatzea, pixka bat behintzat.

Erregistratutako erabiltzaileek soilik parte hartu dezakete inkestan. Hasi saioa, mesedez.

GOST 34.10-2012 ziurtagiriekin TLS konfiguratzeko argibideak behar dituzu:

  • Bai, TLS-GOST oso beharrezkoa da

  • Ez, GOST algoritmoekin sintonizatzea ez da interesgarria

44 erabiltzailek eman dute botoa. 9 erabiltzaile abstenitu ziren.

Iturria: www.habr.com

Gehitu iruzkin berria