Содержание

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

Назначение

Инструкция предназначена для описания процесса настройки двухфакторной аутентификации (2FA) в ОС ROSA Desktop Fresh R9 (PLASMA/KDE).

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

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

Пароль требуется для того, чтобы:

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

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

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

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

Для ее применения, в целом, не нужно производить никаких особенно сложных настроек и не требуется применять никаких редких программ или использовать дорогостоящее оборудование. И 2FA можно будет использовать после правильной настройки без всякого подключения к сети Internet.

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

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

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

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

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

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

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

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

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

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

Рекомендуется использовать FreeOTP.

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

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

  Сперва обязательно проверьте точное время и убедитесь, что оно верное!

Иначе ничего не выйдет. Если время на компьютере отличается от времени на смартфоне - сначала синхронизируйте время между устройствами.

Для настройки времени можно использовать программу drakclock. Запустите её (ALT+F2 и напишите drakclock) и проверьте время и часовой пояс.

Хорошим решением будет использование любого сервера времени из списка программы drakclock. Либо вы можете сами вписать любой сервер времени, по Вашему желанию.

Например, можно использовать наши собственные серверы времени - ntp.rosalinux.ru и ntp2.rosalinux.ru.

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

Затем установите google-authenticator:

su - или sudo -i
urpmi.update -a
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 кода для рядового пользователя системы ничем не отличается от создания его для администратора. Сперва запустите xterm. Затем переключитесь в контекст этого пользователя командой:

  su - <имя_желаемого_пользователя>, 

и выполните команду:

  google-authenticator

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

Далее, как уже было описано выше, введите (просканируете) в Ваш смартфон (планшет) еще один QR-код. Или введите шестнадцатизначный ключ. Пример этой операции уже показан на рисунке 3.

Повторите операции по генерации QR-кодов столько раз, сколько потребуется.

Скорее всего, Вам потребуется создать свой QR код для каждого пользователя Вашей системы. Ведь как только Вы закончите настройку - войти в систему без одноразового пароля станет невозможно.

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

Настройка 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

Должно получится:

  UsePAM yes

Затем перезапустите службу sshd:

  systemctl restart sshd

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

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

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

Отличия минимальны. Как обычно, не забудьте сверить время. Для настройки потребуются полномочия администратора root.

  urpmi lightdm
  systemctl disable sddm - если Вы используете PLASMA
  systemctl disable kdm - если Вы используете KDE
  systemctl enable lightdm

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

Последовательность действий

На всякий случай уточним общий порядок команд, описанный в статье:

su -
urpmi.update -a
urpmi google-authenticator lightdm
google-authenticator

Выполнить для каждого пользователя, для которого необходим вход:

su - <имя_пользователя>
google-authenticator

2FA для текстовой консоли:

Редактируем файл /etc/pam.d/system-auth как указано выше.

2FA для sudo:

visudo

(редактируем как указано выше)

2FA для SSH: Редактируем файл /etc/ssh/sshd_config как указано выше Перезапускаем демон:

systemctl restart sshd

2FA для рабочего стола:

systemctl disable kdm для KDE или  systemctl disable sddm для PLASMA
systemctl enable lightdm

Важное замечание для пользователей PLASMA

При использовании рабочей среды PLASMA в случае блокировки экрана всплывает окно, в котором невозможно ввести оба пароля. Обойти эту проблему можно пока только убрав блокировку экрана, происходящую после определённого времени и используя для блокировки экрана самостоятельно настроенное сочетание клавиш для команды dm-tool lock.

Известные на данный момент ошибки и рецепт их лечения

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

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

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