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

    Как войти в свой рабочий стол 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 («pluggable-authentication module»). 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-аутентификатор команда. Тип 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..