
Në ne folëm për rëndësinë e autentifikimit me dy faktorë në portale korporative të kompanive. Herën e kaluar demonstruam se si të konfiguroni autentifikimin e sigurt në serverin web IIS.
NĂ« komentet na kĂ«rkuan tĂ« shkruajmĂ« njĂ« udhĂ«zues pĂ«r serverĂ«t web mĂ« tĂ« zakonshĂ«m pĂ«r Linux â nginx dhe Apache.
Ju kĂ«rkuat â ne e shkruam.
ĂfarĂ« nevojitet pĂ«r tĂ« filluar?
- Ădo distribucion modern tĂ« Linux. Kam realizuar konfigurimin testues nĂ« MX Linux 18.2_x64. Kjo sigurisht nuk Ă«shtĂ« njĂ« distribucion serveri, por pĂ«r Debian nuk do tĂ« ketĂ« dallime tĂ« mĂ«dha. PĂ«r distribucionet e tjera mund tĂ« ndryshojnĂ« pak rrugĂ«t pĂ«r nĂ« bibliotekat/konfigurat.
- Token. Ne vazhdojmë të përdorim modelin , i cili është ideal në karakteristikat e shpejtësisë për përdorim korporativ.
- Për të punuar me token në Linux, duhet të instaloni paketat e mëposhtme:
libccid libpcsclite1 pcscd pcsc-tools opensc

Shkruajtja e certifikatave
NĂ« artikujt e mĂ«parshĂ«m kemi mbĂ«shtetur se certifikatat e serverĂ«ve dhe klientĂ«ve do tĂ« lĂ«shohen pĂ«rmes Microsoft CA. Por tani qĂ« gjithçka po e konfigurojmĂ« nĂ« Linux, do tĂ« tregojmĂ« gjithashtu njĂ« mĂ«nyrĂ« alternative pĂ«r lĂ«shimin e kĂ«tyre certifikatave â pa e braktisur Linuxin.
Si CA do të përdorim XCA (), e cila është e disponueshme në çdo shpërndarje moderne të Linux-it. Të gjitha veprimet që do të kryejmë në XCA mund të bëhen edhe në mënyrë të komandave përmes mjeteve OpenSSL dhe pkcs11-tool, por për thjeshtësinë dhe qartësinë, ne nuk do t'i përfshijmë këto në këtë artikull.
Fillimi i punës
- Instalojmë:
$ apt-get install xca - Dhe fillojmë:
$ xca - KrijojmĂ« bazĂ«n tonĂ« tĂ« tĂ« dhĂ«nave pĂ«r CA â /root/CA.xdb
Sugjerojmë që të ruani bazën e të dhënave të Autoritetit të Certifikimit në një dosje, të cilën ka qasje vetëm administratori. Kjo është e rëndësishme për mbrojtjen e çelësave privatë të certifikatave të rrënjës, të cilat përdoren për të nënshkruar të gjitha certifikatat e tjera.
Krijojmë çelësat dhe certifikatën root CA
Në thelb të infrastrukturës së çelësave publikë (PKI) është një sistem hierarkik. Qendra kryesore e sertifikimit ose root CA është ajo që është më e rëndësishme në këtë sistem. Certifikata e saj duhet të krijohet e para.
- KrijojmĂ« njĂ« çelĂ«s tĂ« mbyllur RSA-2048 pĂ«r CA. PĂ«r kĂ«tĂ«, nĂ« skedĂ«n ĂelĂ«sat PrivatĂ« klikojmĂ« ĂelĂ«s i Ri dhe zgjedhim tipin pĂ«rkatĂ«s.
- Vendosim njĂ« emĂ«r pĂ«r çiftin e ri tĂ« çelĂ«save. UnĂ« e quajta â CA Key.
- Shkruajmë vetë certifikatën CA, duke përdorur çiftin e krijuar të çelësave. Për këtë kalojmë në skedën Certifikatat dhe klikojmë Certifikatë e Re.
- Sigurohuni të zgjidhni SHA-256, sepse përdorimi i SHA-1 nuk mund të përmbyllet si i sigurt më.
- Si model, sigurohuni të zgjidhni [default] CA. Mos harroni të klikoni në Apliko të gjitha, përndryshe modeli nuk do të aplikohet.
- Në skedën Subjekti zgjedhim çiftin tonë të çelësave. Aty mund të plotësoni të gjitha fushat kryesore të certifikatës.

