ProHoster > Blog > Administrazioa > 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
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
Instalatu:
$ apt-get install xca
Eta korrika egiten dugu:
$ xca
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.
RSA-2048 gako pribatu bat sortzen dugu CArako. Horretarako, fitxan Giltza pribatuak bultzatu Giltza berria eta hautatu mota egokia.
Ezarri izen bat gako-pare berriari. CA Key deitu nion.
CA ziurtagiria bera igortzen dugu, sortutako gako bikotea erabiliz. Horretarako, joan fitxara Ziurtagiriak eta egin klik Ziurtagiri berria.
Ziurtatu aukeratzen duzula SHA-256, SHA-1 erabiltzea ezin baita segurutzat jo.
Ziurtatu txantiloi gisa aukeratzen duzula [lehenetsia] CA. Ez ahaztu klik egitea Aplikatu guztiak, bestela txantiloia ez da aplikatuko.
Fitxan Gaia aukeratu gure giltza bikotea. Bertan ziurtagiriaren eremu nagusi guztiak bete ditzakezu.
Gakoak eta https zerbitzariaren ziurtagiria sortzea
Era berean, zerbitzariarentzat RSA-2048 gako pribatu bat sortzen dugu, zerbitzariaren gakoa deitu nuen.
Ziurtagiri bat sortzean, zerbitzariaren ziurtagiria CA ziurtagiri batekin sinatu behar dela hautatzen dugu.
Ez ahaztu hautatzeko SHA-256.
Txantiloi gisa aukeratzen dugu [lehenetsia] HTTPS_zerbitzaria. Egin klik Aplikatu guztiak.
Ondoren, fitxan Gaia hautatu gure gakoa eta bete behar diren eremuak.
Sortu giltzak eta ziurtagiria erabiltzailearentzat
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.
XCAri PKCS#11 hornitzaile berria gehitzea. Horretarako, joan menura Aukerak fitxara PKCS#11 hornitzailea.
Egin klik Gehitu eta hautatu PKCS#11 liburutegirako bidea. Nire kasuan usrliblibrtpkcs11ecp.so da.
Rutoken EDS PKIrako RSA-2048 gakoa hautatzen dugu gako mota gisa. Gako honi Bezero-gakoa deitu nion.
Sartu PIN kodea. Eta gako-bikotearen hardware-sorkuntza amaitu arte itxarongo dugu
Erabiltzailearentzat ziurtagiri bat sortzen dugu zerbitzariaren ziurtagiriarekin analogia eginez. Oraingoan txantiloi bat hautatuko dugu [lehenetsia] HTTPS_client eta ez ahaztu klik egitea Aplikatu guztiak.
Fitxan Gaia sartu erabiltzaileari buruzko informazioa. Tokenaren ziurtagiria gordetzeko eskaerari baietz erantzuten diogu.
Ondorioz, fitxan Ziurtagiriak XCAn horrelako zerbait lortu beharko zenuke.
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:
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.
Saia gaitezen lehenengo tokenrik gabe saioa hasten. Irudi hau lortzen dugu:
Aurrera jarraitzen dugu about: lehentasunak # pribatutasun, eta joango gara Segurtasun gailuakβ¦
Egin klik KargaPKCS#11 gailu kontrolatzaile berri bat gehitzeko eta gure librtpkcs11ecp.so-rako bidea zehazteko.
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.
Orain goazen tokenarekin. Firefoxek zerbitzarirako hautatuko den ziurtagiri bat hautatzeko eskatzen dizu. Aukeratu gure ziurtagiria.
IRABAZIA!
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:
Lehenik eta behin mod_ssl aktibatu behar duzu:
$ a2enmod ssl
Eta gero gaitu gunearen HTTPS ezarpen lehenetsiak:
$ a2ensite default-ssl
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
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.