Настройка двухфакторной аутентификации в ОС ROSA Desktop — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Новая страница: «<big>Настройка двухфакторной аутентификации в ОС РОСА Desktop Fresh R9</big> == Применимость == === Н…»)
 
(Настройка 2FA в ОС ROSA Desktop Fresh с рабочим столом KDE или Plasma)
 
(не показано 47 промежуточных версий 5 участников)
Строка 1: Строка 1:
<big>[[Настройка двухфакторной аутентификации в ОС РОСА Desktop Fresh R9]]</big>
+
<big>Настройка двухфакторной аутентификации в ОС ROSA Desktop Fresh R9</big>
 
== Применимость ==
 
== Применимость ==
  
 
=== Назначение ===
 
=== Назначение ===
  
Инструкция предназначена для описания процесса настройки двухфакторной аутентификации (2FA) в ОС ROSA Desktop Fresh R9.  
+
В данной инструкции описан процесс настройки двухфакторной аутентификации (2FA) в ОС ROSA Desktop Fresh R9.
  
=== Зачем использовать двухфакторную (многофакторную) аутентификацию и для чего она вообще нужна? ===
+
=== Зачем использовать двухфакторную (многофакторную) аутентификацию и для чего она нужна? ===
  
Двухфакторная (многофакторная) аутентификация нужна для '''усиления безопасности''' при попытке входа в операционную систему и во всех остальных случаях, требующих подтверждения подлинности пользователя. Таким образом, она существенно повышает безопасность вообще всякий раз, когда требуется ввести пароль.  
+
Двухфакторная (многофакторная) аутентификация нужна для ''усиления безопасности'' при попытке входа в операционную систему и во всех остальных случаях, когда требуется подтверждение подлинности пользователя. Таким образом, она существенно повышает безопасность всякий раз, когда нужно ввести пароль.
  
Пароль требуется при необходимости:
+
Пароль необходим, чтобы:
  
* осуществить штатный вход в графическую оболочку;
+
* Осуществить штатный вход в графическую оболочку ОС
* разблокировать компьютер (ноутбук) при работающем хранителе экрана;
+
* Разблокировать компьютер (ноутбук) при работающем хранителе экрана
* осуществить повторный вход (скажем, требуется войти в систему параллельно еще раз);
+
* Осуществить повторный вход (скажем, когда требуется параллельно войти в систему ещё раз)
* осуществить удаленное подключение к операционной системе (например по протоколу SSH);
+
* Осуществить удалённое подключение к операционной системе (например, по протоколу SSH)
* осуществить вход в текстовый терминал GETTY (ALT+F2...F6);
+
* Осуществить вход в текстовый терминал getty (<Alt+F2...F6>)
* переключить контекст пользователя - если нужно использовать su, sudo или выполнить действия от имени другого пользователя или администратора root.
+
* Переключить контекст пользователя (если нужно использовать <code>su</code>, <code>sudo</code> и выполнить действия от имени другого пользователя или администратора root).
  
 
А теперь представьте:
 
А теперь представьте:
  
* Вы подозреваете, что кому-то возможно стал известен Ваш текущий пароль, а поменять его сразу нет возможности;
+
* Вы подозреваете, что кому-то, возможно, стал известен ваш текущий пароль, а поменять его сразу нет возможности
* Ваш текущий пароль кто-то может подсмотреть во время ввода, к примеру незаметно встав у Вас за спиной;
+
* Ваш текущий пароль кто-то может подсмотреть во время ввода, например, незаметно встав у вас за спиной или применив зеркальце
* Вы подключаетесь к своему компьютеру по SSH из интернет-кафе или используя чужой компьютер. Можно предположить, что когда Вы набираете на чужом компьютере символы Вашего имени и пароля - информация может быть перехвачена и использована злоумышленником;
+
* Вы подключаетесь к своему компьютеру по SSH из интернет-кафе или с чужого компьютера. Можно предположить, что когда вы набираете на чужом компьютере символы вашего имени и пароля, информация может быть перехвачена и использована злоумышленником
* Вы опасаетесь, что ваш пароль слишком слабый или очевидный. И может быть легко подобран в уме злобными железными дядьками и тётьками из Мегатрона.
+
** в интернете есть масса простых и бесплатных программ, которые осуществляют перехват ввода с клавиатуры и запись его в файл. Файл затем можно скопировать или передать
 +
** в интернете можно приобрести особую клавиатуру, которая запишет ввод символов во встроенную в неё флеш-память. Также можно купить (или спаять самостоятельно) специальный USB-переходник для клавиатуры, который делает то же самое
 +
* Вы опасаетесь, что ваш пароль слишком слабый или очевидный, и может быть легко подобран
  
Во всех перечисленных случаях хорошей мерой противодействия может быть использование двухфакторной аутентификации.
+
Во всех перечисленных случаях хорошей мерой противодействия может быть использование двухфакторной аутентификации. Как это сделать, вам подскажет данное руководство. В результате вы научитесь настраивать ещё один барьер безопасности в своей системе.  
И в этом Вам поможет это руководство. Дочитав его до конца, Вы научитесь настраивать еще один барьер безопасности в своей системе.
+
И Вам останется лишь криво ухмыляться (ну или адски гоготать), глядя на работу интернет-бота, тщетно пытающегося подобрать пароли к Вашей системе.
+
  
Двухфакторная (многофакторная) аутентификация основана на принципе, гласящем, что для подтверждения подлинности пользователя необходимо '''сочетание нескольких факторов''':
+
Многофакторная (в т.&nbsp;ч. двухфакторная) аутентификация основана на принципе, гласящем, что для подтверждения подлинности пользователя необходимо ''сочетание нескольких факторов'':
* Пользователь '''знает''' что-то, чего не знает никто (например, свой '''пароль''');
+
* Пользователь '''имеет''' что-то, чего не имеет никто (это может быть, например, '''одноразовый пароль''' или токен, содержащий ключ, и т.п.);
+
* Пользователь неотъемлемо '''обладает''' чем-то (как субъект материального мира), чем кроме него, не обладает никто (например '''отпечатком пальца''' или уникальной радужкой оболочки глаза, и т.п.). В последнем случае, речь, как правило, идет о применении '''биометрической аутентификации'''.
+
  
