Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux
В un o'n herthyglau blaenorol buom yn siarad am bwysigrwydd dilysu dau ffactor ar byrth corfforaethol cwmnïau. Y tro diwethaf i ni ddangos sut i sefydlu dilysiad diogel yn y gweinydd gwe IIS.

Yn y sylwadau, gofynnwyd i ni ysgrifennu cyfarwyddiadau ar gyfer y gweinyddwyr gwe mwyaf cyffredin ar gyfer Linux - nginx ac Apache.

Gofynasoch - ysgrifenasom.

Beth sydd ei angen arnoch i ddechrau?

  • Unrhyw ddosbarthiad Linux modern. Fe wnes i osod prawf ar MX Linux 18.2_x64. Nid yw hwn yn ddosbarthiad gweinydd wrth gwrs, ond mae'n annhebygol y bydd unrhyw wahaniaethau i Debian. Ar gyfer dosbarthiadau eraill, gall y llwybrau i'r llyfrgelloedd ffurfweddu amrywio ychydig.
  • Tocyn. Rydym yn parhau i ddefnyddio’r model Rutoken EDS PKI, sy'n ddelfrydol o ran nodweddion cyflymder ar gyfer defnydd corfforaethol.
  • I weithio gyda thocyn yn Linux, mae angen i chi osod y pecynnau canlynol:
    libccid libpcsclite1 pcscd pcsc-tools opensc

Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

Cyhoeddi tystysgrifau

