
Në folëm për rëndësinë e autentifikimit me dy faktorë në portalet e kompanive. Të fundit, ne demonstruam se si të konfigurojmë autentifikimin e sigurt në serverin web IIS.
NĂ« komentet na u kĂ«rkua tĂ« shkruajmĂ« njĂ« udhĂ«zues pĂ«r serverĂ«t e web tĂ« zakonshĂ«m nĂ«n Linux â nginx dhe Apache.
E kĂ«rkuat â ne e shkruam.
ĂfarĂ« duhet pĂ«r t'u nisur?
- Cdo shpërndarje moderne Linux. Unë e kryeva konfigurimin testues në MX Linux 18.2_x64. Kjo natyrisht nuk është një shpërndarje serveri, por për Debian nuk do të ketë ndonjë ndryshim të madh. Për shpërndarje të tjera, rrugët për në libraritë dhe konfigurimet mund të ndryshojnë pak.
- Token. Ne vazhdojmë të përdorim modelin , i cili është i përshtatshëm për karakteristikat e shpejtësisë për përdorim të korporatave.
- Për të punuar me token në Linux, është e nevojshme të instaloni paketat e mëposhtme:
libccid libpcsclite1 pcscd pcsc-tools opensc

Rishkrimi i certifikatave
NĂ« artikujt e mĂ«parshĂ«m ne u mbĂ«shtetĂ«m nĂ« faktin se certifikatate e serverĂ«ve dhe klientĂ«ve do tĂ« lĂ«shoheshin pĂ«rmes Microsoft CA. Por tani qĂ« jemi duke konfiguruar gjithçka nĂ« Linux, gjithashtu do tĂ« flasim pĂ«r njĂ« mĂ«nyrĂ« alternative pĂ«r lĂ«shimin e kĂ«tyre certifikatave â pa e lĂ«nĂ« Linux-in.
Si CA, do të përdorim XCA (), i cili është i disponueshëm në çdo shpërndarje moderne Linux. Të gjitha veprimet që do të kryejmë në XCA mund të bëhen gjithashtu në linjën e komandave me ndihmën e utilitarëve OpenSSL dhe pkcs11-tool, por për një thjeshtësi dhe qartësi më të madhe në këtë artikull nuk do t'i përfshijmë.
Fillimi i punës
- Instalojmë:
$ apt-get install xca - Dhe e nisim:
$ xca - KrijojmĂ« bazĂ«n tonĂ« tĂ« tĂ« dhĂ«nave pĂ«r CA â /root/CA.xdb
Ne rekomandojmë që baza e të dhënave të Autoritetit të Certifikimit të ruhet në një folder, ku ka akses vetëm administratori. Kjo është e rëndësishme për mbrojtjen e çelësave të mbyllur të certifikatave themelore, të cilat përdoren për nënshkrimin e të gjitha certifikatave të tjera.
Krijojmë çelësat dhe certifikatën e root CA
Në thelb të infrastrukturës së çelësave publik (PKI) ekziston një sistem hierarkik. E rëndësishme në këtë sistem është qendra e certifikimit root ose root CA. Certifikata e tij duhet të krijohet e para.
- KrijojmĂ« njĂ« çelĂ«s privat RSA-2048 pĂ«r CA. PĂ«r kĂ«tĂ«, nĂ« skedĂ«n ĂelĂ«sat PrivatĂ« klikojmĂ« ĂelĂ«s i Ri dhe zgjedhim llojin pĂ«rkatĂ«s.
- CaktojmĂ« njĂ« emĂ«r pĂ«r çiftin e ri tĂ« çelĂ«sit. 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ë tabin Certifikatat and click Certifikatë e Re.
- Sigurohuni të zgjidhni SHA-256, sepse përdorimi i SHA-1 nuk mund të konsiderohet më i sigurt.
- Si një 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 zgjidhim çiftin tonë të çelësave. Aty gjithashtu mund të plotësoni të gjitha fushat kryesore të certifikatës.

