Этот процесс был выполнен на Ubuntu 14.04 со стандартным менеджером входа Unity для настольных компьютеров и LightDM, но принципы одинаковы для большинства дистрибутивов Linux и настольных компьютеров.
Ранее мы показали вам, как требовать от Google Authenticator для удаленного доступа через SSH, и этот процесс аналогичен. Это не требует приложения Google Authenticator, но работает с любым совместимым приложением, которое реализует схему аутентификации TOTP, включая Authy.
Установите PAM Google Authenticator PAM
Как и при настройке для доступа к SSH, сначала нужно установить соответствующий программный модуль PAM («подключаемый модуль аутентификации»). PAM - это система, которая позволяет нам подключать различные типы методов аутентификации в систему Linux и требовать их.
На Ubuntu следующая команда установит PAM Google Authenticator. Откройте окно терминала, введите следующую команду, нажмите Enter и укажите свой пароль. Система загрузит PAM из ваших репозиториев программного обеспечения дистрибутива Linux и установит его:
sudo apt-get install libpam-google-authenticator
Как мы указывали ранее, это решение не зависит от «звонка домой» на серверы Google. Он реализует стандартный алгоритм TOTP и может использоваться, даже если на вашем компьютере нет доступа в Интернет.
Создание ключей аутентификации
Теперь вам нужно создать секретный ключ аутентификации и ввести его в приложение Google Authenticator (или аналогичное) на вашем телефоне. Сначала войдите в систему как свою учетную запись в своей системе Linux. Откройте окно терминала и запустите Google-аутентификатор команда. Тип Y и следуйте подсказкам здесь. Это создаст специальный файл в каталоге текущей учетной записи пользователя с информацией Google Authenticator.
Обязательно запишите свои коды аварийной царапины, которые вы можете использовать для входа в систему, если вы потеряете свой телефон.
Активировать аутентификацию
Вот где вещи становятся немного плавными. Когда мы объяснили, как включить двухфакторный вход для SSH, мы требовали его только для входа в SSH. Это гарантировало, что вы все равно можете войти в систему локально, если потеряли приложение для проверки подлинности или что-то пошло не так.
Поскольку мы будем включать двухфакторную аутентификацию для локальных логинов, здесь есть потенциальные проблемы. Если что-то пойдет не так, возможно, вы не сможете войти в систему. Принимая это во внимание, мы проверим вас, разрешив это только для графического входа. Это дает вам люк-побег, если вам это нужно.
Включить Google Authenticator для графических подключений на Ubuntu
Вы всегда можете включить двухэтапную аутентификацию только для графических логинов, пропустив это требование при входе в текстовое приглашение. Это означает, что вы можете легко переключиться на виртуальный терминал, войти в систему и вернуть свои изменения, чтобы Gogole Authenciator не требовался, если у вас возникла проблема.
Конечно, это открывает дыру в вашей системе аутентификации, но злоумышленник с физическим доступом к вашей системе уже может использовать его в любом случае. Вот почему двухфакторная аутентификация особенно эффективна для удаленного входа в систему через SSH.
Вот как это сделать для Ubuntu, который использует диспетчер входа LightDM. Откройте файл LightDM для редактирования с помощью следующей команды:
sudo gedit /etc/pam.d/lightdm
(Помните, что эти конкретные шаги будут работать только в том случае, если ваш дистрибутив Linux и рабочий стол используют диспетчер входа LightDM.)
auth required pam_google_authenticator.so nullok
Бит «nullok» в конце сообщает системе разрешить пользователю войти в систему, даже если они не выполнили команду аутентификации Google для настройки двухфакторной аутентификации. Если они настроили его, им нужно будет ввести код времени-baesd, иначе они не будут. Удалите «nullok» и учетные записи пользователей, которые не настроили код Google Authenticator, просто не смогут войти в систему графически.
Если вы используете шифрование Home Directory
Более старые версии Ubuntu предлагают простое шифрование «домашней папки», которое зашифровывает весь ваш домашний каталог, пока вы не введете свой пароль. В частности, это использует ecryptfs. Однако, поскольку программное обеспечение PAM зависит от файла Google Authenticator, хранящегося в вашем домашнем каталоге по умолчанию, шифрование мешает чтению файла PAM, если вы не обеспечите его доступность в незашифрованном виде системе перед входом в систему. Проконсультируйтесь с README для получения более подробной информации. информацию об избежании этой проблемы, если вы все еще используете устаревшие параметры шифрования домашнего каталога.
Современные версии Ubuntu предлагают шифрование с полным диском, что отлично работает с вышеуказанными параметрами. Вам не нужно ничего делать
Помогите, он сломался!
Поскольку мы просто включили это для графических логинов, его следует легко отключить, если это вызывает проблему. Нажмите комбинацию клавиш, например Ctrl + Alt + F2, чтобы получить доступ к виртуальному терминалу и войти туда с вашим именем пользователя и паролем. Затем вы можете использовать команду, например sudo nano /etc/pam.d/lightdm, чтобы открыть файл для редактирования в текстовом редакторе терминала. Используйте наше руководство для Nano, чтобы удалить строку и сохранить файл, и вы сможете снова войти в систему снова.
Дальнейшую документацию по использованию и настройке этого модуля PAM можно найти в файле README программного обеспечения на GitHub.