ProHoster > Blog > İdarə > USB tokenindən istifadə edərək saytda iki faktorlu autentifikasiya. İndi də Linux üçün
USB tokenindən istifadə edərək saytda iki faktorlu autentifikasiya. İndi də Linux üçün
В əvvəlki məqalələrimizdən biri şirkətlərin korporativ portallarında iki faktorlu autentifikasiyanın əhəmiyyətindən danışdıq. Keçən dəfə biz IIS veb serverində təhlükəsiz autentifikasiyanın necə qurulacağını nümayiş etdirdik.
Şərhlərdə bizdən Linux üçün ən çox yayılmış veb-serverlər - nginx və Apache üçün təlimatlar yazmağı tələb etdilər.
Soruşdunuz - yazdıq.
Başlamaq üçün nə lazımdır?
İstənilən müasir Linux paylanması. MX Linux 18.2_x64-də sınaq quraşdırma etdim. Bu, əlbəttə ki, bir server paylanması deyil, lakin Debian üçün hər hansı fərqlərin olması ehtimalı azdır. Digər paylanmalar üçün konfiqurasiya kitabxanalarına gedən yollar bir qədər fərqli ola bilər.
Token. Modeldən istifadə etməyə davam edirik Rutoken EDS PKI, bu, korporativ istifadə üçün sürət xüsusiyyətləri baxımından idealdır.
Linux-da token ilə işləmək üçün aşağıdakı paketləri quraşdırmalısınız:
libccid libpcsclite1 pcscd pcsc-tools opensc
Sertifikatların verilməsi
Əvvəlki məqalələrdə biz server və müştəri sertifikatlarının Microsoft CA-dan istifadə etməklə veriləcəyinə əsaslanmışdıq. Lakin biz hər şeyi Linux-da qurduğumuz üçün sizə bu sertifikatları vermək üçün alternativ yol haqqında da danışacağıq - Linux-dan çıxmadan.
XCA-dan CA kimi istifadə edəcəyik (https://hohnstaedt.de/xca/), istənilən müasir Linux paylamasında mövcuddur. XCA-da yerinə yetirəcəyimiz bütün hərəkətlər OpenSSL və pkcs11-alət yardım proqramlarından istifadə edərək əmr satırı rejimində edilə bilər, lakin daha çox sadəlik və aydınlıq üçün onları bu məqalədə təqdim etməyəcəyik.
Başlarken
Yüklemek:
$ apt-get install xca
Və qaçırıq:
$ xca
CA - /root/CA.xdb üçün verilənlər bazamızı yaradırıq
Biz Sertifikat Təşkilatı məlumat bazasını yalnız administratorun girişi olan qovluqda saxlamağı tövsiyə edirik. Bu, bütün digər sertifikatları imzalamaq üçün istifadə edilən kök sertifikatların şəxsi açarlarını qorumaq üçün vacibdir.
Açarlar və kök CA sertifikatı yaradın
Açıq açar infrastrukturu (PKI) iyerarxik sistemə əsaslanır. Bu sistemdə əsas şey kök sertifikatlaşdırma orqanı və ya kök CA-dır. Əvvəlcə onun sertifikatı yaradılmalıdır.
CA üçün RSA-2048 şəxsi açarı yaradırıq. Bunu etmək üçün, nişanda Şəxsi Açarlar itələmək Yeni açar və uyğun növü seçin.
Yeni açar cütü üçün ad təyin edin. Mən onu CA Key adlandırdım.
Yaradılmış açar cütündən istifadə edərək CA sertifikatının özünü veririk. Bunu etmək üçün nişana keçin Sertifikatlar və vurun Yeni Sertifikat.
Seçdiyinizə əmin olun SHA-256, çünki SHA-1-dən istifadə artıq təhlükəsiz sayıla bilməz.
Şablon kimi seçdiyinizə əmin olun [standart]CA. Tıklamağı unutmayın Hamısına müraciət edin, əks halda şablon tətbiq edilməyəcək.
Nişanda mövzu açar cütümüzü seçin. Orada sertifikatın bütün əsas sahələrini doldura bilərsiniz.
Açarların və https server sertifikatının yaradılması
Eyni şəkildə, biz server üçün RSA-2048 şəxsi açarı yaradırıq, mən onu Server Açarı adlandırdım.
Sertifikat yaratarkən biz seçirik ki, server sertifikatı CA sertifikatı ilə imzalanmalıdır.
Seçməyi unutmayın SHA-256.
Şablon kimi seçirik [standart] HTTPS_server. Basın Hamısına müraciət edin.
Sonra tabda mövzu açarımızı seçin və tələb olunan sahələri doldurun.
İstifadəçi üçün açarlar və sertifikat yaradın
İstifadəçinin şəxsi açarı tokenimizdə saxlanacaq. Bununla işləmək üçün veb saytımızdan PKCS#11 kitabxanasını quraşdırmalısınız. Məşhur paylamalar üçün biz burada yerləşən hazır paketləri paylayırıq - https://www.rutoken.ru/support/download/pkcs/. SDK-dan endirilə bilən arm64, armv7el, armv7hf, e2k, mipso32el üçün montajlarımız da var - https://www.rutoken.ru/developers/sdk/. Linux üçün məclislərə əlavə olaraq, macOS, freebsd və android üçün də montajlar var.
XCA-ya yeni PKCS#11 Provayderinin əlavə edilməsi. Bunu etmək üçün menyuya keçin Nizamlamalar nişana PKCS#11 Provayderi.
basırıq əlavə etmək və PKCS#11 kitabxanasına gedən yolu seçin. Mənim vəziyyətimdə bu usrliblibrtpkcs11ecp.so-dur.
Açar növü olaraq Rutoken EDS PKI üçün RSA-2048 açarını seçirik. Mən bu açarı Müştəri Açarı adlandırdım.
PİN kodu daxil edin. Və açar cütünün aparat generasiyasının tamamlanmasını gözləyirik
Biz istifadəçi üçün server sertifikatına bənzətməklə sertifikat yaradırıq. Bu dəfə bir şablon seçirik [standart] HTTPS_client və tıklamağı unutmayın Hamısına müraciət edin.
Nişanda mövzu istifadəçi haqqında məlumat daxil edin. Sertifikatı token üçün saxlamaq sorğusuna müsbət cavab veririk.
Nəticədə, nişanda Sertifikat XCA-da belə bir şey almalısınız.
Bu minimum açarlar və sertifikatlar dəsti serverlərin özlərini qurmağa başlamaq üçün kifayətdir.
Konfiqurasiya etmək üçün CA sertifikatını, server sertifikatını və server şəxsi açarını ixrac etməliyik.
Bunu etmək üçün XCA-da müvafiq nişanda istədiyiniz girişi seçin və üzərinə klikləyin Ixrac.
Nginx
Nginx serverini necə quraşdırmağı və işə salmağı yazmayacağam - İnternetdə bu mövzuda kifayət qədər məqalə var, rəsmi sənədləri qeyd etməmək. Gəlin birbaşa işarədən istifadə edərək HTTPS və iki faktorlu autentifikasiyanın qurulmasına keçək.
Nginx.conf-da server bölməsinə aşağıdakı sətirləri əlavə edin:
ssl_verify_client - sertifikat üçün etibar zəncirinin yoxlanılmalı olduğunu göstərir.
ssl_verify_depth - Zəncirdə etibarlı kök sertifikatı üçün axtarış dərinliyini müəyyən edir. Müştəri sertifikatımız dərhal kök sertifikatında imzalandığı üçün dərinlik 1-ə təyin edilir. Əgər istifadəçi sertifikatı aralıq CA-da imzalanıbsa, bu parametrdə 2 göstərilməlidir və s.
ssl_client_certificate - istifadəçi sertifikatına etibar yoxlanarkən istifadə olunan etibarlı kök sertifikatına gedən yolu müəyyən edir.
ssl_certificate/ssl_certificate_key - server sertifikatına/özəl açarına gedən yolu göstərin.
Konfiqurasiyada heç bir yazı səhvinin olmadığını və bütün faylların düzgün yerdə olduğunu və s. yoxlamaq üçün nginx -t-ni işə salmağı unutmayın.
Və hamısı budur! Gördüyünüz kimi, quraşdırma çox sadədir.
Əvvəlcə işarəsiz daxil olmağa çalışaq. Bu şəkli alırıq:
Gedin haqqında: üstünlüklər # məxfilik, və biz gedirik Təhlükəsizlik Cihazları...
basırıq Yükyeni PKCS#11 Cihaz Sürücüsü əlavə etmək və librtpkcs11ecp.so-ya gedən yolu müəyyən etmək üçün.
Sertifikatın göründüyünü yoxlamaq üçün bura daxil ola bilərsiniz Sertifikat meneceri. Sizdən PİN kodunuzu daxil etməyiniz xahiş olunacaq. Düzgün daxil etdikdən sonra tabda nə olduğunu yoxlaya bilərsiniz Sertifikatlarınız tokendən sertifikatımız çıxdı.
İndi işarə ilə gedək. Firefox server üçün seçiləcək sertifikatı seçməyi təklif edir. Sertifikatımızı seçin.
PROFIT!
Quraşdırma bir dəfə edilir və sertifikat sorğusu pəncərəsində gördüyünüz kimi seçimimizi saxlaya bilərik. Bundan sonra, biz portala hər dəfə daxil olduqda, yalnız bir işarə daxil etməli və formatlaşdırma zamanı göstərilən istifadəçi PİN kodunu daxil etməli olacağıq. Belə autentifikasiyadan sonra server hansı istifadəçinin daxil olduğunu artıq bilir və siz artıq yoxlama üçün heç bir əlavə pəncərə yarada bilməzsiniz, ancaq dərhal istifadəçini şəxsi hesabına daxil etməyə icazə verin.
Apache
Nginx-də olduğu kimi, apache-nin quraşdırılmasında heç kimin problemi olmamalıdır. Bu veb serveri necə quraşdıracağınızı bilmirsinizsə, sadəcə olaraq rəsmi sənədlərdən istifadə edin.
Və HTTPS və iki faktorlu autentifikasiyamızı qurmağa başlayırıq:
Əvvəlcə mod_ssl-i aktivləşdirməlisiniz:
$ a2enmod ssl
Və sonra saytın standart HTTPS parametrlərini aktivləşdirin:
$ a2ensite default-ssl
İndi konfiqurasiya faylını redaktə edirik: /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
Gördüyünüz kimi, parametrlərin adları praktiki olaraq nginx-dəki parametrlərin adları ilə üst-üstə düşür, ona görə də onları izah etməyəcəm. Yenə də detallarla maraqlanan hər kəs sənədlərə xoş gəlmisiniz.
İndi serverimizi yenidən işə salırıq:
$ service apache2 reload
$ service apache2 restart
Gördüyünüz kimi, istər Windows, istərsə də Linux-da istənilən veb serverdə iki faktorlu autentifikasiyanın qurulması maksimum bir saat çəkir. Brauzerlərin qurulması isə təxminən 5 dəqiqə çəkir. Bir çox insanlar iki faktorlu autentifikasiyanın qurulmasının və işləməyin çətin və anlaşılmaz olduğunu düşünür. Ümid edirəm ki, məqaləmiz bu mifi bir az da olsa çürüdür.
Sorğuda yalnız qeydiyyatdan keçmiş istifadəçilər iştirak edə bilər. Daxil olunxahiş edirəm.
GOST 34.10-2012-yə uyğun olaraq sertifikatlarla TLS qurmaq üçün təlimatlara ehtiyacınız varmı:
Bəli, TLS-GOST çox lazımdır
Xeyr, GOST alqoritmləri ilə tuning maraqlı deyil
44 istifadəçi səs verib. 9 istifadəçi bitərəf qalıb.