Krijojmë çelësa dhe certifikatën e serverit https
- Po ashtu krijojmĂ« njĂ« çelĂ«s tĂ« mbyllur RSA-2048 pĂ«r serverin, unĂ« e quajta â ĂelĂ«si i Serverit.
- Gjatë krijimit të certifikatës, zgjidhni që certifikata e serverit duhet të nënshkruhet nga certifikata CA.
- Mos harroni të zgjidhni SHA-256.
- Si një model zgjidhni [default] HTTPS_server. Klikoni në Apliko të gjitha.
- Pas kësaj, në tabin Subjekti zgjidhim çelësin tonë dhe plotësojmë fushat e nevojshme.

Krijojmë çelësa dhe certifikatën për përdoruesin
- ĂelĂ«si i mbyllur i pĂ«rdoruesit do tĂ« ruhet nĂ« tokenin tonĂ«. PĂ«r ta pĂ«rdorur atĂ«, nevojitet tĂ« instaloni bibliotekĂ«n PKCS#11 nga faqja jonĂ«. PĂ«r distribuima tĂ« njohura ne ofrojmĂ« paketa pĂ«rfundimtare, tĂ« cilat ndodhen kĂ«tu â . Ne gjithashtu kemi mbledhje pĂ«r arm64, armv7el, armv7hf, e2k, mipso32el, tĂ« cilat mund tâi merrni nĂ« SDK-nĂ« tonĂ« â . PĂ«rveç mbledhjeve pĂ«r linux, ka gjithashtu mbledhje pĂ«r macOS, freebsd dhe android.
- Shtojmë një ofrues të ri PKCS#11 në XCA. Për këtë, shkojmë në menunë Opsionet në tabin Ofruesi PKCS#11.
- Klikoni Shto dhe zgjidhni rrugën drejt bibliotekës PKCS#11. Në rastin tim, është usrliblibrtpkcs11ecp.so.
- Na nevojitet njĂ« token i formatuar RUToken ECP PKI. Shkarkoni utilitarin rtAdmin â
- Kryejmë
$ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u - Si tip çelĂ«si zgjidhni â çelĂ«si RSA-2048 nĂ« RUToken ECP PKI. UnĂ« e quajta kĂ«tĂ« çelĂ«s ĂelĂ«si i Klientit.

- Shkruani PIN-in. Dhe presim që të përfundojë gjenerimi fizik i çiftit të çelësave.

- Certifikatën për përdoruesin e krijojmë 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 shkruani informacionin e përdoruesit. Në pyetjen për të ruajtur certifikatën në token, përgjigjuni me pohim.
Në përfundim, në tabin Certifikatat në XCA duhet të duket ndërlikueshëm kështu.

