Как войти в свой рабочий стол Linux с помощью Google Authenticator

Для дополнительной безопасности вам может потребоваться маркер аутентификации на основе времени, а также пароль для входа на компьютер с Linux. Это решение использует Google Authenticator и другие приложения TOTP.

Этот процесс был выполнен в Ubuntu 14.04 со стандартным рабочим столом Unity и менеджером входа в систему LightDM, но принципы одинаковы в большинстве дистрибутивов и рабочих станций Linux.

Ранее мы показали, как запрашивать Google Authenticator для удаленного доступа через SSH, и этот процесс аналогичен. Для этого не требуется приложение Google Authenticator, но оно работает с любым совместимым приложением, которое реализует схему аутентификации TOTP, включая Authy.

Установите Google Authenticator PAM

Как и при настройке доступа по SSH, нам сначала нужно установить соответствующее программное обеспечение PAM («подключаемый модуль аутентификации»). PAM — это система, которая позволяет нам подключать различные типы методов аутентификации к системе Linux и требовать их.

В Ubuntu следующая команда установит PAM Google Authenticator. Откройте окно терминала, введите следующую команду, нажмите Enter и введите свой пароль. Система загрузит PAM из репозиториев вашего дистрибутива Linux и установит его:

sudo apt-get установить libpam-google-authenticator

Надеемся, что и в других дистрибутивах Linux этот пакет будет доступен для легкой установки — откройте репозитории программного обеспечения вашего дистрибутива Linux и выполните его поиск. В худшем случае вы можете найти исходный код модуля PAM на GitHub и скомпилировать его самостоятельно.

Как мы уже указывали ранее, это решение не зависит от «звонка домой» на серверы Google. Он реализует стандартный алгоритм TOTP и может использоваться, даже если у вашего компьютера нет доступа в Интернет.

Создайте ключи аутентификации

Теперь вам нужно создать секретный ключ аутентификации и ввести его в приложение Google Authenticator (или аналогичное) на вашем телефоне. Сначала войдите в систему под своей учетной записью в системе Linux. Откройте окно терминала и выполните команду google-authenticator . Введите y и следуйте инструкциям здесь. Это создаст специальный файл в каталоге текущей учетной записи пользователя с информацией Google Authenticator.

Вы также пройдете через процесс получения этого кода двухфакторной проверки в Google Authenticator или аналогичное приложение TOTP на своем смартфоне. Ваша система может генерировать QR-код, который вы можете сканировать, или вы можете ввести его вручную.

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

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

Активировать аутентификацию

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

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

Включить Google Authenticator для графического входа в систему в Ubuntu

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

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

Вот как это сделать для Ubuntu, который использует менеджер входа LightDM. Откройте файл LightDM для редактирования с помощью команды, подобной следующей:

sudo gedit /etc/pam.d/lightdm

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

Добавьте следующую строку в конец файла и сохраните его:

требуется авторизация pam_google_authenticator.so nullok

Бит «nullok» в конце говорит системе, что пользователь должен войти в систему, даже если он не выполнил команду google-authenticator для настройки двухфакторной аутентификации. Если они настроили его, им придется ввести код с временной задержкой — иначе они этого не сделают. Удалите «nullok» и учетные записи пользователей, которые не настроили код Google Authenticator, просто не смогут войти в систему графически.

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

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

Если вы используете шифрование домашнего каталога

В старых выпусках Ubuntu предлагался простой вариант «шифрования домашней папки», который шифровал весь домашний каталог до тех пор, пока вы не введете свой пароль. В частности, это использует ecryptfs. Однако, поскольку программное обеспечение PAM по умолчанию зависит от файла Google Authenticator, хранящегося в вашем домашнем каталоге, шифрование мешает PAM, читающему файл, если вы не убедитесь, что он доступен в незашифрованном виде для системы перед входом. Обратитесь к README за дополнительной информацией. информация о том, как избежать этой проблемы, если вы все еще используете устаревшие опции шифрования домашнего каталога.

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

Помогите, сломалось!

Поскольку мы только включили это для графических входов в систему, должно быть легко отключить, если это вызывает проблему. Нажмите комбинацию клавиш, например Ctrl + Alt + F2, чтобы получить доступ к виртуальному терминалу и войдите в систему, используя свое имя пользователя и пароль. Затем вы можете использовать команду типа sudo nano /etc/pam.d/lightdm, чтобы открыть файл для редактирования в текстовом редакторе терминала. Используйте наше руководство по Nano, чтобы удалить строку и сохранить файл, и вы сможете снова войти в систему в обычном режиме.

Вы также можете заставить Google Authenticator быть обязательным для входа других типов — возможно, даже для всех системных входов — добавив строку «auth required pam_google_authenticator.so» в другие файлы конфигурации PAM. Будьте осторожны, если вы делаете это. И помните, вы можете добавить «nullok», чтобы пользователи, которые еще не прошли процесс установки, могли войти в систему.

Дополнительную документацию по использованию и настройке этого модуля PAM можно найти в файле README программного обеспечения на GitHub.

Оцените статью
TutoryBird.Ru
Добавить комментарий