ПроХостер > блог > Администрација > Двофакторска аутентификација на сајту помоћу УСБ токена. Сада и за Линук
Двофакторска аутентификација на сајту помоћу УСБ токена. Сада и за Линук
В један од наших претходних чланака говорили смо о значају двофакторске аутентификације на корпоративним порталима компанија. Последњи пут смо демонстрирали како да подесите безбедну аутентификацију на ИИС веб серверу.
У коментарима смо замољени да напишемо упутства за најчешће веб сервере за Линук – нгинк и Апацхе.
Питали сте - написали смо.
Шта вам је потребно за почетак?
Било која модерна Линук дистрибуција. Урадио сам пробно подешавање на МКС Линук 18.2_к64. Ово наравно није серверска дистрибуција, али мало је вероватно да ће бити било каквих разлика за Дебиан. За друге дистрибуције, путање до конфигурационих библиотека могу се незнатно разликовати.
Токен. Настављамо да користимо модел Рутокен ЕДС ПКИ, што је идеално у погледу карактеристика брзине за корпоративну употребу.
Да бисте радили са токеном у Линуку, потребно је да инсталирате следеће пакете:
либццид либпцсцлите1 пцсцд пцсц-тоолс опенсц
Издавање сертификата
У претходним чланцима ослањали смо се на чињеницу да ће сертификати сервера и клијента бити издати помоћу Мицрософт ЦА. Али пошто све подешавамо у Линук-у, такође ћемо вам рећи о алтернативном начину издавања ових сертификата - без напуштања Линук-а.
Користићемо КСЦА као ЦА (https://hohnstaedt.de/xca/), који је доступан у било којој модерној Линук дистрибуцији. Све радње које ћемо изводити у КСЦА могу се обавити у режиму командне линије користећи услужне програме ОпенССЛ и пкцс11, али због веће једноставности и јасноће, нећемо их представљати у овом чланку.
Први кораци
Инсталирај:
$ apt-get install xca
И трчимо:
$ xca
Креирамо нашу базу података за ЦА - /роот/ЦА.кдб
Препоручујемо да базу података Ауторитета за сертификате чувате у фасцикли којој само администратор има приступ. Ово је важно за заштиту приватних кључева основних сертификата, који се користе за потписивање свих осталих сертификата.
Креирајте кључеве и роот ЦА сертификат
Инфраструктура јавног кључа (ПКИ) је заснована на хијерархијском систему. Главна ствар у овом систему је роот сертификациони орган или роот ЦА. Прво се мора креирати његов сертификат.
Креирамо РСА-2048 приватни кључ за ЦА. Да бисте то урадили, на картици Приватни кључеви nažimaem Кеи и изаберите одговарајући тип.
Подесите име за нови пар кључева. Назвао сам га ЦА Кеи.
Издајемо сам ЦА сертификат, користећи креирани пар кључева. Да бисте то урадили, идите на картицу Сертификати и кликните Нови сертификат.
Обавезно изаберите СХА-КСНУМКС, јер се коришћење СХА-1 више не може сматрати безбедним.
Обавезно изаберите као шаблон [подразумевано]ЦА. Не заборавите да кликнете на Примени све, иначе се шаблон не примењује.
На картици Наслов упита изаберите наш пар кључева. Тамо можете попунити сва главна поља сертификата.
Креирање кључева и сертификата хттпс сервера
На сличан начин креирамо РСА-2048 приватни кључ за сервер, ја сам га назвао Серверски кључ.
Приликом креирања сертификата бирамо да сертификат сервера мора бити потписан ЦА сертификатом.
Не заборавите да изаберете СХА-КСНУМКС.
Бирамо као шаблон [подразумевано] ХТТПС_сервер. Кликните на Примени све.
Затим на картици Наслов упита изаберите наш кључ и попуните потребна поља.
Креирајте кључеве и сертификат за корисника
Приватни кључ корисника ће бити сачуван на нашем токену. Да бисте радили са њим, потребно је да инсталирате библиотеку ПКЦС#11 са наше веб странице. За популарне дистрибуције дистрибуирамо готове пакете, који се налазе овде - https://www.rutoken.ru/support/download/pkcs/. Такође имамо склопове за арм64, армв7ел, армв7хф, е2к, мипсо32ел, који се могу преузети са нашег СДК-а - https://www.rutoken.ru/developers/sdk/. Поред склопова за Линук, постоје и склопови за мацОС, фреебсд и андроид.
Додавање новог ПКЦС#11 добављача у КСЦА. Да бисте то урадили, идите на мени Опције на картицу ПКЦС#11 добављач.
Жмем додати и изаберите путању до библиотеке ПКЦС#11. У мом случају то је усрлиблибртпкцс11ецп.со.
Као тип кључа бирамо кључ РСА-2048 за Рутокен ЕДС ПКИ. Овај кључ сам назвао клијентски кључ.
Унесите ПИН код. И чекамо завршетак хардверске генерације пара кључева
Сертификат за корисника креирамо по аналогији са сертификатом сервера. Овај пут бирамо шаблон [подразумевано] ХТТПС_цлиент и не заборавите да кликнете Примени све.
На картици Наслов упита унесите податке о кориснику. На захтев за чување сертификата за токен одговарамо потврдно.
Као резултат, на картици Сертификати у КСЦА би требало да добијете нешто овако.
Овај минимални сет кључева и сертификата је довољан да започнете постављање самих сервера.
Да бисмо конфигурисали, морамо да извеземо ЦА сертификат, серверски сертификат и приватни кључ сервера.
Да бисте то урадили, изаберите жељени унос на одговарајућој картици у КСЦА и кликните извоз.
Нгинк
Нећу писати како инсталирати и покренути нгинк сервер - на Интернету има довољно чланака на ову тему, а да не спомињемо званичну документацију. Хајдемо директно на подешавање ХТТПС-а и двофакторске аутентификације помоћу токена.
Додајте следеће редове у одељак сервера у нгинк.цонф:
ссл_верифи_цлиент - специфицира да ланац поверења за сертификат треба да буде верификован.
ссл_верифи_дептх - Дефинише дубину претраге за поуздани роот сертификат у ланцу. Пошто је наш клијентски сертификат одмах потписан на основном сертификату, дубина је подешена на 1. Ако је кориснички сертификат потписан на средњем ЦА, онда 2 мора бити наведено у овом параметру, итд.
ссл_цлиент_цертифицате - специфицира путању до поузданог основног сертификата, који се користи приликом провере поверења у сертификат корисника.
ссл_цертифицате/ссл_цертифицате_кеи - назначите путању до сертификата/приватног кључа сервера.
Не заборавите да покренете нгинк -т да проверите да ли у конфигурацији нема грешака у куцању, да су све датотеке на правом месту итд.
И то је све! Као што видите, подешавање је врло једноставно.
Покушајмо прво да се пријавимо без токена. Добијамо ову слику:
Идемо даље абоут: поставке # приватност, и идемо на Сигурносни уређаји…
Жмем Оптерећењеда додате нови ПКЦС#11 драјвер уређаја и одредите путању до нашег либртпкцс11ецп.со.
Да бисте проверили да ли је сертификат видљив, можете да одете на Менаџер сертификата. Од вас ће бити затражено да унесете свој ПИН. Након исправног уноса, можете проверити шта се налази на картици Ваши сертификати појавио се наш сертификат из токена.
Сада идемо са жетоном. Фирефок тражи од вас да изаберете сертификат који ће бити изабран за сервер. Изаберите наш сертификат.
ДОБИТ!
Подешавање се врши једном, и као што можете видети у прозору захтева за сертификат, можемо да сачувамо наш избор. Након овога, сваки пут када се пријавимо на портал, биће нам потребно само да убацимо токен и унесемо кориснички ПИН код који је наведен током форматирања. Након такве аутентификације, сервер већ зна који корисник се пријавио и више не можете да креирате додатне прозоре за верификацију, већ одмах пустите корисника на његов лични налог.
апацхе
Баш као и са нгинк-ом, нико не би требало да има проблема са инсталирањем апацхе-а. Ако не знате како да инсталирате овај веб сервер, само користите званичну документацију.
И почињемо да подешавамо нашу ХТТПС и двофакторску аутентификацију:
Прво морате да активирате мод_ссл:
$ a2enmod ssl
Затим омогућите подразумевана ХТТПС подешавања сајта:
$ a2ensite default-ssl
Сада мењамо конфигурациону датотеку: /етц/апацхе2/ситес-енаблед/дефаулт-ссл.цонф:
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
Као што видите, називи параметара се практично поклапају са називима параметара у нгинк-у, тако да их нећу објашњавати. Опет, сви заинтересовани за детаље су добродошли у документацију.
Сада поново покрећемо наш сервер:
$ service apache2 reload
$ service apache2 restart
Као што видите, подешавање двофакторске аутентификације на било ком веб серверу, било на Виндовс-у или Линук-у, траје максимално један сат. А подешавање претраживача траје око 5 минута. Многи људи мисле да је постављање и рад са двофакторском аутентификацијом тешко и нејасно. Надам се да ће наш чланак бар мало разоткрити овај мит.
Само регистровани корисници могу учествовати у анкети. Пријавите се, Добродошао си.
Да ли су вам потребна упутства за подешавање ТЛС-а са сертификатима према ГОСТ 34.10-2012:
Да, ТЛС-ГОСТ је веома потребан
Не, подешавање са ГОСТ алгоритмима није занимљиво
44 корисника је гласало. 9 корисника је било уздржано.