loader

Як увійти на ваш робочий стіл Linux за допомогою Google Authenticator

Anonim

Для додаткової безпеки, вам може знадобитися маркер аутентифікації на основі часу, а також пароль для входу на ваш ПК Linux. Це рішення використовує Google Authenticator та інші програми TOTP.

Цей процес був виконаний на Ubuntu 14.04 зі стандартним робочим столом Unity і менеджером входу LightDM, але принципи є однаковими для більшості дистрибутивів і настільних комп'ютерів Linux.

Раніше ми показали вам, як вимагати від Google Authenticator для віддаленого доступу через SSH, і цей процес подібний. Це не вимагає програми Google Authenticator, але працює з будь-якою сумісною програмою, яка реалізує схему аутентифікації TOTP, включаючи Authy.

Встановіть PAM для Генератора кодів Google

Як і при налаштуванні доступу до SSH, нам спочатку потрібно встановити відповідне програмне забезпечення PAM (модуль "підключення-аутентифікація"). PAM - це система, яка дозволяє підключати різні типи методів аутентифікації до системи Linux і вимагати їх.

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

sudo apt-get install libpam-google-authenticator

Інші дистрибутиви Linux повинні сподіватися, що цей пакет також буде доступний для легкого встановлення - відкрийте репозиторії програмного забезпечення вашого дистрибутива Linux і виконайте пошук. У найгіршому випадку, ви можете знайти вихідний код модуля PAM на GitHub і скомпілювати його самостійно.

Як ми вже вказували раніше, це рішення не залежить від «дому» до серверів Google. Він реалізує стандартний алгоритм TOTP і може використовуватися навіть тоді, коли комп'ютер не має доступу до Інтернету.

Створіть ключі автентифікації

Тепер потрібно створити секретний ключ автентифікації та ввести його в програму Google Authenticator (або подібну програму) на вашому телефоні. По-перше, увійдіть як обліковий запис користувача на вашій системі Linux. Відкрийте вікно терміналу і запустіть команду google-authenticator . Введіть y і дотримуйтесь інструкцій тут. Це створить спеціальний файл у каталозі поточного облікового запису користувача з інформацією про Google Authenticator.

Ви також пройдете процес отримання цього двофакторного коду підтвердження в Google Authenticator або подібну програму TOTP на вашому смартфоні. Система може генерувати QR-код, який можна сканувати, або ввести його вручну.

Обов'язково занотуйте свої коди аварійних подряпин, які можна використовувати для входу, якщо ви втратите телефон.

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

Активувати аутентифікацію

Ось де речі стають трохи гострими. Коли ми пояснили, як увімкнути двофакторне для SSH логінів, ми вимагали його лише для входу SSH. Це гарантувало, що ви все ще можете ввійти локально, якщо ви втратили програму автентифікації або якщо щось пішло не так.

Оскільки ми будемо використовувати двофакторну аутентифікацію для локальних входів, тут існують потенційні проблеми. Якщо щось піде не так, можливо, ви не зможете увійти в систему. Враховуючи це, ми перейдемо до використання цього параметра лише для графічних входів. Це дасть вам люк втечі, якщо вам це потрібно.

Увімкніть Генератор кодів Google для графічних входів у Ubuntu

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

Звичайно, це відкриває дірку у вашій системі аутентифікації, але зловмисник з фізичним доступом до вашої системи вже може скористатися нею. Ось чому двофакторна аутентифікація особливо ефективна для віддалених входів через SSH.

Ось як це зробити для Ubuntu, який використовує менеджер входу LightDM. Відкрийте файл LightDM для редагування за допомогою такої команди:

sudo gedit /etc/pam.d/lightdm

(Пам'ятайте, що ці конкретні кроки будуть працювати, лише якщо ваш дистрибутив Linux і робочий стіл використовують менеджер входу LightDM.)

Додайте наступний рядок до кінця файлу, а потім збережіть його:

auth потрібно pam_google_authenticator.so nullok

Біт "nullok" наприкінці повідомляє системі, що дозволяє користувачеві увійти в систему, навіть якщо вони не запустили команду google-authenticator для встановлення двофакторної аутентифікації. Якщо вони налаштували його, їм доведеться ввести код часу, який не буде. Видалення облікових записів "nullok" та облікових записів користувачів, які не налаштували код Google Authenticator, просто не зможуть увійти в систему графічно.

Наступного разу, коли користувач реєструється в графічному режимі, їх запитають про свій пароль, а потім запитують код поточної верифікації, який відображається на телефоні. Якщо вони не вводять код підтвердження, вони не зможуть увійти до системи.

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

Якщо ви використовуєте шифрування домашнього каталогу

Старі версії Ubuntu запропонували простий варіант шифрування домашніх папок, який шифрував всю домашню директорію, доки ви не введете свій пароль. Зокрема, це використовує ecryptfs. Однак, оскільки програмне забезпечення PAM залежить від файлу Google Authenticator, який зберігається у вашому домашньому каталозі за промовчанням, шифрування перешкоджає читанню файлу PAM, якщо ви не впевнені, що він доступний у незашифрованому вигляді до системи, перш ніж увійти в систему. інформацію про уникнення цієї проблеми, якщо ви все ще використовуєте застарілі опції шифрування домашнього каталогу.

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

Допоможіть!

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


Ви також можете змусити Google Authenticator бути необхідним для інших типів входів - потенційно навіть для всіх системних входів - шляхом додавання рядка "auth required pam_google_authenticator.so" до інших файлів конфігурації PAM. Будьте обережні, якщо ви зробите це. І пам'ятайте, ви можете додати "nullok", щоб користувачі, які не пройшли процес встановлення, все ще можуть увійти.

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