Как войти в свой рабочий стол 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..