Аутентификатсияи ду омил дар сайт бо истифода аз аломати 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

Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

Додани шаҳодатномаҳо

Дар мақолаҳои қаблӣ, мо ба он такя кардем, ки сертификатҳои сервер ва муштарӣ бо истифода аз Microsoft CA дода мешаванд. Аммо азбаски мо ҳама чизро дар Linux насб карда истодаем, мо инчунин ба шумо дар бораи роҳи алтернативии додани ин сертификатҳо - бе тарк кардани Linux нақл мекунем.
Мо XCA-ро ҳамчун CA истифода хоҳем кард (https://hohnstaedt.de/xca/), ки дар ҳама гуна тақсимоти муосири Linux дастрас аст. Ҳама амалҳое, ки мо дар XCA иҷро хоҳем кард, метавонанд дар реҷаи сатри фармон бо истифода аз утилитаҳои OpenSSL ва pkcs11-tool анҷом дода шаванд, аммо барои соддатар ва возеҳтар, мо онҳоро дар ин мақола пешниҳод намекунем.

саршавӣ

  1. Насб кунед:
    $ apt-get install xca
  2. Ва мо медавидем:
    $ xca
  3. Мо пойгоҳи додаи худро барои CA эҷод мекунем - /root/CA.xdb
    Мо тавсия медиҳем, ки махзани Сертификати Сертификатсияро дар ҷузвдоне нигоҳ дорем, ки дар он танҳо маъмур дастрасӣ дорад. Ин барои ҳифзи калидҳои махфии шаҳодатномаҳои реша, ки барои имзои ҳама шаҳодатномаҳои дигар истифода мешаванд, муҳим аст.

Калидҳо ва шаҳодатномаи решаи CA эҷод кунед

Инфрасохтори калиди оммавӣ (PKI) ба системаи иерархӣ асос ёфтааст. Чизи асосӣ дар ин система мақомоти сертификатсияи реша ё CA реша аст. Шаҳодатномаи он бояд аввал эҷод карда шавад.

  1. Мо барои CA калиди хусусии RSA-2048 эҷод мекунем. Барои ин, дар ҷадвал Калидҳои хусусӣ Тела Калиди нав ва навъи мувофиқро интихоб кунед.
  2. Барои ҷуфти нави калид ном таъин кунед. Ман онро CA Key номида будам.
  3. Мо худи сертификати CA-ро бо истифода аз ҷуфти калидҳои сохташуда мебарорем. Барои ин, ба ҷадвал равед Шаҳодатномаҳо ва клик кунед Шаҳодатномаи нав.
  4. Ҳатман интихоб кунед ША-256, зеро истифодаи SHA-1 дигар бехатар ҳисобида намешавад.
  5. Боварӣ ҳосил кунед, ки ҳамчун қолаб интихоб кунед [пешфарз] CA. Фаромӯш накунед, ки пахш кунед Ҳамаро татбиқ кунед, вагарна шаблон татбиқ карда намешавад.
  6. Дар ҷадвал фан ҷуфти калиди моро интихоб кунед. Дар он ҷо шумо метавонед ҳамаи майдонҳои асосии сертификатро пур кунед.

Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

Эҷоди калидҳо ва сертификати сервери https

  1. Ба ҳамин монанд, мо барои сервер калиди хусусии RSA-2048 эҷод мекунем, ман онро калиди сервер номидам.
  2. Ҳангоми сохтани сертификат, мо интихоб мекунем, ки сертификати сервер бояд бо сертификати CA имзо карда шавад.
  3. Фаромӯш накунед, ки интихоб кунед ША-256.
  4. Мо ҳамчун қолаб интихоб мекунем [пешфарз] HTTPS_server. -ро клик кунед Ҳамаро татбиқ кунед.
  5. Сипас дар ҷадвал фан калиди моро интихоб кунед ва майдонҳои заруриро пур кунед.

Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

Барои корбар калидҳо ва сертификат эҷод кунед

  1. Калиди хусусии корбар дар нишонаи мо нигоҳ дошта мешавад. Барои кор бо он, шумо бояд китобхонаи 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 мавҷуданд.
  2. Илова кардани провайдери нави PKCS # 11 ба XCA. Барои ин, ба меню гузаред Имконот ба ҷадвал Таъминкунандаи PKCS # 11.
  3. пахш мекунем илова кардан ва роҳ ба PKCS интихоб # 11 китобхона. Дар ҳолати ман он usrliblibrtpkcs11ecp.so аст.
  4. Ба мо аломати форматшудаи Rutoken EDS PKI лозим мешавад. Барномаи rtAdmin -ро зеркашӣ кунед - https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. Мо иҷро мекунем
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-код пользователя>
  6. Мо калиди RSA-2048-ро барои Rutoken EDS PKI ҳамчун навъи калид интихоб мекунем. Ман ин калидро Калиди муштарӣ номидаам.

    Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

  7. Рамзи PIN-ро ворид кунед. Ва мо интизори анҷоми тавлиди сахтафзори ҷуфти калид ҳастем

    Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

  8. Мо барои корбар аз рӯи шабеҳи сертификати сервер сертификат эҷод мекунем. Ин дафъа мо як қолабро интихоб мекунем [пешфарз] HTTPS_client ва пахш карданро фаромӯш накунед Ҳамаро татбиқ кунед.
  9. Дар ҷадвал фан маълумотро дар бораи корбар ворид кунед. Мо ба дархост дар бораи захира кардани сертификат барои нишона ҷавоби мусбат медиҳем.

Дар натиҷа, дар ҷадвал Сертификатҳо дар XCA шумо бояд чунин чизе гиред.

Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux
Ин маҷмӯи ҳадди ақали калидҳо ва сертификатҳо барои оғоз кардани насби худи серверҳо кифоя аст.

Барои танзим, мо бояд сертификати CA, сертификати сервер ва калиди хусусии серверро содир кунем.

Барои ин, вуруди дилхоҳро дар ҷадвали мувофиқ дар XCA интихоб кунед ва клик кунед содирот.

Nginx

Ман наменависам, ки чӣ гуна сервери nginx-ро насб кардан ва идора кардан мумкин аст - дар Интернет мақолаҳои кофӣ мавҷуданд, на дар бораи ҳуҷҷатҳои расмӣ. Биёед мустақиман ба танзими HTTPS ва аутентификатсияи ду-омилӣ бо истифода аз нишона гузарем.

Сатрҳои зеринро ба бахши сервер дар 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;
}