Для ОС ROSA Desktop Fresh R9 мы предлагаем использовать двухфакторную аутентификацию с использованием одноразовых TOTP паролей, которые актуальны всего 30 секунд.
+
* Пользователь ''знает'' что-то, чего не знает никто (например, свой ''пароль'')
Такая настройка рекомендуется нами как наиболее приемлемая и удобная для пользователя. Для ее применения, в целом, не нужно производить никаких особенно сложных настроек и не требуется применять никаких редких программ или использовать дорогостоящее оборудование. И 2FA можно будет использовать после правильной настройки даже без подключения к сети Internet.  
+
* Пользователь ''имеет'' что-то, чего не имеет никто (это может быть, например, ''одноразовый пароль'' или токен, содержащий ключ, и т. п.)
 +
* Пользователь неотъемлемо ''обладает'' чем-то (как субъект материального мира), чем кроме него, не обладает никто (''отпечаток пальца'', радужка глаза, голос, и т. п.). В последнем случае, речь, как правило, идёт о применении т. н. ''биометрической аутентификации'' или биометрии.
  
=== Что Вам потребуется для настройки. ===
+
Для ОС ROSA Desktop Fresh R9 мы предлагаем использовать двухфакторную аутентификацию с использованием одноразовых TOTP-паролей, которые актуальны всего 30 секунд.
  
* Вам понадобится установить на компьютер из нашего репозитория программу google-authenticator.
+
Строго говоря, ниже описана двухэтапная аутентификация. Тем, кто «в теме» и понимает разницу, а также специалистам по ИБ рекомендуем сразу читать последний параграф данной статьи.
* Вам понадобится смартфон (Windows Mobile&copy;, Android&copy; или Apple&copy; iOS&copy;, без разницы), который превратится в ваш токен с ключом и станет генератором одноразовых паролей;
+
* Время на телефоне и на компьютере должно будет совпадать, это ключевое. Допустимо только незначительное отклонение времени между устройствами;
+
** Для синхронизации времени лучше всего использовать серверы точного времени.
+
** Например, Вы можете использовать наши публичные и общедоступные серверы времени: ntp.rosalinux.ru и ntp2.rosalinux.ru или любые другие по Вашему желанию.
+
* Шапочка из фольги (шутка).
+
  
=== Ограничения, о которых нужно знать. ===
+
Процесс настройки, описанный ниже, рекомендуется нами как наиболее удобный для пользователя. Вам не нужно производить каких-либо сложных действий, не требуется применять редкие программы или использовать дорогостоящее оборудование. К тому же после правильной настройки двухфакторную аутентификацию можно будет использовать без подключения к интернету.
  
* Если Вы утратите телефон или там сядет батарейка, то Вы не сможете без своего работающего телефона зайти в ОС штатным способом;
+
=== Список поддерживаемых ОС семейства РОСА ===
* Если у Вас будет отличаться время на компьютере и на телефоне, то Вы тоже не сможете зайти в ОС штатным способом;
+
* Помните, что с ростом безопасности снижается удобство использования. Вам теперь постоянно придется иметь под рукой работающий телефон и вводить два пароля вместо одного;
+
  
=== Что Вы получите в итоге. ===
+
В настоящее время поддерживаются следующие ОС (не ниже):
 +
* ROSA Desktop Fresh R9 GNOME
 +
* ROSA Desktop Fresh R11 KDE
 +
* ROSA Desktop Fresh R11 Plasma (при условии изменения менеджера входа с SDDM на LightDM)
 +
* Любая ОС ROSA (Fresh/RED) платформы 2014.1 или 2016.1 с менеджером входа KDM, GDM либо LightDM
  
* Существенно вырастет безопасность. Теперь можно не опасаться, что Вы случайно или специально скомпрометируете пароль пользователя или даже администратора (root);
+
=== Что потребуется для настройки ===
* Вам не потребуется покупать дорогостоящее оборудование или программное обеспечение, чтобы повысить безопасность. Вы сможете сделать это себе бесплатно после несложной настройки (или соседу за тысячу рублей);
+
* Вы будете знать, что Ваша система повышения безопасности - только Ваша, и ничья еще, никакие сторонние сервисы не используются;
+
* Вы будете на практике использовать современные технологии информационной безопасности в повседневной жизни;
+
* Кто-то может перенять Ваш опыт, и начать использовать 2FA и тоже повысит безопасность своей системы;
+
* Вы теперь сможете повысить свою самооценку перед родными, друзьями и знакомыми :)))
+
  
=== Список поддерживаемых ОС семейства РОСА. ===
+
* Установить на компьютер из нашего репозитория программу {{pkg|google-authenticator}}
 +
* Взять смартфон или планшет (Windows Phone&copy;, Android&copy; или Apple&copy; iOS&copy;, без разницы), который превратится в ваш токен с ключом и станет генератором одноразовых паролей
 +
* Сделать так, чтобы время на смартфоне и на компьютере совпадало. Допускается только незначительное расхождение по времени между устройствами
 +
** Для синхронизации времени лучше всего использовать серверы точного времени. Например, вы можете использовать наши публичные и общедоступные серверы времени —  ntp.rosalinux.ru и ntp2.rosalinux.ru или любые другие по вашему желанию
  
В настоящее время поддерживаются следующие ОС (не ниже):
+
=== Ограничения, о которых нужно знать ===
* ROSA Desktop Fresh R9 GNOME;
+
* ROSA Desktop Fresh R9 KDE (обязательно изменить менеджер входа с KDM на LightDM);
+
* ROSA Desktop Fresh R9 PLASMA (обязательно изменить менеджер входа с SDDM на LightDM);
+
* Любая ОС РОСА (Fresh/RED) платформы 2014.1 или 2016.1 с менеджером входа GDM либо LightDM.
+
  
=== Принцип настройки и работы 2FA в ОС ROSA Desktop Fresh R9. ===
+
* Если вы потеряете смартфон или в нём сядет батарейка, вы не сможете зайти в ОС штатным способом
 +