Krijojmë çelësat dhe certifikatën për serverin https
- NjĂ«soj krijojmĂ« pĂ«r server çelĂ«s tĂ« mbyllur RSA-2048, unĂ« e quajta â Server Key.
- Gjatë krijimit të certifikatës zgjedhim se certifikata e serverit duhet të nënshkruhet në certifikatën CA.
- Mos harroni të zgjidhni SHA-256.
- Si model, zgjedhim [default] HTTPS_server. Klikojmë Apliko të gjitha.
- Pas kësaj, në skedën Subjekti zgjedhim çelësin tonë dhe plotësojmë fushat e nevojshme.

Krijojmë çelësat dhe certifikatën për përdoruesin
- ĂelĂ«si i pĂ«rdoruesit do tĂ« ruhet nĂ« tokenin tonĂ«. PĂ«r tĂ« punuar me tĂ«, duhet tĂ« instaloni bibliotekĂ«n PKCS#11 nga faqja jonĂ«. Ne ofrojmĂ« paketa tĂ« gatshme pĂ«r distribucione tĂ« njohura, tĂ« cilat ndodhen kĂ«tu â . Ne gjithashtu kemi ndĂ«rtime pĂ«r arm64, armv7el, armv7hf, e2k, mipso32el, tĂ« cilat mund t'i merrni nĂ« SDK tonĂ« â . PĂ«rveç ndĂ«rtimeve pĂ«r linux, ka gjithashtu ndĂ«rtime pĂ«r macOS, freebsd dhe android.
- Shtojmë një PKCS#11 Provider të ri në XCA. Për këtë, shkojmë në menunë Mundësitë në kartën PKCS#11 Provider.
- Klikojmë Shto dhe zgjedhim rrugën për bibliotekën PKCS#11. Në rastin tim, kjo është usrliblibrtpkcs11ecp.so.
- Na nevojitet njĂ« token i formatizuar i RutuToken EĂP PKI. Shkarkoni utilitarin rtAdmin â
- Kryejmë
$ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u - Si njĂ« lloj çelĂ«si zgjedhim â çelĂ«si RSA-2048 nĂ« RutuToken EĂP PKI. UnĂ« e quajta kĂ«tĂ« çelĂ«s Client Key.

- Shtypim PIN-in. Dhe presim përfundimin e gjenerimit të çiftit të çelësave të harduerit

- Certifikata për përdoruesin krijohet në përputhje me certifikatën e serverit. Këtë herë zgjedhim modelin [default] HTTPS_client dhe mos harroni të klikoni Apliko të gjitha.
- Në skedën Subjekti hyrni informacionin për përdoruesin. Në kërkesën për të ruajtur certifikatën në token, përgjigjemi pozitivisht.
Si rezultat, në kartën Certifikatat Në XCA duhet të dalë një imazh i tillë.

