ProHoster > Blogi > Haldamine > Kahefaktoriline autentimine saidil USB-märgi abil. Nüüd ka Linuxile
Kahefaktoriline autentimine saidil USB-märgi abil. Nüüd ka Linuxile
В üks meie varasematest artiklitest rääkisime kahefaktorilise autentimise tähtsusest ettevõtete korporatiivportaalides. Viimati demonstreerisime, kuidas seadistada turvaline autentimine IIS-i veebiserveris.
Kommentaarides paluti meil kirjutada Linuxi jaoks levinumate veebiserverite - nginx ja Apache - juhised.
Sa küsisid – meie kirjutasime.
Mida on vaja alustamiseks?
Iga kaasaegne Linuxi distributsioon. Tegin testseadistuse MX Linuxi versioonis 18.2_x64. See pole muidugi serverijaotus, kuid Debiani puhul pole tõenäoliselt mingeid erinevusi. Teiste distributsioonide puhul võivad konfiguratsiooniteekide teed veidi erineda.
Token. Jätkame mudeli kasutamist Rutoken EDS PKI, mis on kiirusomaduste poolest ideaalne ettevõtete kasutamiseks.
Eelmistes artiklites tuginesime asjaolule, et serveri ja kliendi sertifikaate väljastatakse Microsoft CA abil. Kuna aga seadistame kõike Linuxis, räägime teile ka alternatiivsest viisist nende sertifikaatide väljastamiseks – Linuxist lahkumata.
CA-na kasutame XCA-d (https://hohnstaedt.de/xca/), mis on saadaval mis tahes kaasaegses Linuxi distributsioonis. Kõiki toiminguid, mida me XCA-s teeme, saab teha käsurearežiimis, kasutades OpenSSL-i ja pkcs11-tööriista utiliite, kuid suurema lihtsuse ja selguse huvides me neid selles artiklis ei esita.
Alustamine
Installige:
$ apt-get install xca
Ja me jookseme:
$ xca
Loome oma andmebaasi CA jaoks - /root/CA.xdb
Soovitame sertifitseerimisasutuse andmebaasi salvestada kausta, kuhu on juurdepääs ainult administraatoril. See on oluline juursertifikaatide privaatvõtmete kaitsmiseks, mida kasutatakse kõigi teiste sertifikaatide allkirjastamiseks.
Looge võtmed ja juur-CA sertifikaat
Avaliku võtme infrastruktuur (PKI) põhineb hierarhilisel süsteemil. Peamine selles süsteemis on juursertifitseerimisasutus ehk juur-CA. Selle sertifikaat tuleb kõigepealt luua.
Loome CA jaoks RSA-2048 privaatvõtme. Selleks vahekaardil Privaatvõtmed suruma New Key ja valige sobiv tüüp.
Määrake uuele võtmepaarile nimi. Ma nimetasin seda CA võtmeks.
CA sertifikaadi väljastame ise, kasutades loodud võtmepaari. Selleks minge vahekaardile Sertifikaadid ja vajutage Uus sertifikaat.
Valige kindlasti SHA-256, sest SHA-1 kasutamist ei saa enam ohutuks pidada.
Valige kindlasti malliks [vaikimisi]CA. Ärge unustage klõpsata Rakenda kõik, vastasel juhul malli ei rakendata.
Vahekaardil Teema vali meie võtmepaar. Seal saate täita kõik sertifikaadi peamised väljad.
Võtmete ja https-serveri sertifikaadi loomine
Sarnaselt loome serverile RSA-2048 privaatvõtme, mina nimetasin seda Serveri võtmeks.
Sertifikaadi loomisel valime, et serveri sertifikaat peab olema allkirjastatud CA sertifikaadiga.
Siis vahekaardil Teema valige meie võti ja täitke nõutud väljad.
Looge kasutajale võtmed ja sertifikaat
Kasutaja privaatvõti salvestatakse meie märgile. Sellega töötamiseks peate meie veebisaidilt installima PKCS#11 teegi. Populaarsete distributsioonide jaoks levitame valmispakette, mis asuvad siin - https://www.rutoken.ru/support/download/pkcs/. Meil on ka komplektid arm64, armv7el, armv7hf, e2k, mipso32el jaoks, mille saab alla laadida meie SDK-st - https://www.rutoken.ru/developers/sdk/. Lisaks Linuxi komplektidele on olemas ka komplekte MacOS-i, freebsd ja androidi jaoks.
Uue PKCS#11 pakkuja lisamine XCA-sse. Selleks minge menüüsse Valikud vahekaardile PKCS#11 pakkuja.
Me vajutame lisama ja valige teegi PKCS#11 tee. Minu puhul on see usrliblibrtpkcs11ecp.so.
Sisestage PIN-kood. Ja ootame võtmepaari riistvara genereerimise lõpuleviimist
Loome kasutajale sertifikaadi analoogselt serveri sertifikaadiga. Seekord valime malli [vaikimisi] HTTPS_klient ja ärge unustage klõpsata Rakenda kõik.
Vahekaardil Teema sisestage teave kasutaja kohta. Tokeni sertifikaadi salvestamise taotlusele vastame jaatavalt.
Selle tulemusena vahekaardil Sertifikaadid XCA-s peaksite saama midagi sellist.
Sellest minimaalsest võtmete ja sertifikaatide komplektist piisab serverite enda seadistamise alustamiseks.
Konfigureerimiseks peame eksportima CA sertifikaadi, serveri sertifikaadi ja serveri privaatvõtme.
Selleks valige XCA vastaval vahekaardil soovitud kirje ja klõpsake nuppu Eksport.
nginx
Ma ei kirjuta, kuidas nginxi serverit installida ja käitada - Internetis on sellel teemal piisavalt artikleid, ametlikust dokumentatsioonist rääkimata. Läheme otse HTTPS-i ja kahefaktorilise autentimise seadistamise juurde, kasutades loa.
Lisage faili nginx.conf serveri jaotisesse järgmised read:
ssl_verify_client – määrab, et sertifikaadi usaldusahel tuleb kontrollida.
ssl_verify_depth – määrab ahelas usaldusväärse juursertifikaadi otsingu sügavuse. Kuna meie kliendisertifikaat allkirjastatakse kohe juursertifikaadile, on sügavus seatud 1-le. Kui kasutajasertifikaat on allkirjastatud vahepealsel CA-l, siis tuleb selles parameetris määrata 2 jne.
ssl_client_certificate – määrab usaldusväärse juursertifikaadi tee, mida kasutatakse kasutaja sertifikaadi usaldusväärsuse kontrollimisel.
ssl_certificate/ssl_certificate_key – märkige serveri sertifikaadi/privaatvõtme tee.
Ärge unustage käivitada käsku nginx -t, et kontrollida, kas konfiguratsioonis pole kirjavigu ja kas kõik failid on õiges kohas jne.
Ja see on kõik! Nagu näete, on seadistamine väga lihtne.
Proovime kõigepealt ilma märgita sisse logida. Saame selle pildi:
Minema about: eelistused # privaatsus, ja me läheme Turvaseadmed…
Me vajutame Koormuset lisada uus PKCS#11 seadmedraiver ja määrata meie librtpkcs11ecp.so tee.
Sertifikaadi nähtavuse kontrollimiseks võite minna aadressile Sertifikaadihaldur. Teil palutakse sisestada PIN-kood. Pärast õiget sisestamist saate kontrollida, mis vahekaardil on Teie sertifikaadid ilmus meie tunnistus tokenist.
Lähme nüüd märgiga. Firefox palub teil valida serveri jaoks valitava sertifikaadi. Valige meie sertifikaat.
KASUM!
Seadistamine toimub üks kord ja nagu näete sertifikaadi päringu aknas, saame oma valiku salvestada. Pärast seda peame iga kord portaali sisse logides sisestama ainult märgi ja sisestama vormindamisel määratud kasutaja PIN-koodi. Pärast sellist autentimist on serveril juba teada, milline kasutaja on sisse loginud ja enam ei saa luua täiendavaid aknaid kontrollimiseks, vaid lasta kasutaja kohe oma isiklikule kontole.
Apache
Nii nagu nginxi puhul, ei tohiks kellelgi olla probleeme apache'i installimisega. Kui te ei tea, kuidas seda veebiserverit installida, kasutage ametlikku dokumentatsiooni.
Ja hakkame seadistama oma HTTPS-i ja kahefaktorilist autentimist:
Kõigepealt peate aktiveerima mod_ssl:
$ a2enmod ssl
Seejärel lubage saidi HTTPS-i vaikeseaded:
$ a2ensite default-ssl
Nüüd muudame 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, kattuvad parameetrite nimed praktiliselt nginxi parameetrite nimedega, nii et ma ei hakka neid selgitama. Jällegi, kõik üksikasjadest huvitatud on dokumentatsiooniga tutvuma oodatud.
Nüüd taaskäivitame oma serveri:
$ service apache2 reload
$ service apache2 restart
Nagu näete, võtab kahefaktorilise autentimise seadistamine mis tahes veebiserveris, olgu see siis Windowsis või Linuxis, maksimaalselt ühe tunni. Ja brauserite seadistamine võtab umbes 5 minutit. Paljud inimesed arvavad, et kahefaktorilise autentimise seadistamine ja sellega töötamine on keeruline ja ebaselge. Loodan, et meie artikkel lükkab selle müüdi vähemalt natuke ümber.
Küsitluses saavad osaleda ainult registreerunud kasutajad. Logi sissepalun.
Kas vajate juhiseid TLS-i seadistamiseks sertifikaatidega vastavalt GOST 34.10-2012:
Jah, TLS-GOST on väga vajalik
Ei, GOST-algoritmidega häälestamine pole huvitav
44 kasutajat hääletas. 9 kasutajat jäi erapooletuks.