Mewn erthyglau blaenorol, roeddem yn dibynnu ar y ffaith y bydd tystysgrifau gweinydd a chleient yn cael eu cyhoeddi gan ddefnyddio Microsoft CA. Ond gan ein bod yn sefydlu popeth yn Linux, byddwn hefyd yn dweud wrthych am ffordd arall o gyhoeddi'r tystysgrifau hyn - heb adael Linux.
Byddwn yn defnyddio XCA fel CA (https://hohnstaedt.de/xca/), sydd ar gael ar unrhyw ddosbarthiad Linux modern. Gellir gwneud yr holl gamau gweithredu y byddwn yn eu cyflawni yn XCA yn y modd llinell orchymyn gan ddefnyddio'r cyfleustodau OpenSSL a pkcs11-tool, ond er mwyn mwy o symlrwydd ac eglurder, ni fyddwn yn eu cyflwyno yn yr erthygl hon.

Dechrau Arni

  1. Gosod:
    $ apt-get install xca
  2. Ac rydyn ni'n rhedeg:
    $ xca
  3. Rydym yn creu ein cronfa ddata ar gyfer CA - /root/CA.xdb
    Rydym yn argymell storio cronfa ddata'r Awdurdod Tystysgrif mewn ffolder lle mai dim ond y gweinyddwr sydd â mynediad. Mae hyn yn bwysig er mwyn diogelu allweddi preifat y tystysgrifau gwraidd, a ddefnyddir i lofnodi pob tystysgrif arall.

Creu allweddi a thystysgrif gwraidd CA

Mae seilwaith allweddi cyhoeddus (PKI) yn seiliedig ar system hierarchaidd. Y prif beth yn y system hon yw'r awdurdod ardystio gwraidd neu CA gwraidd. Rhaid creu ei dystysgrif yn gyntaf.

  1. Rydym yn creu allwedd breifat RSA-2048 ar gyfer yr Awdurdod Cymwys. I wneud hyn, ar y tab Allweddi Preifat gwthio Allwedd newydd a dewis y math priodol.
  2. Gosod enw ar gyfer y pâr allweddi newydd. Yr wyf yn ei alw CA Key.
  3. Rydyn ni'n cyhoeddi'r dystysgrif CA ei hun, gan ddefnyddio'r pâr allwedd a grëwyd. I wneud hyn, ewch i'r tab Tystysgrifau a chlicio Tystysgrif Newydd.
  4. Byddwch yn siwr i ddewis SHA-256, oherwydd ni ellir ystyried defnyddio SHA-1 yn ddiogel mwyach.
  5. Byddwch yn siwr i ddewis fel templed [diofyn]CA. Peidiwch ag anghofio clicio ar Gwnewch gais i gyd, fel arall nid yw'r templed yn cael ei gymhwyso.
  6. Yn y tab Pwnc dewiswch ein pâr allweddol. Yno, gallwch lenwi holl brif feysydd y dystysgrif.

Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

Creu allweddi a thystysgrif gweinydd https

  1. Mewn ffordd debyg, rydym yn creu allwedd breifat RSA-2048 ar gyfer y gweinydd, fe'i gelwais yn Allwedd Gweinyddwr.
  2. Wrth greu tystysgrif, rydym yn dewis bod yn rhaid i dystysgrif y gweinydd gael ei llofnodi â thystysgrif CA.
  3. Peidiwch ag anghofio dewis SHA-256.
  4. Rydym yn dewis fel templed [diofyn] HTTPS_server. Cliciwch ar Gwnewch gais i gyd.
  5. Yna ar y tab Pwnc dewiswch ein allwedd a llenwch y meysydd gofynnol.

Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

Creu allweddi a thystysgrif ar gyfer y defnyddiwr

  1. Bydd allwedd breifat y defnyddiwr yn cael ei storio ar ein tocyn. I weithio gydag ef, mae angen i chi osod y llyfrgell PKCS#11 o'n gwefan. Ar gyfer dosbarthiadau poblogaidd, rydym yn dosbarthu pecynnau parod, sydd wedi'u lleoli yma - https://www.rutoken.ru/support/download/pkcs/. Mae gennym hefyd wasanaethau ar gyfer arm64, armv7el, armv7hf, e2k, mipso32el, y gellir eu llwytho i lawr o'n SDK - https://www.rutoken.ru/developers/sdk/. Yn ogystal â gwasanaethau ar gyfer Linux, mae yna hefyd gynulliadau ar gyfer macOS, freebsd ac android.
  2. Ychwanegu Darparwr PKCS#11 newydd i XCA. I wneud hyn, ewch i'r ddewislen Dewisiadau i'r tab Darparwr PKCS#11.
  3. Rydym yn pwyso Ychwanegu a dewiswch y llwybr i'r llyfrgell PKCS#11. Yn fy achos i, mae'n usrliblibrtpkcs11ecp.so.
  4. Bydd angen tocyn Rutoken EDS PKI wedi'i fformatio arnom. Lawrlwythwch y cyfleustodau rtAdmin - https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. Rydym yn cyflawni
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-код пользователя>
  6. Rydym yn dewis yr allwedd RSA-2048 ar gyfer y Rutoken EDS PKI fel y math allweddol. Gelwais yr Allwedd Cleient allweddol hwn.

    Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

  7. Rhowch y cod PIN. Ac rydym yn aros am gwblhau cynhyrchu caledwedd y pâr allweddol

    Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

  8. Rydym yn creu tystysgrif ar gyfer y defnyddiwr trwy gyfatebiaeth â thystysgrif y gweinydd. Y tro hwn rydym yn dewis templed [diofyn] HTTPS_client a pheidiwch ag anghofio clicio Gwnewch gais i gyd.
  9. Yn y tab Pwnc mewnbynnu gwybodaeth am y defnyddiwr. Rydym yn ateb yn gadarnhaol i'r cais i arbed y dystysgrif ar gyfer y tocyn.

O ganlyniad, ar y tab Tystysgrifau yn XCA dylech gael rhywbeth fel hyn.

Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux
Mae'r set leiaf hon o allweddi a thystysgrifau yn ddigon i ddechrau sefydlu'r gweinyddwyr eu hunain.

I ffurfweddu, mae angen i ni allforio'r dystysgrif CA, tystysgrif gweinydd ac allwedd breifat y gweinydd.

I wneud hyn, dewiswch y cofnod a ddymunir ar y tab cyfatebol yn XCA a chliciwch Export.

Nginx

Ni fyddaf yn ysgrifennu sut i osod a rhedeg gweinydd nginx - mae digon o erthyglau ar y pwnc hwn ar y Rhyngrwyd, heb sôn am y ddogfennaeth swyddogol. Gadewch i ni fynd yn syth at sefydlu HTTPS a dilysu dau ffactor gan ddefnyddio tocyn.

Ychwanegwch y llinellau canlynol i'r adran gweinydd yn 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;
}

Mae disgrifiad manwl o'r holl baramedrau sy'n gysylltiedig â ffurfweddu ssl yn nginx i'w weld yma - https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Disgrifiaf yn fyr y rhai a ofynnais i mi fy hun:

  • ssl_verify_client - yn nodi bod angen gwirio'r gadwyn ymddiriedaeth ar gyfer y dystysgrif.
  • ssl_verify_depth - Yn diffinio dyfnder y chwiliad ar gyfer y dystysgrif gwraidd dibynadwy yn y gadwyn. Gan fod ein tystysgrif cleient wedi'i lofnodi ar unwaith ar y dystysgrif gwraidd, mae'r dyfnder wedi'i osod i 1. Os yw'r dystysgrif defnyddiwr wedi'i llofnodi ar CA canolradd, yna rhaid nodi 2 yn y paramedr hwn, ac ati.
  • ssl_client_certificate - yn pennu'r llwybr i'r dystysgrif gwraidd y gellir ymddiried ynddo, a ddefnyddir wrth wirio ymddiriedaeth yn nhystysgrif y defnyddiwr.
  • ssl_certificate/ssl_certificate_key - nodwch y llwybr i dystysgrif y gweinydd/allwedd breifat.

