Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux
В ein af fyrri greinum okkar við ræddum mikilvægi tveggja þátta auðkenningar á fyrirtækjagáttum fyrirtækja. Síðast sýndum við hvernig á að setja upp örugga auðkenningu á IIS vefþjóninum.

Í athugasemdunum vorum við beðin um að skrifa leiðbeiningar fyrir algengustu netþjóna fyrir Linux - nginx og Apache.

Þú spurðir - við skrifuðum.

Hvað þarftu til að byrja?

  • Hvaða nútíma Linux dreifing sem er. Ég gerði prufuuppsetningu á MX Linux 18.2_x64. Þetta er auðvitað ekki dreifing á netþjónum, en ólíklegt er að það sé einhver munur á Debian. Fyrir aðrar dreifingar geta slóðir að stillingarsafnunum verið örlítið breytilegar.
  • Tákn. Við höldum áfram að nota líkanið Rutoken EDS PKI, sem er tilvalið hvað varðar hraðaeiginleika fyrir fyrirtækisnotkun.
  • Til að vinna með tákn í Linux þarftu að setja upp eftirfarandi pakka:
    libccid libpcsclite1 pcscd pcsc-tól opnast

Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

Útgáfa skírteina

Í fyrri greinum treystum við á þá staðreynd að netþjóns- og biðlaravottorð verða gefin út með Microsoft CA. En þar sem við erum að setja allt upp í Linux, munum við líka segja þér frá annarri leið til að gefa út þessi vottorð - án þess að yfirgefa Linux.
Við munum nota XCA sem CA (https://hohnstaedt.de/xca/), sem er fáanlegt á hvaða nútíma Linux dreifingu sem er. Allar aðgerðir sem við munum framkvæma í XCA er hægt að gera í skipanalínuham með því að nota OpenSSL og pkcs11-tól tólin, en til að auka einfaldleika og skýrleika munum við ekki kynna þær í þessari grein.

getting Started

  1. Setja upp:
    $ apt-get install xca
  2. Og við keyrum:
    $ xca
  3. Við búum til gagnagrunninn okkar fyrir CA - /root/CA.xdb
    Við mælum með því að geyma gagnagrunn vottunaraðila í möppu þar sem aðeins stjórnandi hefur aðgang. Þetta er mikilvægt til að vernda einkalykla rótarvottorðanna, sem eru notuð til að undirrita öll önnur skilríki.

Búðu til lykla og rót CA vottorð

Almenn lykilinnviði (PKI) er byggt á stigveldiskerfi. Aðalatriðið í þessu kerfi er rótarvottunaryfirvöld eða rót CA. Fyrst verður að búa til vottorð þess.

  1. Við búum til RSA-2048 einkalykil fyrir CA. Til að gera þetta, á flipanum Einkalyklar ýta Nýr lykill og veldu viðeigandi gerð.
  2. Stilltu nafn fyrir nýja lyklaparið. Ég kallaði það CA Key.
  3. Við gefum út CA vottorðið sjálft með því að nota lyklaparið sem búið var til. Til að gera þetta, farðu í flipann vottorð og smelltu Nýtt skírteini.
  4. Vertu viss um að velja SHA-256, vegna þess að notkun SHA-1 getur ekki lengur talist örugg.
  5. Vertu viss um að velja sem sniðmát [sjálfgefið] CA. Ekki gleyma að smella á Notaðu allt, annars er sniðmátið ekki notað.
  6. Í flipanum Efni veldu lyklaparið okkar. Þar er hægt að fylla út alla helstu reiti skírteinsins.

Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

Að búa til lykla og https netþjónsvottorð

  1. Á svipaðan hátt búum við til RSA-2048 einkalykil fyrir netþjóninn, ég kallaði það Server Key.
  2. Þegar vottorð er búið til veljum við að netþjónsvottorðið verði að vera undirritað með CA vottorði.
  3. Ekki gleyma að velja SHA-256.
  4. Við veljum sem sniðmát [sjálfgefið] HTTPS_þjónn. Smelltu á Notaðu allt.
  5. Síðan á flipanum Efni veldu lykilinn okkar og fylltu út nauðsynlega reiti.

Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

Búðu til lykla og vottorð fyrir notandann

  1. Einkalykill notandans verður geymdur á tákninu okkar. Til að vinna með það þarftu að setja upp PKCS#11 bókasafnið af vefsíðunni okkar. Fyrir vinsælar dreifingar dreifum við tilbúnum pakka, sem eru staðsettir hér - https://www.rutoken.ru/support/download/pkcs/. Við erum líka með samsetningar fyrir arm64, armv7el, armv7hf, e2k, mipso32el, sem hægt er að hlaða niður frá SDK okkar - https://www.rutoken.ru/developers/sdk/. Auk samsetninga fyrir Linux eru einnig samsetningar fyrir macOS, freebsd og Android.
  2. Bætir nýjum PKCS#11 þjónustuaðila við XCA. Til að gera þetta, farðu í valmyndina Valmöguleikar í flipann PKCS#11 veitandi.
  3. Við ýtum á Bæta við og veldu slóðina að PKCS#11 bókasafninu. Í mínu tilfelli er það usrliblibrtpkcs11ecp.so.
  4. Við þurfum sniðið Rutoken EDS PKI tákn. Sæktu rtAdmin tólið - https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. Við framkvæmum
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-код пользователя>
  6. Við veljum RSA-2048 lykilinn fyrir Rutoken EDS PKI sem lyklategund. Ég kallaði þennan lykil Client Key.

    Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

  7. Sláðu inn PIN-númerið. Og við bíðum eftir að vélbúnaðarframleiðslu lyklaparsins sé lokið

    Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

  8. Við búum til vottorð fyrir notandann á hliðstæðan hátt við netþjónsvottorðið. Að þessu sinni veljum við sniðmát [sjálfgefið] HTTPS_client og ekki gleyma að smella Notaðu allt.
  9. Í flipanum Efni slá inn upplýsingar um notandann. Við svörum játandi beiðni um að vista vottorðið fyrir táknið.

Þar af leiðandi, á flipanum Vottorð í XCA ættirðu að fá eitthvað svona.

Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux
Þetta lágmarkssett af lyklum og vottorðum er nóg til að byrja að setja upp netþjónana sjálfa.

Til að stilla þurfum við að flytja út CA vottorðið, netþjónsvottorðið og einkalykilinn miðlara.

Til að gera þetta, veldu viðkomandi færslu á samsvarandi flipa í XCA og smelltu útflutningur.

Nginx

Ég mun ekki skrifa hvernig á að setja upp og keyra nginx netþjón - það eru nógu margar greinar um þetta efni á netinu, svo ekki sé minnst á opinberu skjölin. Við skulum fara beint í að setja upp HTTPS og tvíþætta auðkenningu með því að nota tákn.

Bættu eftirfarandi línum við miðlarahlutann í nginx.conf:

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

Ítarlega lýsingu á öllum breytum sem tengjast uppsetningu ssl í nginx er að finna hér - https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Ég ætla aðeins að lýsa þeim sem ég spurði sjálfan mig í stuttu máli:

  • ssl_verify_client - tilgreinir að staðfesta þurfi traustkeðju vottorðsins.
  • ssl_verify_depth - Skilgreinir leitardýpt fyrir trausta rótarvottorðið í keðjunni. Þar sem biðlaravottorð okkar er strax undirritað á rótarvottorðinu er dýptin stillt á 1. Ef notendaskírteinið er undirritað á millistigs CA, þá verður að tilgreina 2 í þessari færibreytu, og svo framvegis.
  • ssl_client_certificate - tilgreinir slóðina að trausta rótarvottorðinu, sem er notað þegar kannað er traust á vottorði notandans.
  • ssl_certificate/ssl_certificate_key - tilgreinið slóðina að netþjónsvottorðinu/einkalykli.

Ekki gleyma að keyra nginx -t til að athuga hvort engar innsláttarvillur séu í stillingunni og að allar skrár séu á réttum stað o.s.frv.

Og það er allt! Eins og þú sérð er uppsetningin mjög einföld.

Athugaðu að það virki í Firefox

Þar sem við gerum allt algjörlega í Linux, munum við gera ráð fyrir að notendur okkar vinni líka í Linux (ef þeir eru með Windows, þá sjá leiðbeiningar um uppsetningu vafra í fyrri grein.

  1. Við skulum ræsa Firefox.
  2. Reynum fyrst að skrá okkur inn án tákns. Við fáum þessa mynd:

    Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

  3. Við höldum áfram um: óskir # næði, og við förum til Öryggistæki…
  4. Við ýtum á hlaðatil að bæta við nýjum PKCS#11 tækjastjóra og tilgreina slóðina að librtpkcs11ecp.so okkar.
  5. Til að athuga hvort vottorðið sé sýnilegt geturðu farið á Vottorðsstjóri. Þú verður beðinn um að slá inn PIN-númerið þitt. Eftir rétt inntak geturðu athugað hvað er á flipanum Skírteinin þín vottorð okkar frá tákninu birtist.
  6. Nú skulum við fara með táknið. Firefox biður þig um að velja vottorð sem verður valið fyrir netþjóninn. Veldu vottorðið okkar.

    Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

  7. HAGNAÐUR!

    Tveggja þátta auðkenning á síðunni með USB tákni. Nú líka fyrir Linux

Uppsetningin er gerð einu sinni og eins og þú sérð í skírteinisbeiðnarglugganum getum við vistað valið okkar. Eftir þetta, í hvert skipti sem við skráum okkur inn á gáttina, þurfum við aðeins að setja inn tákn og slá inn PIN-númer notanda sem var tilgreint við snið. Eftir slíka auðkenningu veit þjónninn nú þegar hvaða notandi hefur skráð sig inn og þú getur ekki lengur búið til neina viðbótarglugga til staðfestingar heldur hleypt notandanum strax inn á persónulegan reikning sinn.

Apache

Rétt eins og með nginx ætti enginn að eiga í vandræðum með að setja upp Apache. Ef þú veist ekki hvernig á að setja upp þennan vefþjón skaltu bara nota opinberu skjölin.

Og við byrjum að setja upp HTTPS okkar og tvíþætta auðkenningu:

  1. Fyrst þarftu að virkja mod_ssl:
    $ a2enmod ssl
  2. Og virkjaðu síðan sjálfgefnar HTTPS stillingar síðunnar:
    $ a2ensite default-ssl
  3. Nú breytum við stillingarskránni: /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

    Eins og þú sérð falla nöfn færibreytanna nánast saman við nöfn breytanna í nginx, svo ég mun ekki útskýra þær. Aftur, allir sem hafa áhuga á smáatriðum eru velkomnir í skjölin.
    Nú endurræsum við netþjóninn okkar:

    $ service apache2 reload
    $ service apache2 restart

  4. Eins og þú sérð tekur uppsetning tveggja þátta auðkenningar á hvaða vefþjóni sem er, hvort sem er á Windows eða Linux, að hámarki eina klukkustund. Og uppsetning vafra tekur um 5 mínútur. Margir halda að það sé erfitt og óljóst að setja upp og vinna með tvíþætt auðkenningu. Ég vona að greinin okkar afnei þessa goðsögn, að minnsta kosti aðeins.

Aðeins skráðir notendur geta tekið þátt í könnuninni. Skráðu þig inn, takk.

Þarftu leiðbeiningar um uppsetningu TLS með vottorðum samkvæmt GOST 34.10-2012:

  • Já, TLS-GOST er mjög nauðsynlegt

  • Nei, stilla með GOST reikniritum er ekki áhugavert

44 notendur kusu. 9 notendur sátu hjá.

Heimild: www.habr.com

Bæta við athugasemd