* Если у вас будет различаться время на компьютере и на телефоне, вы также не сможете зайти в ОС штатным способом
 +
* Помните, что с ростом безопасности снижается удобство использования. Вам теперь постоянно придётся иметь под рукой работающий телефон и вводить два пароля вместо одного
 +
* Переключение в контекст другого пользователя может стать проблемой: помимо пароля другого пользователя нужно будет знать его одноразовый пароль
  
Работа 2FA в ОС РОСА базируется на следующих принципах:
+
=== Что вы получите в итоге ===
  
* требуется установить программу google-authenticator;
+
* Существенно возрастёт безопасность. Теперь можно будет не опасаться скомпрометировать пароль пользователя или даже администратора (root)
* будет использоваться односторонний алгоритм аутентификации по одноразовым паролям на основе времени TOTP (Time-based One Time Password Algorithm, [https://tools.ietf.org/html/rfc6238 RFC 6238]);
+
* Повышение безопасности не будет стоить вам ни рубля
* на компьютере при установке и первичной настройке для каждого пользователя генерируется 80-битный секретный ключ. Он отображается с помощью QR кода (по-умолчанию) или отображается как 16-ти (по-умолчанию), 26-ти или 32-ух значный код в кодировке Base32.;
+
* Вы будете знать, что ваша система повышения безопасности — только ваша и ничья ещё. Никакие сторонние сервисы не используются
* QR код фотографируется прямо с экрана компьютера приложением телефона (или в телефонное приложение вручную вводится образованный на компьютере цифровой 16-ти значный код);
+
* Вы будете на практике использовать современные технологии информационной безопасности в повседневной жизни
* приложение на телефоне создает HMAC-SHA1 используя этот секретный QR код (16-ти значный код) в качестве основы (ключа) для расчетов;
+
* Кто-то может перенять ваш опыт и начать использовать 2FA, чем повысит безопасность своей системы
* затем часть HMAC извлекается и преобразуется в шестизначный (по-умолчанию) одноразовый пароль, отображаемый на экране телефона;
+
* одноразовый пароль действует 30 секунд (по-умолчанию).
+
  
=== Программы для смартфона, которые поддерживают работу 2FA. ===
+
=== Принцип настройки и работы 2FA в ROSA Desktop  ===
  
Ниже приведен список бесплатных программ (на момент написания статьи) для генерации одноразовых паролей.
+
Работа 2FA в ROSA Desktop базируется на следующих принципах:
Мы постарались охватить в этом руководстве весь спектр современных смартфонов, по крайней мере, абсолютное большинство.
+
 
Помимо бесплатных приложений, есть еще и платные. Но в данном руководстве мы их описывать не будем.
+
* Используется односторонний алгоритм аутентификации по одноразовым паролям на основе времени — TOTP (Time-based One Time Password Algorithm, [https://tools.ietf.org/html/rfc6238 RFC 6238])
Мы в руководстве охватили только самые популярные приложения для телефона. Нет нужды описывать их все.
+
* На компьютере при установке и первичной настройке для каждого пользователя генерируется 80-битный секретный ключ. Он отображается с помощью QR-кода (по умолчанию) или отображается как 16- (по умолчанию), 26- или 32-значный код в кодировке Base32
 +
* QR-код сканируется прямо с экрана компьютера специальным приложением смартфона (или в телефонное приложение вручную вводится образованный на компьютере цифровой 16-значный код)
 +
* Приложение на телефоне создаёт HMAC-SHA1, используя этот секретный QR-код (16-значный код) в качестве основы (ключа) для расчётов
 +
* Затем часть HMAC извлекается и преобразуется в шестизначный (по умолчанию) одноразовый пароль, отображаемый программой на экране смартфона
 +
* Одноразовый пароль действует 30 секунд (по умолчанию)
 +
 
 +
=== Программы для смартфонов/планшетов, необходимые к установке ===
 +
 
 +
Ниже приведён список доступных на момент написания данной статьи бесплатных программ для генерации одноразовых паролей. Мы постарались охватить всё многообразие современных смартфонов по крайней мере, абсолютное их большинство.
 +
 
 +
Помимо бесплатных приложений есть ещё и платные, но в данном руководстве мы их описывать не будем.
  
 
==== Для смартфона/планшета с системой Android&copy; ====  
 
==== Для смартфона/планшета с системой Android&copy; ====  
  
* установите программу [https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp FreeOTP Authenticator];
+
* [https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp FreeOTP Authenticator];
* установите программу [https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 Google Authenticator];
+
* [https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 Google Authenticator];
  
 
==== Для смартфона/планшета компании Apple&copy; с системой iOS&copy; ====
 
==== Для смартфона/планшета компании Apple&copy; с системой iOS&copy; ====
  
* установите программу [https://itunes.apple.com/ru/app/freeotp-authenticator/id872559395?mt=8 FreeOTP Authenticator];
+
* [https://itunes.apple.com/ru/app/freeotp-authenticator/id872559395?mt=8 FreeOTP Authenticator];
* установите программу [https://itunes.apple.com/ru/app/google-authenticator/id388497605?mt=8 Google Authenticator];
+
* [https://itunes.apple.com/ru/app/google-authenticator/id388497605?mt=8 Google Authenticator];
 +
 
 +
==== Для смартфона с системой Microsoft&copy; Windows Phone&copy; или планшета Microsoft&copy; Surface&copy; ====
 +
 
 +
* [https://www.microsoft.com/ru-ru/store/p/microsoft-authenticator/9nblgggzmcj6 Microsoft Authenticator].
 +
 
 +
== Настройка операционной системы ROSA Desktop Fresh R9 (GNOME) для работы двухфакторной аутентификации ==
 +
 
 +
=== Установка приложения на компьютер и синхронизация часов ===
 +
 
 +
'''Прежде всего убедитесь, что время на компьютере и на смартфоне/планшете совпадает!'''
 +
 
 +
Для настройки времени на компьютере можно использовать программу ''drakclock''. Запустите её (<Alt+F2> и команда <code>drakclock</code>) и проверьте время и часовой пояс. Хорошим решением будет использование любого сервера времени из списка программы ''drakclock''. Также вы можете сами вписать любой сервер времени. Например, один из наших серверов времени — ntp.rosalinux.ru или ntp2.rosalinux.ru.
 +
 
 +
[[File:drakclock.png|300px|center|thumb|Рисунок 1. Синхронизация времени с помощью ''drakclock'']]
 +
 
 +
=== Установка приложения на смартфон/планшет ===
 +
 
 +
'''Устанавливайте программу только после синхронизации времени на компьютере и на смартфоне/планшете!'''
 +
 
 +
* Установите {{pkg|google-authenticator}}:
 +
 
 +
urpmi google-authenticator
 +
 
 +
=== Создание на компьютере QR-кода (ключа) для администратора (root) ===
 +
 
 +
* На компьютере переключитесь в контекст администратора (root):
 +
 
 +
su - или sudo -i
 +
 
 +
Для администратора лучше в первую очередь настроить одноразовый пароль, чтобы избежать сложностей при дальнейшей настройке. Если что-то пойдёт не так, вам пригодится уже настроенный вход администратора (root).
 +
 
 +
* Создайте ключ для администратора следующей командой (лучше всего это делать в терминале ''xterm''):
 +
 
 +
google-authenticator
 +
 
 +
[[File:2FA_pic1.png|640px|center|thumb|Рисунок 2. Получение QR-кода или цифрового ключа]]
 +
 
 +
=== Ввод QR-кода (цифрового ключа) в приложение на смартфоне/планшете ===
 +
 
 +
Запустите на смартфоне или планшете установленное приложение, и, следуя его подсказкам, просканируйте получившийся QR-код. Либо, если ваше приложение не поддерживает сканирование QR-кодов, вручную введите шестнадцатизначный ключ, сгенерированный прямо под QR-кодом и подписанный следующим образом:
 +
 
 +
Your new secret key is: ABCDEFGH12345678
 +
 
 +
Пример сканирования QR-кода:
 +
 
 +
[[File:2FA_pic2.png|200px|center|thumb|Рисунок 3. Пример сканирования QR-кода приложением на смартфоне]]
 +
 
 +
=== Создание на компьютере и ввод в смартфон/планшет QR-кода для обычного пользователя ===
 +
 
 +
Создание QR-кода для рядового пользователя системы ничем не отличается от создания его для администратора.
 +
 
 +
* Запустите терминал и переключитесь в контекст этого пользователя:
 +
 
 +
su - <имя_желаемого_пользователя>
 +
 
 +
* Выполните:
 +
 
 +
google-authenticator
 +
 
 +
В ответ вы увидите ещё один QR-код для пользователя. Пример QR-кода показан на рисунке 2.
 +
 
 +
* Далее, как уже было описано выше, просканируйте вашим смартфоном/планшетом ещё один QR-код или введите шестнадцатизначный ключ. Пример этой операции показан на рисунке 3.
 +
 
 +
* Повторите операции по генерации QR-кодов столько раз, сколько нужно. Скорее всего, вам потребуется создать свой QR-код для каждого пользователя системы. Ведь, как только вы закончите настройку, войти в систему без одноразового пароля станет невозможно.
 +
 
 +
Не забывайте при создании QR-кодов каждый раз переключаться в контекст нового пользователя.
 +
 
 +
=== Настройка графического менеджера GDM ===
 +
 
 +
Если у вас установлена ОС ROSA Fresh R9 с графическим окружением GNOME, ниже вы можете прочитать, как настроить GNOME Dislay Manager (GDM) для работы с 2FA.
 +
 
 +
Для настройки GDM вам потребуются полномочия администратора (root).
 +
 
 +
* Отредактируйте файл /etc/pam.d/gdm-password. Измените верхние строки, как указано в примере:
 +
 
 +
#%PAM-1.0
 +
auth      required    pam_env.so
 +
auth      required    pam_unix.so
 +
auth      sufficient  pam_google_authenticator.so
 +
auth      sufficient  pam_succeed_if.so user ingroup nopasswdlogin
 +
 
 +
Помните, что настройки модуля PAM применяются немедленно, и перезагрузку выполнять не нужно.
 +
 
 +
* Введите первый пароль как обычно.
 +
 
 +
[[File:gdmscreen2.png|640px|center|thumb|Рисунок 4. Ввод пароля в GDM]]
 +
 
 +
* Запустите приложение на вашем смартфоне, выберите учётную запись и приготовьтесь ввести одноразовый пароль. Помните, что он действует 30 секунд. В приложении обычно имеется индикатор срока действия.
 +
 
 +
[[File:2FA_pic3.png|200px|center|thumb|Рисунок 5. Работа генератора одноразового пароля на смартфоне]]
 +
 
 +
* Введите цифры с экрана смартфона в менеджер входа GDM, как только будет запрошен одноразовый пароль.
 +
 
 +
Теперь у вас настроена двухфакторная аутентификация для входа в графическую оболочку.
 +
 
 +
[[File:gdmscreen1.png|640px|center|thumb|Рисунок 6. Ввод одноразового пароля в GDM]]
 +
 
 +
Однако ещё ''не'' настроены:
 +
* Вход в текстовую консоль и переключение контекста пользователя
 +
* Механизм sudo
 +
* Удалённый вход по протоколу SSH
 +
 
 +
Как настроить всё это, описано далее.
 +
 
 +
=== Настройка 2FA для текстовой консоли и переключения контекста пользователя ===
 +
 
 +
Для этой настройки вам снова потребуются полномочия root.
 +
 
 +
* Отредактируйте файл /etc/pam.d/system-auth и приведите первые 4 строчки к следующему виду:
 +
 
 +
auth        required      pam_env.so
 +
auth        required      pam_unix.so try_first_pass nullok
 +
auth        sufficient    pam_google_authenticator.so
 +
auth        required      pam_deny.so
 +
 
 +
Немедленно после этого для входа в текстовую консоль потребуется вводить одноразовый пароль.
 +
 
 +
[[File:Tty2 2FA.png|300px|center|thumb|Рисунок 7. 2FA в текстовой консоли getty]]
 +
 
 +
То же самое заработает и для переключения контекста полномочий — например, при использовании команды <code>su</code>.
 +
 
 +
[[File:Su 2FA.png|300px|center|thumb|Рисунок 8. 2FA при переключении контекста полномочий пользователя]]
 +
 
 +
=== Настройка 2FA для использования sudo ===
 +
 
 +
Для настройки потребуются полномочия root.
 +
 
 +
* Выполните:
 +
 
 +
visudo
 +
 
 +
* Поменяйте строку
 +
 
 +
Defaults    env_reset
 +
 
 +
на
 +
 
 +
Defaults    env_reset, timestamp_timeout=0
 +
 
 +
Двухфакторная аутентификация для <code>sudo</code> работает уже после редактирования файла system-auth. В данном случае мы лишь сделали так, чтобы пароль при использовании <code>sudo</code> запрашивался каждый раз, повысив таким образом безопасность системы.
 +
 
 +
=== Настройка 2FA для удаленного входа по SSH ===
 +
 
 +
* Переключитесь в контекст root.
 +
 
 +
* В файле /etc/ssh/sshd_config найдите строку
 +
 
 +
UsePAM no
 +
 
 +
и измените <code>no</code> на <code>yes</code>.
  
==== Для смартфона с системой Microsoft&copy; Windows Mobile&copy; или планшета Microsoft&copy; Surface&copy; ====
+
* Перезапустите службу ''sshd'':
  
* установите программу [https://www.microsoft.com/ru-ru/store/p/microsoft-authenticator/9nblgggzmcj6 Microsoft Authenticator].
+
systemctl restart sshd
  
== Настройка операционной системы для работы двухфакторной аутентификации ==
+
После перезапуска службы ''sshd'' у вас заработает двухфакторная аутентификация при использовании удалённого подключения по SSH к своему компьютеру.
  
Сперва установите google-authenticator:
+
== Настройка 2FA в ОС ROSA Desktop Fresh с рабочим столом Plasma ==
  
  '''urpmi google-authenticator"'''
+
Настройка двухфакторной аутентификации ROSA Fresh с окружениями рабочего стола  Plasma практически полностью совпадает с описанной выше.
  
Полный же список пакетов, включ{{how-to-install|{{lc:{{PAGENAME}}}}}}ая сам изначальный сервер IPA и DNS устанавливается командой:
+
Для настройки потребуются полномочия root.
'''yum install -y "*ipa-server" "*ipa-server-trust-ad" bind bind-dyndb-ldap'''
+
+
Заново получим билет для пользователя admin, т. к. в него будет добавлена новая информация, касающаяся возможности установки доверительных отношении с доменом AD.
+
Затем настроим сервер IPA для установки доверительных отношений
+
  '''kinit admin'''
+
  '''ipa-adtrust-install --netbios-name=IPA -a mypassword1'''
+
  
Далее рекомендуется настроить синхронизацию времени между контроллерами домена AD и IPA.
+
* Установите программу LightDM:
  
== Настройка DNS ==
+
urpmi lightdm
Необходимо добавить данные о DNS зоне IPA сервера в домен AD:
+
  '''dnscmd 127.0.0.1 /ZoneAdd lintest.ru /Forwarder 192.168.76.82'''
+
  
Добавим информацию о DNS зоне домена AD в настройки DNS домена IPA:
+
* Отключите текущий менеджер входа и активируйте ''lightdm'':
  
  '''ipa dnszone-add test.dom --name-server=windc.test.dom --admin-email='hostmaster@test.dom' --force --forwarder=192.168.76.93 --forward-policy=only --ip-address=192.168.76.93'''
+
  systemctl disable sddm ''(если вы используете Plasma)''
   
+
Проверить настройки DNS можно:
+
* На сервере IPA командой:
+
  '''dig SRV _ldap._tcp.test.dom'''
+
  
При этом в зоне AD должна быть найдена информация об ответственных серверах с каталогом LDAP в этой зоне;
+
systemctl enable lightdm
  
* на сервере AD командами (как показано на рис.1):
+
* Отредактируйте файл /etc/pam.d/lightdm. Первые три строки должны принять вид:
  
  '''nslookup
+
auth      required    pam_env.so
  > set type=srv
+
auth      required    pam_unix.so
  > _ldap._tcp.ad_domain
+
auth      sufficient  pam_google_authenticator.so
  > _ldap._tcp.ipa_domain
+
  > quit'''
+
[[File:Ipa dns.jpg]]
+
  
== Включение доверительных отношений ==
+
После этого можно будет выполнить перезагрузку и получить двухфакторную аутентификацию в графической консоли.
  
Включим доверительные отношения между с AD командой:
+
Процедуры настройки 2FA для входа в текстовый терминал, для переключения контекста полномочий и для работы с <code>sudo</code> и <code>ssh</code> идентичны версии для GNOME.
  
  '''ipa trust-add --type=ad test.dom --admin Administrator --password'''
+
== Известные ошибки и способы их исправления ==
  
  Active directory domain administrator's password:
+
В процессе использования были отмечены случаи, когда пользователь не может пройти аутентификацию.
  -------------------------------------------------
+
  Added Active Directory trust for realm "test.dom"
+
  -------------------------------------------------
+
  Realm name: test.dom
+
  Domain NetBIOS name: TEST
+
  Domain Security Identifier: S-1-5-21-994480235-3382885224-2559249864
+
  Trust direction: Two-way trust
+
  Trust type: Active Directory domain
+
  Trust status: Established and verified
+
  
Если вы получили ошибку вида:
+
Признаки:
 +
* Пользователь не может зайти, при попытке аутентификации возникает отказ
 +
* В домашнем каталоге пользователя появляется файл ~/.google-authenticator~
  
ipa: ERROR: неверный(ое) Gettext('missing base_id', domain='ipa', localedir=None): pysss_murmur is not available on the server and no base-id is given
+
Способ исправления:
 +
* Зайдите в систему в контексте учётной записи администратора (root)
 +
* Удалите из каталога пользователя файл ~/.google-authenticator~
  
То необходимо установить пакет ''python-sss-murmur'' командой:
+
== Существенная оговорка для специалистов по ИБ ==
  
  '''yum install python-sss-murmur'''
+
Строго говоря, речь в данной статье идёт не о ''двухфакторной'' (two-factor authentication), а о т.&nbsp;н. ''двухэтапной'' (two-step authentication) аутентификации. Существуют различия между сертификатом, расположенным в хранилище токена (которое, в свою очередь, закрыто PIN-кодом), отпечатком пальца и одноразовым паролем.
  
После чего перезагрузить домен IPA командой:
+
В общем случае двухфакторная аутентификация должна:
  '''/etc/init.d/ipa restart'''
+
  
Далее повторить попытку включения доверительных отношений, не забыв перед этим заново получить билет администратора домена:
+
а) быть строгой<br>
  '''kinit admin'''
+
б) основываться на действительно независимом факторе, которым, вообще говоря, не является одноразовый пароль<br>
== Настройка рабочей станции ==
+
в) быть независимо проверенной (например, путём сертификационных испытаний) и подтверждённой (например, с помощью испытательной лаборатории)
Для осуществления возможности авторизации пользователя AD в домене IPA по средством Kerberos, на ПК, где будет осуществляться авторизация нужно добавить два параметра в файл ''/etc/krb5.conf''. В секцию [realms]:
+
  
  [realms]
+
Но, с другой стороны, мы опубликовали эту статью, чтобы наши пользователи могли быстро и без особых усилий повысить безопасность своих данных. Способ, описанный выше, для этого отлично подходит. Существует не так много бесплатных решений, позволяющих это осуществить.
  LINTEST.RU = {
+
  ---
+
  auth_to_local = RULE:[1:$1@$0](^.*@TEST.DOM$)s/@TEST.DOM/@test.dom/
+
  auth_to_local = DEFAULT
+
  
Где TEST.DOM — соответственно имя вашего домена AD.
+
Просим простить нам эту неточность, ибо простого пользователя необязательно погружать в тонкости терминологии, описывая различия между двухфакторной и двухэтапной аутентификацией.
  
Далее можно входить на ПК из IPA домена с использованием пользователя AD с указанием логина в виде '''user@TEST.DOM'''
+
С уважением, команда разработчиков ROSA Linux.
  
[[File:Ipa enter.jpg]]
+
[[en:Two-factor authentication setup in OS ROSA Desktop Fresh R9]]
[[Категория:ROSA Enterprise Linux Server]]
+
[[Категория:"Точка РОСЫ"]]

Текущая версия на 13:16, 1 июня 2019

Настройка двухфакторной аутентификации в ОС ROSA Desktop Fresh R9

Содержание

Применимость

Назначение

В данной инструкции описан процесс настройки двухфакторной аутентификации (2FA) в ОС ROSA Desktop Fresh R9.

Зачем использовать двухфакторную (многофакторную) аутентификацию и для чего она нужна?

Двухфакторная (многофакторная) аутентификация нужна для усиления безопасности при попытке входа в операционную систему и во всех остальных случаях, когда требуется подтверждение подлинности пользователя. Таким образом, она существенно повышает безопасность всякий раз, когда нужно ввести пароль.

Пароль необходим, чтобы:

  • Осуществить штатный вход в графическую оболочку ОС
  • Разблокировать компьютер (ноутбук) при работающем хранителе экрана
  • Осуществить повторный вход (скажем, когда требуется параллельно войти в систему ещё раз)
  • Осуществить удалённое подключение к операционной системе (например, по протоколу SSH)
  • Осуществить вход в текстовый терминал getty (<Alt+F2...F6>)
  • Переключить контекст пользователя (если нужно использовать su, sudo и выполнить действия от имени другого пользователя или администратора root).

А теперь представьте:

  • Вы подозреваете, что кому-то, возможно, стал известен ваш текущий пароль, а поменять его сразу нет возможности
  • Ваш текущий пароль кто-то может подсмотреть во время ввода, например, незаметно встав у вас за спиной или применив зеркальце
  • Вы подключаетесь к своему компьютеру по SSH из интернет-кафе или с чужого компьютера. Можно предположить, что когда вы набираете на чужом компьютере символы вашего имени и пароля, информация может быть перехвачена и использована злоумышленником
    • в интернете есть масса простых и бесплатных программ, которые осуществляют перехват ввода с клавиатуры и запись его в файл. Файл затем можно скопировать или передать
    • в интернете можно приобрести особую клавиатуру, которая запишет ввод символов во встроенную в неё флеш-память. Также можно купить (или спаять самостоятельно) специальный USB-переходник для клавиатуры, который делает то же самое
  • Вы опасаетесь, что ваш пароль слишком слабый или очевидный, и может быть легко подобран

Во всех перечисленных случаях хорошей мерой противодействия может быть использование двухфакторной аутентификации. Как это сделать, вам подскажет данное руководство. В результате вы научитесь настраивать ещё один барьер безопасности в своей системе.

Многофакторная (в т. ч. двухфакторная) аутентификация основана на принципе, гласящем, что для подтверждения подлинности пользователя необходимо сочетание нескольких факторов:

  • Пользователь знает что-то, чего не знает никто (например, свой пароль)
  • Пользователь имеет что-то, чего не имеет никто (это может быть, например, одноразовый пароль или токен, содержащий ключ, и т. п.)
  • Пользователь неотъемлемо обладает чем-то (как субъект материального мира), чем кроме него, не обладает никто (отпечаток пальца, радужка глаза, голос, и т. п.). В последнем случае, речь, как правило, идёт о применении т. н. биометрической аутентификации или биометрии.

Для ОС ROSA Desktop Fresh R9 мы предлагаем использовать двухфакторную аутентификацию с использованием одноразовых TOTP-паролей, которые актуальны всего 30 секунд.

Строго говоря, ниже описана двухэтапная аутентификация. Тем, кто «в теме» и понимает разницу, а также специалистам по ИБ рекомендуем сразу читать последний параграф данной статьи.

Процесс настройки, описанный ниже, рекомендуется нами как наиболее удобный для пользователя. Вам не нужно производить каких-либо сложных действий, не требуется применять редкие программы или использовать дорогостоящее оборудование. К тому же после правильной настройки двухфакторную аутентификацию можно будет использовать без подключения к интернету.

Список поддерживаемых ОС семейства РОСА

В настоящее время поддерживаются следующие ОС (не ниже):

  • ROSA Desktop Fresh R9 GNOME
  • ROSA Desktop Fresh R11 KDE
  • ROSA Desktop Fresh R11 Plasma (при условии изменения менеджера входа с SDDM на LightDM)
  • Любая ОС ROSA (Fresh/RED) платформы 2014.1 или 2016.1 с менеджером входа KDM, GDM либо LightDM

Что потребуется для настройки

  • Установить на компьютер из нашего репозитория программу google-authenticator
  • Взять смартфон или планшет (Windows Phone©, Android© или Apple© iOS©, без разницы), который превратится в ваш токен с ключом и станет генератором одноразовых паролей
  • Сделать так, чтобы время на смартфоне и на компьютере совпадало. Допускается только незначительное расхождение по времени между устройствами
    • Для синхронизации времени лучше всего использовать серверы точного времени. Например, вы можете использовать наши публичные и общедоступные серверы времени — ntp.rosalinux.ru и ntp2.rosalinux.ru или любые другие по вашему желанию

Ограничения, о которых нужно знать

  • Если вы потеряете смартфон или в нём сядет батарейка, вы не сможете зайти в ОС штатным способом
  • Если у вас будет различаться время на компьютере и на телефоне, вы также не сможете зайти в ОС штатным способом
  • Помните, что с ростом безопасности снижается удобство использования. Вам теперь постоянно придётся иметь под рукой работающий телефон и вводить два пароля вместо одного
  • Переключение в контекст другого пользователя может стать проблемой: помимо пароля другого пользователя нужно будет знать его одноразовый пароль

Что вы получите в итоге

  • Существенно возрастёт безопасность. Теперь можно будет не опасаться скомпрометировать пароль пользователя или даже администратора (root)
  • Повышение безопасности не будет стоить вам ни рубля
  • Вы будете знать, что ваша система повышения безопасности — только ваша и ничья ещё. Никакие сторонние сервисы не используются
  • Вы будете на практике использовать современные технологии информационной безопасности в повседневной жизни
  • Кто-то может перенять ваш опыт и начать использовать 2FA, чем повысит безопасность своей системы

Принцип настройки и работы 2FA в ROSA Desktop

Работа 2FA в ROSA Desktop базируется на следующих принципах:

  • Используется односторонний алгоритм аутентификации по одноразовым паролям на основе времени — TOTP (Time-based One Time Password Algorithm, RFC 6238)
  • На компьютере при установке и первичной настройке для каждого пользователя генерируется 80-битный секретный ключ. Он отображается с помощью QR-кода (по умолчанию) или отображается как 16- (по умолчанию), 26- или 32-значный код в кодировке Base32
  • QR-код сканируется прямо с экрана компьютера специальным приложением смартфона (или в телефонное приложение вручную вводится образованный на компьютере цифровой 16-значный код)
  • Приложение на телефоне создаёт HMAC-SHA1, используя этот секретный QR-код (16-значный код) в качестве основы (ключа) для расчётов
  • Затем часть HMAC извлекается и преобразуется в шестизначный (по умолчанию) одноразовый пароль, отображаемый программой на экране смартфона
  • Одноразовый пароль действует 30 секунд (по умолчанию)

Программы для смартфонов/планшетов, необходимые к установке

Ниже приведён список доступных на момент написания данной статьи бесплатных программ для генерации одноразовых паролей. Мы постарались охватить всё многообразие современных смартфонов — по крайней мере, абсолютное их большинство.

Помимо бесплатных приложений есть ещё и платные, но в данном руководстве мы их описывать не будем.

Для смартфона/планшета с системой Android©

Для смартфона/планшета компании Apple© с системой iOS©

Для смартфона с системой Microsoft© Windows Phone© или планшета Microsoft© Surface©

Настройка операционной системы ROSA Desktop Fresh R9 (GNOME) для работы двухфакторной аутентификации

Установка приложения на компьютер и синхронизация часов

Прежде всего убедитесь, что время на компьютере и на смартфоне/планшете совпадает!

Для настройки времени на компьютере можно использовать программу drakclock. Запустите её (<Alt+F2> и команда drakclock) и проверьте время и часовой пояс. Хорошим решением будет использование любого сервера времени из списка программы drakclock. Также вы можете сами вписать любой сервер времени. Например, один из наших серверов времени — ntp.rosalinux.ru или ntp2.rosalinux.ru.

Рисунок 1. Синхронизация времени с помощью drakclock

Установка приложения на смартфон/планшет

Устанавливайте программу только после синхронизации времени на компьютере и на смартфоне/планшете!

  • Установите google-authenticator:
urpmi google-authenticator

Создание на компьютере QR-кода (ключа) для администратора (root)

  • На компьютере переключитесь в контекст администратора (root):
su - или sudo -i

Для администратора лучше в первую очередь настроить одноразовый пароль, чтобы избежать сложностей при дальнейшей настройке. Если что-то пойдёт не так, вам пригодится уже настроенный вход администратора (root).

  • Создайте ключ для администратора следующей командой (лучше всего это делать в терминале xterm):
google-authenticator
Рисунок 2. Получение QR-кода или цифрового ключа

Ввод QR-кода (цифрового ключа) в приложение на смартфоне/планшете

Запустите на смартфоне или планшете установленное приложение, и, следуя его подсказкам, просканируйте получившийся QR-код. Либо, если ваше приложение не поддерживает сканирование QR-кодов, вручную введите шестнадцатизначный ключ, сгенерированный прямо под QR-кодом и подписанный следующим образом:

Your new secret key is: ABCDEFGH12345678

Пример сканирования QR-кода:

Рисунок 3. Пример сканирования QR-кода приложением на смартфоне

Создание на компьютере и ввод в смартфон/планшет QR-кода для обычного пользователя

Создание QR-кода для рядового пользователя системы ничем не отличается от создания его для администратора.

  • Запустите терминал и переключитесь в контекст этого пользователя:
su - <имя_желаемого_пользователя>
  • Выполните:
google-authenticator

В ответ вы увидите ещё один QR-код для пользователя. Пример QR-кода показан на рисунке 2.

  • Далее, как уже было описано выше, просканируйте вашим смартфоном/планшетом ещё один QR-код или введите шестнадцатизначный ключ. Пример этой операции показан на рисунке 3.
  • Повторите операции по генерации QR-кодов столько раз, сколько нужно. Скорее всего, вам потребуется создать свой QR-код для каждого пользователя системы. Ведь, как только вы закончите настройку, войти в систему без одноразового пароля станет невозможно.

Не забывайте при создании QR-кодов каждый раз переключаться в контекст нового пользователя.

Настройка графического менеджера GDM

Если у вас установлена ОС ROSA Fresh R9 с графическим окружением GNOME, ниже вы можете прочитать, как настроить GNOME Dislay Manager (GDM) для работы с 2FA.

Для настройки GDM вам потребуются полномочия администратора (root).

  • Отредактируйте файл /etc/pam.d/gdm-password. Измените верхние строки, как указано в примере:
#%PAM-1.0
auth       required    pam_env.so
auth       required    pam_unix.so
auth       sufficient  pam_google_authenticator.so
auth       sufficient  pam_succeed_if.so user ingroup nopasswdlogin

Помните, что настройки модуля PAM применяются немедленно, и перезагрузку выполнять не нужно.

  • Введите первый пароль как обычно.
Рисунок 4. Ввод пароля в GDM
  • Запустите приложение на вашем смартфоне, выберите учётную запись и приготовьтесь ввести одноразовый пароль. Помните, что он действует 30 секунд. В приложении обычно имеется индикатор срока действия.
Рисунок 5. Работа генератора одноразового пароля на смартфоне
  • Введите цифры с экрана смартфона в менеджер входа GDM, как только будет запрошен одноразовый пароль.

Теперь у вас настроена двухфакторная аутентификация для входа в графическую оболочку.

Рисунок 6. Ввод одноразового пароля в GDM

Однако ещё не настроены:

  • Вход в текстовую консоль и переключение контекста пользователя
  • Механизм sudo
  • Удалённый вход по протоколу SSH

Как настроить всё это, описано далее.

Настройка 2FA для текстовой консоли и переключения контекста пользователя

Для этой настройки вам снова потребуются полномочия root.

  • Отредактируйте файл /etc/pam.d/system-auth и приведите первые 4 строчки к следующему виду:
auth        required      pam_env.so
auth        required      pam_unix.so try_first_pass nullok
auth        sufficient    pam_google_authenticator.so
auth        required      pam_deny.so

Немедленно после этого для входа в текстовую консоль потребуется вводить одноразовый пароль.

Рисунок 7. 2FA в текстовой консоли getty

То же самое заработает и для переключения контекста полномочий — например, при использовании команды su.

Рисунок 8. 2FA при переключении контекста полномочий пользователя

Настройка 2FA для использования sudo

Для настройки потребуются полномочия root.

  • Выполните:
visudo
  • Поменяйте строку
Defaults    env_reset

на

Defaults    env_reset, timestamp_timeout=0

Двухфакторная аутентификация для sudo работает уже после редактирования файла system-auth. В данном случае мы лишь сделали так, чтобы пароль при использовании sudo запрашивался каждый раз, повысив таким образом безопасность системы.

Настройка 2FA для удаленного входа по SSH

  • Переключитесь в контекст root.
  • В файле /etc/ssh/sshd_config найдите строку
UsePAM no

и измените no на yes.

  • Перезапустите службу sshd:
systemctl restart sshd

После перезапуска службы sshd у вас заработает двухфакторная аутентификация при использовании удалённого подключения по SSH к своему компьютеру.

Настройка 2FA в ОС ROSA Desktop Fresh с рабочим столом Plasma

Настройка двухфакторной аутентификации ROSA Fresh с окружениями рабочего стола Plasma практически полностью совпадает с описанной выше.

Для настройки потребуются полномочия root.

  • Установите программу LightDM:
urpmi lightdm
  • Отключите текущий менеджер входа и активируйте lightdm:
systemctl disable sddm (если вы используете Plasma)
systemctl enable lightdm
  • Отредактируйте файл /etc/pam.d/lightdm. Первые три строки должны принять вид:
auth       required    pam_env.so
auth       required    pam_unix.so
auth       sufficient  pam_google_authenticator.so

После этого можно будет выполнить перезагрузку и получить двухфакторную аутентификацию в графической консоли.

Процедуры настройки 2FA для входа в текстовый терминал, для переключения контекста полномочий и для работы с sudo и ssh идентичны версии для GNOME.

Известные ошибки и способы их исправления

В процессе использования были отмечены случаи, когда пользователь не может пройти аутентификацию.

Признаки:

  • Пользователь не может зайти, при попытке аутентификации возникает отказ
  • В домашнем каталоге пользователя появляется файл ~/.google-authenticator~

Способ исправления:

  • Зайдите в систему в контексте учётной записи администратора (root)
  • Удалите из каталога пользователя файл ~/.google-authenticator~

Существенная оговорка для специалистов по ИБ

Строго говоря, речь в данной статье идёт не о двухфакторной (two-factor authentication), а о т. н. двухэтапной (two-step authentication) аутентификации. Существуют различия между сертификатом, расположенным в хранилище токена (которое, в свою очередь, закрыто PIN-кодом), отпечатком пальца и одноразовым паролем.

В общем случае двухфакторная аутентификация должна:

а) быть строгой
б) основываться на действительно независимом факторе, которым, вообще говоря, не является одноразовый пароль
в) быть независимо проверенной (например, путём сертификационных испытаний) и подтверждённой (например, с помощью испытательной лаборатории)

Но, с другой стороны, мы опубликовали эту статью, чтобы наши пользователи могли быстро и без особых усилий повысить безопасность своих данных. Способ, описанный выше, для этого отлично подходит. Существует не так много бесплатных решений, позволяющих это осуществить.

Просим простить нам эту неточность, ибо простого пользователя необязательно погружать в тонкости терминологии, описывая различия между двухфакторной и двухэтапной аутентификацией.

С уважением, команда разработчиков ROSA Linux.