Тавсифи муфассали ҳамаи параметрҳои марбут ба танзими ssl дар nginx дар ин ҷо пайдо мешавад - https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Ман танҳо он чизеро, ки аз худ пурсидам, ба таври мухтасар тавсиф мекунам:

  • ssl_verify_client - муайян мекунад, ки занҷири эътимод барои сертификат бояд тафтиш карда шавад.
  • ssl_verify_depth - умқи ҷустуҷӯро барои сертификати решаи боэътимод дар занҷир муайян мекунад. Азбаски сертификати муштарии мо фавран дар сертификати реша имзо мешавад, амиқ ба 1 муқаррар карда мешавад. Агар сертификати корбар дар CA-и фосилавӣ имзо шуда бошад, пас дар ин параметр бояд 2 нишон дода шавад ва ғайра.
  • ssl_client_certificate - роҳро ба сертификати решаи боэътимод муайян мекунад, ки ҳангоми санҷиши эътимод ба сертификати корбар истифода мешавад.
  • ssl_certificate/ssl_certificate_key - нишон додани роҳ ба сертификати сервер/калиди хусусӣ.

Фаромӯш накунед, ки nginx -t -ро иҷро кунед, то тафтиш кунед, ки дар конфигуратсия хатогиҳои ҳарф вуҷуд надоранд ва ҳама файлҳо дар ҷои дуруст ҷойгиранд ва ғайра.

Ва ин ҳама! Тавре ки шумо мебинед, танзим хеле содда аст.

Тафтиши он дар Firefox кор мекунад