Ky set minimal çelësash dhe certifikatash është i mjaftueshëm për të filluar konfigurimin e serverëve direkt.
PĂ«r konfigurim, na nevojitet tĂ« eksportojmĂ« certifikatĂ«n e UĂ, certifikatĂ«n e serverit dhe çelĂ«sin e mbyllur tĂ« serverit.
Për këtë, duhet të zgjidhni regjistrimin e duhur në skedën përkatëse në XCA dhe të klikoni Eksporto.
Nginx
Si tĂ« instaloni dhe tĂ« nisni serverin nginx, nuk do tĂ« shkruaj â nĂ« kĂ«tĂ« temĂ« ka mjaft artikuj nĂ« internet, pĂ«rveç dokumentacionit zyrtar. Le tĂ« fillojmĂ« menjĂ«herĂ« me konfigurimin e HTTPS dhe dy faktorĂ«ve tĂ« autentikimit me token.
Shtojmë 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 qĂ« lidhen me konfigurimin e ssl nĂ« nginx mund tĂ« gjendet kĂ«tu â
Unë do ta përshkruaj vetëm shkurt ato që kam vendosur vetë:
- ssl_verify_client â tregon se duhet tĂ« verifikohet zinxhiri i besimit pĂ«r certifikatĂ«n.
- ssl_verify_depth â pĂ«rcakton thellĂ«sinĂ« e kĂ«rkimit tĂ« certifikatĂ«s sĂ« besuar nĂ« zinxhir. Duke qenĂ« se certifikata e klientit jonĂ« Ă«shtĂ« e nĂ«nshkruar menjĂ«herĂ« nĂ« certifikatĂ«n rrĂ«njĂ«, atĂ«herĂ« thellĂ«sia Ă«shtĂ« vendosur â 1. NĂ« qoftĂ« se certifikata e pĂ«rdoruesit Ă«shtĂ« e nĂ«nshkruar nga njĂ« CA ndĂ«rmjetĂ«s, atĂ«herĂ« nĂ« kĂ«tĂ« parametrin duhet tĂ« vendosni 2, dhe kĂ«shtu me radhĂ«.
- ssl_client_certificate â tregon rrugĂ«n deri te certifikata rrĂ«njĂ« e besuar, e cila pĂ«rdoret pĂ«r verifikimin e 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 haroni të ekzekutoni nginx -t, për të verifikuar se në konfigurim nuk ka gabime shkrimi dhe se të gjitha skedarët janë vendosur siç duhet.
Dhe e gjithë kjo! Siç e shihni, konfigurimi është shumë i thjeshtë.
Verifikojmë funksionimin në Firefox
Duke qenë se ne e bëjmë gjithçka në Linux, le të supozojmë se edhe përdoruesit tanë punojnë në Linux (nëse ata kanë Windows, atëherë .
- Nisim Firefox.
- Të provojmë fillimisht të hyjmë pa token. Marrim këtë pamje:

- HymĂ« nĂ« about:preferences#privacy, dhe shkojmĂ« te Security DevicesâŠ
- Klikoni Ngarko, për të shtuar një drejtues pajisje të ri PKCS#11 dhe tregojmë rrugën deri te librtpkcs11ecp.so.
- Për të verifikuar nëse certifikata shikohet, mund të hyjmë në Certificate Manager. Do të shfaqet një kërkesë për të futur PIN-in. Pas hyrjes së saktë, mund të verifikohet nëse në skedën Your Certificates ka dalë certifikata jonë e tokenit.
- Tani hymë me token. Firefox ofron të zgjedhë certifikatën, e cila do të seçohet në server. Zgjidhni certifikatën tonë.

- PROFIT!

Konfigurimi bëhet një herë, dhe siç duket në dritaren e kërkesës për certifikatë, ne mund ta ruajmë zgjedhjen tonë. Pas kësaj, gjatë çdo hyrjeje në portal, na duhet vetëm të fusim tokenin dhe të shkruajmë PIN-in e përdoruesit, i cili u vendos gjatë formatimit. Pas një autentifikimi të tillë, serveri tashmë e di se cili përdorues ka hyrë dhe nuk nevojitet të bëhen dritare të tjera për verifikim, por përdoruesi futet menjëherë në kabinetin e tij personal.
Apache
Ashtu si me nginx, nuk duhet të ketë probleme me instalimin e apache. Nëse nuk e dini se si ta instaloni këtë server web, thjesht përdorni dokumentacionin zyrtar.
Tani ne fillojmë me konfigurimin e HTTPS dhe autentifikimit me dy faktorë:
- Për fillim, është e nevojshme të aktivizohet mod_ssl:
$ a2enmod ssl - Dhe pastaj të përfshihen cilësimet e HTTPS për sitin si parazgjedhje:
$ a2ensite default-ssl - Tani po 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Ă« pothuajse tĂ« njĂ«jtĂ« me emrat e parametrave nĂ« nginx, prandaj nuk do t'i shpjegoj. SĂ«rish, pĂ«r ata qĂ« janĂ« tĂ« interesuar pĂ«r detaje â mirĂ« se vini nĂ« dokumentacion.
Tani rihapim serverin tonë:$ service apache2 reload $ service apache2 restart
Siç e shihni, konfigurimi i autentifikimit me dy faktorë në çdo server web, qoftë në Windows, qoftë në Linux, është një punë që zgjat maksimumi një orë. Dhe konfigurimi i shfletuesve merr rreth 5 minuta. Shumë mendojnë se konfigurimi dhe puna me autentifikimin me dy faktorë është e komplikuar dhe e paqartë. Shpresoj se artikulli ynë, edhe pak, e hedh poshtë këtë mit.
Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. , ju lutem.
A nevojitet 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 interesuar
Këto votuan 44 përdorues. U përmbajtën 9 përdorues.
Burimi: habr.com