Ky grup minimal çelësash dhe certifikatash mjafton për të filluar konfigurimin e drejtpërdrejtë të serverëve.
Për konfigurimin, na nevojitet të eksportojmë certifikatën e CA-të, certifikatën e serverit dhe çelësin privat të serverit.
Për këtë, duhet të zgjidhni regjistrimin e duhur në skedën përkatëse në XCA dhe të klikoni Eksport.
Nginx
Nuk do tĂ« shkruaj se si tĂ« instaloni dhe nisni serverin nginx â ka mjaft artikuj mbi kĂ«tĂ« temĂ« nĂ« internet, pĂ«rveç dokumentacionit zyrtar. Le tĂ« fillojmĂ« menjĂ«herĂ« me konfigurimin e HTTPS dhe autentifikimit me dy faktorĂ« pĂ«rmes tokenit.
Shtoni në seksionin server në nginx.conf rreshtat e mëposhtëm:
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;
}PĂ«rshkrimi i detajuar i tĂ« gjitha parametrave nĂ« lidhje me konfigurimin e ssl nĂ« nginx mund tĂ« gjendet kĂ«tu â
Unë do të përshkruaj shkurtimisht ato që kam vendosur vetë:
- ssl_verify_client â tregon se duhet tĂ« verifikohet zinxhiri i besimit tĂ« certifikatĂ«s.
- ssl_verify_depth â pĂ«rcakton thellĂ«sinĂ« e kĂ«rkimit tĂ« certifikatĂ«s sĂ« besuar nĂ« zinxhir. MeqenĂ«se ne kemi njĂ« certifikatĂ« klienti tĂ« nĂ«nshkruar menjĂ«herĂ« nga certifikata rrĂ«njĂ«sore, thellĂ«sia Ă«shtĂ« e vendosur â 1. NĂ«se certifikata e pĂ«rdoruesit nĂ«nshkruhet nga njĂ« CA ndĂ«rmjetĂ«s, ky parametĂ«r duhet tĂ« jetĂ« 2, e kĂ«shtu me radhĂ«.
- ssl_client_certificate â tregon rrugĂ«n deri te certifikata rrĂ«njĂ«sore e besuar, e cila pĂ«rdoret gjatĂ« kontrollit tĂ« besueshmĂ«risĂ« sĂ« certifikatĂ«s sĂ« pĂ«rdoruesit.
- ssl_certificate/ssl_certificate_key â tregojnĂ« rrugĂ«n deri te certifikata/çelĂ«si privat i serverit.
Mos harro të ekzekutosh nginx -t për të kontrolluar nëse ka gabime në konfigura, nëse të gjitha skedarët janë në vendin e duhur dhe kështu me radhë.
Dhe në fakt, kjo është gjithçka! Siç e shihni, konfigurimi është shumë i thjeshtë.
Kontrollojmë funksionimin në Firefox
Pasi po e bëjmë gjithçka plotësisht në Linux, do të supozojmë se edhe përdoruesit tanë punojnë në Linux (nëse ata kanë Windows, atëherë .
- Nisemi me Firefox.
- Do të provojmë fillimisht të hyjmë pa token. Marrim këtë pamje:

- HymĂ« nĂ« about:preferences#privacy, dhe shkojmĂ« te Pajisjet e SigurisĂ«âŠ
- Klikojmë Ngarko, për të shtuar një Drejtor Tëri PKCS#11 dhe tregojmë rrugën deri te librtpkcs11ecp.so.
- Për të verifikuar që certifikata është e dukshme, mund të hyni në Menaxherin e Certifikatave. Do të shfaqet një kërkesë për të futur PIN-in. Pasi të futet saktë, mund të kontrolloni që në skedën Certifikatat Tuaja ka dalë certifikata jonë nga tokeni.
- Tani hyjmë me tokenin. Firefox-i ofron të zgjedhë certifikatën që do të jetë zgjedhur në server. Zgjedhim certifikatën tonë.

- PROFIT!

Konfigurimi bëhet një herë, dhe siç shihet në dritaren e kërkesës për certifikatën, mund ta ruajmë zgjedhjen tonë. Pas kësaj, çdo herë që hyjmë në portal, do të na duhet vetëm të futim tokenin dhe të shkruajmë PIN-in e përdoruesit, i cili është caktuar gjatë formatimit. Pas një autentifikimi të tillë, serveri tashmë e di se cili përdorues ka hyrë, dhe nuk është e nevojshme të krijohen dritare të tjera për verifikim, por menjëherë mund të lejojmë përdoruesin të hyjë në llogarinë e tij.
Apache
Ashtu si me nginx, nuk duhet të ketë probleme me instalimin e apache. Nëse nuk e dini si ta instaloni këtë server web, thjesht përdorni dokumentacionin zyrtar.
Dhe tani kalojmë në konfigurimin e HTTPS-it dhe autentifikimit me dy faktorë:
- Së pari, është e nevojshme të aktivizoni mod_ssl:
$ a2enmod ssl - Dhe pastaj aktivizoni cilësimet HTTPS të faqes së internetit siç është parazgjedhur:
$ a2ensite default-ssl - Tani redaktojmë skedarin e konfigurimit: /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 10Siç e shihni, emrat e parametrave janĂ« praktikisht tĂ« njĂ«jtĂ« me emrat e parametrave nĂ« nginx, prandaj nuk do t'i shpjegoj. SĂ«rish, ata qĂ« janĂ« tĂ« interesuar pĂ«r detaje â mirĂ«seardhĂ«t nĂ« dokumentacion.
Tani rifillojmë serverin tonë:$ service apache2 reload $ service apache2 restart
Siç e shihni, konfigurimi i autentifikimit me dy faktorë në çdo server web, qoftë në Windows apo në Linux, është një punë që nuk merr më shumë se një orë. Edhe konfigurimi i shfletuesve zë rreth 5 minuta. Shumë mendojnë se konfigurimi dhe puna me autentifikimin me dy faktorë është e komplikuar dhe e paqartë. Shpresoj që artikulli ynë të shkatërrojë paksa këtë mit.
Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. , ju lutemi.
A është e nevojshme një udhëzues për konfigurimin e funksionimit të TLS me certifikatat sipas GOST 34.10-2012:
Po, TLS-GOST është shumë i nevojshëm
Jo, konfigurimi me algoritmet GOST nuk është i interesant
44 përdorues kanë votuar. 9 përdorues janë abstenuar.
Burimi: habr.com





