ProHoster > Օրագիր > Վարչակազմը > Երկու գործոնով նույնականացում կայքում՝ օգտագործելով USB նշան: Այժմ նաև Linux-ի համար
Երկու գործոնով նույնականացում կայքում՝ օգտագործելով USB նշան: Այժմ նաև Linux-ի համար
В մեր նախորդ հոդվածներից մեկը մենք խոսեցինք ընկերությունների կորպորատիվ պորտալներում երկգործոն նույնականացման կարևորության մասին: Վերջին անգամ մենք ցույց տվեցինք, թե ինչպես կարելի է անվտանգ նույնականացում ստեղծել IIS վեբ սերվերում:
Մեկնաբանություններում մեզ խնդրել են հրահանգներ գրել Linux-ի համար ամենատարածված վեբ սերվերների համար՝ nginx և Apache:
Դուք հարցրեցիք, - գրել ենք:
Ինչ է ձեզ հարկավոր սկսելու համար:
Ցանկացած ժամանակակից Linux բաշխում: Ես փորձնական կարգավորում արեցի MX Linux 18.2_x64-ի վրա: Սա, իհարկե, սերվերի բաշխում չէ, բայց Debian-ի համար դժվար թե որևէ տարբերություն լինի: Այլ բաշխումների դեպքում դեպի կազմաձևերի գրադարաններ տանող ուղիները կարող են մի փոքր տարբերվել:
Նշան. Մենք շարունակում ենք օգտագործել մոդելը Rutoken EDS PKI, որը իդեալական է կորպորատիվ օգտագործման համար արագության բնութագրերի առումով:
Linux-ում թոքենի հետ աշխատելու համար անհրաժեշտ է տեղադրել հետևյալ փաթեթները.
libccid libpcsclite1 pcscd pcsc-tools opensc
Վկայականների տրամադրում
Նախորդ հոդվածներում մենք հիմնվել ենք այն փաստի վրա, որ սերվերի և հաճախորդի վկայականները կտրամադրվեն Microsoft CA-ի միջոցով: Բայց քանի որ մենք ամեն ինչ կարգավորում ենք Linux-ում, մենք ձեզ կպատմենք նաև այս վկայագրերը տրամադրելու այլընտրանքային եղանակի մասին՝ առանց Linux-ից դուրս գալու:
Մենք կօգտագործենք XCA որպես CA (https://hohnstaedt.de/xca/), որը հասանելի է ցանկացած ժամանակակից Linux բաշխման վրա: Բոլոր գործողությունները, որոնք մենք կկատարենք XCA-ում, կարող են կատարվել հրամանի տողի ռեժիմում՝ օգտագործելով OpenSSL և pkcs11-գործիքները, սակայն ավելի մեծ պարզության և պարզության համար մենք դրանք չենք ներկայացնի այս հոդվածում:
Ինչից սկսել
Տեղադրել:
$ apt-get install xca
Եվ մենք վազում ենք.
$ xca
Մենք ստեղծում ենք մեր տվյալների բազան CA-ի համար - /root/CA.xdb
Խորհուրդ ենք տալիս սերտիֆիկատների մարմնի տվյալների բազան պահել մի պանակում, որտեղ մուտք ունի միայն ադմինիստրատորը: Սա կարևոր է արմատային վկայագրերի մասնավոր բանալիները պաշտպանելու համար, որոնք օգտագործվում են բոլոր մյուս վկայագրերը ստորագրելու համար:
Ստեղծեք բանալիներ և արմատային CA վկայագիր
Հանրային բանալիների ենթակառուցվածքը (PKI) հիմնված է հիերարխիկ համակարգի վրա: Այս համակարգում հիմնականը արմատային սերտիֆիկացման մարմինն է կամ արմատային CA: Նախ պետք է ստեղծվի դրա վկայականը:
Մենք ստեղծում ենք RSA-2048 մասնավոր բանալի CA-ի համար: Դա անելու համար ներդիրում Մասնավոր բանալիներ հրել Նոր բանալի և ընտրեք համապատասխան տեսակը:
Սահմանեք անուն նոր բանալիների զույգի համար: Ես այն անվանեցի CA Key:
Մենք ինքնին թողարկում ենք CA վկայագիրը՝ օգտագործելով ստեղծված բանալիների զույգը: Դա անելու համար անցեք ներդիր Հավաստագրեր և կտտացրեք Նոր վկայական.
Համոզվեք, որ ընտրեք ՊԱԳ - 256, քանի որ SHA-1-ի օգտագործումն այլևս չի կարող անվտանգ համարվել:
Համոզվեք, որ ընտրեք որպես ձևանմուշ [լռելյայն] CA. Մի մոռացեք սեղմել Կիրառել բոլորը, հակառակ դեպքում կաղապարը չի կիրառվում։
Ներդիրում Առարկա ընտրեք մեր բանալիների զույգը: Այնտեղ կարող եք լրացնել վկայագրի բոլոր հիմնական դաշտերը։
Բանալների և https սերվերի վկայագրի ստեղծում
Նմանապես մենք ստեղծում ենք RSA-2048 մասնավոր բանալի սերվերի համար, ես այն անվանել եմ Server Key:
Վկայագիր ստեղծելիս մենք ընտրում ենք, որ սերվերի վկայականը պետք է ստորագրված լինի CA վկայականով:
Մի մոռացեք ընտրել ՊԱԳ - 256.
Մենք ընտրում ենք որպես ձևանմուշ [կանխադրված] HTTPS_server. Սեղմեք Կիրառել բոլորը.
Այնուհետև ներդիրում Առարկա ընտրեք մեր բանալին և լրացրեք անհրաժեշտ դաշտերը:
Ստեղծեք բանալիներ և վկայականներ օգտագործողի համար
Օգտագործողի անձնական բանալին կպահվի մեր նշանում: Դրա հետ աշխատելու համար անհրաժեշտ է տեղադրել PKCS#11 գրադարանը մեր կայքից: Հանրաճանաչ բաշխումների համար մենք բաժանում ենք պատրաստի փաթեթներ, որոնք գտնվում են այստեղ՝ https://www.rutoken.ru/support/download/pkcs/. Մենք ունենք նաև հավաքներ arm64, armv7el, armv7hf, e2k, mipso32el-ի համար, որոնք կարելի է ներբեռնել մեր SDK-ից. https://www.rutoken.ru/developers/sdk/. Բացի Linux-ի համար նախատեսված հավաքներից, կան նաև հավաքներ macOS-ի, freebsd-ի և android-ի համար:
XCA-ին նոր PKCS#11 մատակարարի ավելացում: Դա անելու համար անցեք մենյու Ընտրանքներ դեպի ներդիր PKCS#11 Մատակարար.
Մենք սեղմում ենք Ավելացնել և ընտրեք դեպի PKCS#11 գրադարան տանող ուղին: Իմ դեպքում դա usrliblibrtpkcs11ecp.so է։
Մենք ընտրում ենք RSA-2048 բանալին Rutoken EDS PKI-ի համար որպես բանալի տեսակ: Ես այս բանալին անվանեցի Client Key:
Մուտքագրեք PIN կոդը: Եվ մենք սպասում ենք բանալիների զույգի ապարատային ստեղծման ավարտին
Մենք օգտատիրոջ համար վկայագիր ենք ստեղծում սերվերի վկայագրի անալոգիայով: Այս անգամ մենք ընտրում ենք ձևանմուշ [կանխադրված] HTTPS_client և մի մոռացեք սեղմել Կիրառել բոլորը.
Ներդիրում Առարկա մուտքագրեք տեղեկություններ օգտագործողի մասին. Մենք դրական ենք պատասխանում վկայականը նշանի համար պահելու խնդրանքին:
Արդյունքում, ներդիրի վրա Վկայագրեր XCA-ում դուք պետք է ստանաք նման բան:
Բանալիների և վկայագրերի այս նվազագույն փաթեթը բավական է, որպեսզի սկսեն ինքնուրույն կարգավորել սերվերները:
Կարգավորելու համար մենք պետք է արտահանենք CA վկայականը, սերվերի վկայականը և սերվերի մասնավոր բանալին:
Դա անելու համար XCA-ի համապատասխան ներդիրում ընտրեք ցանկալի մուտքը և սեղմեք Արտահանում.
Nginx
Ես չեմ գրի, թե ինչպես տեղադրել և գործարկել nginx սերվերը, այս թեմայի վերաբերյալ բավականաչափ հոդվածներ կան ինտերնետում, չխոսելով պաշտոնական փաստաթղթերի մասին: Եկեք անմիջապես անցնենք HTTPS-ի և երկգործոն նույնականացման կարգավորումներին՝ օգտագործելով նշան:
nginx.conf-ում սերվերի բաժնում ավելացրեք հետևյալ տողերը.
Ես պարզապես հակիրճ նկարագրեմ նրանց, որոնք ես ինքս ինձ հարցրի.
ssl_verify_client - նշում է, որ հավաստագրի վստահության շղթան պետք է ստուգվի:
ssl_verify_depth - Սահմանում է շղթայում վստահելի արմատային վկայագրի որոնման խորությունը: Քանի որ մեր հաճախորդի վկայականը անմիջապես ստորագրվում է արմատային վկայագրի վրա, խորությունը սահմանվում է 1: Եթե օգտագործողի վկայականը ստորագրված է միջանկյալ CA-ի վրա, ապա այս պարամետրում պետք է նշվի 2 և այլն:
ssl_client_certificate - նշում է վստահելի արմատային վկայագրի ուղին, որն օգտագործվում է օգտվողի վկայականի նկատմամբ վստահությունը ստուգելիս:
Եկեք նախ փորձենք մուտք գործել առանց նշանի: Մենք ստանում ենք այս նկարը.
Եկեք գնանք մասին ՝ նախընտրություններ # գաղտնիություն, և մենք գնում ենք Անվտանգության սարքեր…
Մենք սեղմում ենք Բեռավելացնել նոր PKCS#11 Սարքի վարորդ և նշել դեպի մեր librtpkcs11ecp.so ուղին:
Ստուգելու համար, որ վկայագիրը տեսանելի է, կարող եք գնալ Վկայագրերի կառավարիչ. Ձեզ կառաջարկվի մուտքագրել ձեր PIN կոդը: Ճիշտ մուտքագրումից հետո կարող եք ստուգել, թե ինչ կա ներդիրում Ձեր վկայականները հայտնվեց մեր վկայականը նշանից:
Հիմա եկեք գնանք նշանով: Firefox-ը ձեզ հուշում է ընտրել սերտիֆիկատ, որը կընտրվի սերվերի համար: Ընտրեք մեր վկայականը:
ՇԱՀՈՒՅԹ
Կարգավորումը կատարվում է մեկ անգամ, և ինչպես տեսնում եք վկայագրի հարցման պատուհանում, մենք կարող ենք պահպանել մեր ընտրությունը: Դրանից հետո, ամեն անգամ, երբ մենք մուտք ենք գործում պորտալ, մեզ միայն անհրաժեշտ կլինի տեղադրել նշան և մուտքագրել օգտվողի PIN կոդը, որը նշված է ձևաչափման ժամանակ: Նման նույնականացումից հետո սերվերն արդեն գիտի, թե որ օգտատերն է մուտք գործել, և դուք այլևս չեք կարող ստեղծել լրացուցիչ պատուհաններ ստուգման համար, այլ անմիջապես թույլ տվեք օգտվողին մտնել իր անձնական հաշիվ:
Apache
Ինչպես nginx-ի դեպքում, ոչ ոք չպետք է խնդիրներ ունենա apache-ի տեղադրման հետ: Եթե չգիտեք, թե ինչպես տեղադրել այս վեբ սերվերը, պարզապես օգտագործեք պաշտոնական փաստաթղթերը:
Եվ մենք սկսում ենք կարգավորել մեր HTTPS-ը և երկգործոն նույնականացումը.
Նախ անհրաժեշտ է ակտիվացնել mod_ssl.
$ a2enmod ssl
Այնուհետև միացրեք կայքի լռելյայն HTTPS կարգավորումները.
$ a2ensite default-ssl
Այժմ մենք խմբագրում ենք կազմաձևման ֆայլը՝ /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
Ինչպես տեսնում եք, պարամետրերի անվանումները գործնականում համընկնում են nginx-ի պարամետրերի անունների հետ, ուստի ես դրանք չեմ բացատրի: Կրկին, բոլորը, ովքեր հետաքրքրված են մանրամասներով, ողջունում են փաստաթղթերին:
Այժմ մենք վերագործարկում ենք մեր սերվերը.
$ service apache2 reload
$ service apache2 restart
Ինչպես տեսնում եք, ցանկացած վեբ սերվերի վրա, լինի դա Windows-ի, թե Linux-ի վրա, երկու գործոն նույնականացման կարգավորումը տևում է առավելագույնը մեկ ժամ: Իսկ բրաուզերների տեղադրումը տևում է մոտ 5 րոպե: Շատերը կարծում են, որ երկգործոն նույնականացման հետ կարգավորելը և աշխատելը դժվար է և անհասկանալի: Հուսով եմ, որ մեր հոդվածը գոնե մի փոքր կհերքի այս առասպելը:
Հարցմանը կարող են մասնակցել միայն գրանցված օգտվողները։ Մուտք գործել, խնդրում եմ:
ԳՕՍՏ 34.10-2012-ի համաձայն վկայագրերով TLS կարգավորելու հրահանգներ ձեզ անհրաժեշտ են.
Այո, TLS-GOST-ը շատ անհրաժեշտ է
Ոչ, ԳՕՍՏ ալգորիթմներով թյունինգը հետաքրքիր չէ
Քվեարկել է 44 օգտատեր։ 9 օգտատեր ձեռնպահ է մնացել։