Азбаски мо ҳама чизро дар Linux комилан иҷро мекунем, мо тахмин мекунем, ки корбарони мо низ дар Linux кор мекунанд (агар онҳо Windows дошта бошанд, пас дастурҳо оид ба танзими браузерҳо дар мақолаи гузашта нигаред.

  1. Биёед Firefox-ро оғоз кунем.
  2. Биёед кӯшиш кунем, ки аввал бе нишона ворид шавем. Мо ин тасвирро мегирем:

    Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

  3. Мо идома медиҳем дар бораи: афзалиятҳо # махфият, ва мо ба он меравем Таҷҳизоти амниятӣ…
  4. пахш мекунем сарборӣБарои илова кардани драйвери дастгоҳи PKCS # 11 ва роҳро ба librtpkcs11ecp.so мо муайян кунед.
  5. Барои санҷидани он, ки шаҳодатнома намоён аст, шумо метавонед ба Мудири шаҳодатнома. Аз шумо хоҳиш карда мешавад, ки PIN-и худро ворид кунед. Пас аз вуруди дуруст, шумо метавонед он чизеро, ки дар ҷадвал мавҷуд аст, тафтиш кунед Шаҳодатномаҳои шумо сертификати мо аз нишона пайдо шуд.
  6. Акнун биёед бо нишона равем. Firefox аз шумо хоҳиш мекунад, ки сертификатеро интихоб кунед, ки барои сервер интихоб карда мешавад. Шаҳодатномаи моро интихоб кунед.

    Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

  7. ФАҚАТ!

    Аутентификатсияи ду омил дар сайт бо истифода аз аломати USB. Ҳоло низ барои Linux

Насбкунӣ як маротиба анҷом дода мешавад ва тавре ки шумо дар равзанаи дархости сертификат мебинед, мо метавонем интихоби худро захира кунем. Пас аз ин, ҳар дафъае, ки мо ба портал ворид мешавем, мо танҳо бояд токен ворид кунем ва рамзи PIN-и корбарро, ки ҳангоми форматкунӣ муайян карда шуда буд, ворид кунем. Пас аз чунин аутентификатсия, сервер аллакай медонад, ки кадом корбар ворид шудааст ва шумо дигар наметавонед ягон тирезаи иловагӣ барои тафтиш эҷод кунед, аммо фавран корбарро ба ҳисоби шахсии худ иҷозат диҳед.

Apache

Мисли nginx, ҳеҷ кас набояд дар насб кардани apache мушкилот дошта бошад. Агар шумо намедонед, ки чӣ тавр ин веб-сервер насб кунед, танҳо ҳуҷҷатҳои расмиро истифода баред.

Ва мо ба танзими HTTPS ва аутентификатсияи ду омили худ шурӯъ мекунем:

  1. Аввал шумо бояд mod_ssl -ро фаъол созед:
    $ a2enmod ssl
  2. Ва он гоҳ танзимоти пешфарзи HTTPS-и сайтро фаъол созед:
    $ a2ensite default-ssl
  3. Ҳоло мо файли конфигуратсияро таҳрир мекунем: /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

  4. Тавре ки шумо мебинед, насб кардани аутентификатсияи ду-омил дар ҳама гуна серверҳои веб, хоҳ дар Windows ё Linux, ҳадди аксар як соатро мегирад. Ва насб кардани браузерҳо тақрибан 5 дақиқа вақтро мегирад. Бисёр одамон фикр мекунанд, ки таъсис ва кор бо аутентификатсияи ду-омил душвор ва норавшан аст. Ман умедворам, ки мақолаи мо ҳадди аққал каме ин афсонаро рад мекунад.

Танҳо корбарони сабтиномшуда метавонанд дар пурсиш иштирок кунанд. даромад, Лутфан.

Оё ба шумо дастур оид ба танзими TLS бо сертификатҳо мувофиқи ГОСТ 34.10-2012 лозим аст:

  • Бале, TLS-GOST хеле зарур аст

  • Не, танзим бо алгоритмҳои ГОСТ ҷолиб нест

44 корбар овоз доданд. 9 корбар худдорӣ карданд.

Манбаъ: will.com

Илова Эзоҳ