Peidiwch ag anghofio rhedeg nginx -t i wirio nad oes teipiau yn y ffurfwedd, a bod yr holl ffeiliau yn y lle iawn, ac ati.

A dyna i gyd! Fel y gallwch weld, mae'r gosodiad yn syml iawn.

Gwirio ei fod yn gweithio yn Firefox

Gan ein bod yn gwneud popeth yn gyfan gwbl yn Linux, byddwn yn cymryd yn ganiataol bod ein defnyddwyr hefyd yn gweithio yn Linux (os oes ganddynt Windows, felly gweler y cyfarwyddiadau ar gyfer sefydlu porwyr yn yr erthygl flaenorol.

  1. Gadewch i ni lansio Firefox.
  2. Gadewch i ni geisio mewngofnodi heb docyn yn gyntaf. Rydym yn cael y llun hwn:

    Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

  3. Gadewch i ni fynd i am: hoffterau # preifatrwydd, ac awn i Dyfeisiau Diogelwch…
  4. Rydym yn pwyso Llwythi ychwanegu Gyrrwr Dyfais PKCS#11 newydd a nodi'r llwybr i'n librtpkcs11ecp.so.
  5. I wirio bod y dystysgrif yn weladwy, gallwch fynd i Rheolwr Tystysgrif. Fe'ch anogir i nodi'ch PIN. Ar ôl mewnbwn cywir, gallwch wirio beth sydd ar y tab Eich Tystysgrifau ymddangosodd ein tystysgrif o'r tocyn.
  6. Nawr gadewch i ni fynd gyda'r tocyn. Mae Firefox yn eich annog i ddewis tystysgrif a fydd yn cael ei dewis ar gyfer y gweinydd. Dewiswch ein tystysgrif.

    Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

  7. PROFFIT!

    Dilysu dau ffactor ar y wefan gan ddefnyddio tocyn USB. Nawr hefyd ar gyfer Linux

Gwneir y gosodiad unwaith, ac fel y gwelwch yn y ffenestr cais am dystysgrif, gallwn arbed ein dewis. Ar ôl hyn, bob tro y byddwn yn mewngofnodi i'r porth, dim ond tocyn a nodi'r cod PIN defnyddiwr a nodwyd wrth fformatio y bydd angen i ni ei fewnosod. Ar ôl dilysu o'r fath, mae'r gweinydd eisoes yn gwybod pa ddefnyddiwr sydd wedi mewngofnodi ac ni allwch greu unrhyw ffenestri ychwanegol i'w dilysu mwyach, ond gadewch y defnyddiwr i mewn i'w gyfrif personol ar unwaith.

Apache

Yn union fel gyda nginx, ni ddylai unrhyw un gael unrhyw broblemau wrth osod apache. Os nad ydych chi'n gwybod sut i osod y gweinydd gwe hwn, defnyddiwch y ddogfennaeth swyddogol.

Ac rydym yn dechrau sefydlu ein HTTPS a dilysu dau ffactor:

  1. Yn gyntaf mae angen i chi actifadu mod_ssl:
    $ a2enmod ssl
  2. Ac yna galluogi gosodiadau HTTPS diofyn y wefan:
    $ a2ensite default-ssl
  3. Nawr rydym yn golygu'r ffeil ffurfweddu: /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

    Fel y gwelwch, mae enwau'r paramedrau yn cyd-fynd yn ymarferol ag enwau'r paramedrau yn nginx, felly ni fyddaf yn eu hesbonio. Unwaith eto, mae croeso i unrhyw un sydd â diddordeb yn y manylion i'r ddogfennaeth.
    Nawr rydyn ni'n ailgychwyn ein gweinydd:

    $ service apache2 reload
    $ service apache2 restart

  4. Fel y gallwch weld, mae sefydlu dilysiad dau ffactor ar unrhyw weinydd gwe, boed ar Windows neu Linux, yn cymryd uchafswm o awr. Ac mae sefydlu porwyr yn cymryd tua 5 munud. Mae llawer o bobl yn meddwl bod sefydlu a gweithio gyda dilysu dau ffactor yn anodd ac yn aneglur. Rwy'n gobeithio bod ein herthygl yn chwalu'r myth hwn, o leiaf ychydig.

Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg. Mewngofnodios gwelwch yn dda.

A oes angen cyfarwyddiadau arnoch ar gyfer sefydlu TLS gyda thystysgrifau yn unol â GOST 34.10-2012:

  • Ydy, mae TLS-GOST yn angenrheidiol iawn

  • Na, nid yw tiwnio ag algorithmau GOST yn ddiddorol

Pleidleisiodd 44 o ddefnyddwyr. Ymataliodd 9 o ddefnyddwyr.

Ffynhonnell: hab.com

Ychwanegu sylw