Для додаткової безпеки ви можете зажадати a маркер автентифікації на основі часу а також пароль для входу у ваш ПК з Linux. Це рішення використовує Google Authenticator та інші програми TOTP.
Цей процес був виконаний на Ubuntu 14.04 за стандартом Робочий стіл Unity та менеджер входу LightDM, але принципи однакові для більшості дистрибутивів та робочих столів Linux.
Ми раніше вам показували як вимагати Google Authenticator для віддаленого доступу через SSH , і цей процес подібний. Для цього не потрібна програма Google Authenticator, але вона працює з будь-яким сумісним додатком, який реалізує схему автентифікації TOTP, у тому числі Авті .
Встановіть Google Authenticator PAM
ПОВ'ЯЗАНІ: Як захистити SSH за допомогою двофакторної автентифікації Google Authenticator
Як і при налаштуванні цього для доступу до SSH, спочатку нам потрібно буде встановити відповідне програмне забезпечення PAM (“модуль аутентифікації, що підключається”). PAM - це система, яка дозволяє нам підключати різні типи методів автентифікації до системи Linux і вимагати їх.
На Ubuntu наступна команда встановить Google Authenticator PAM. Відкрийте вікно терміналу, введіть таку команду, натисніть клавішу Enter і введіть свій пароль. Система завантажить PAM із сховищ програмного забезпечення вашого дистрибутива Linux та встановить його:
sudo apt-get install libpam-google-authentication
Сподіваємось, для інших дистрибутивів 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-authentication для налаштування двофакторної автентифікації. Якщо вони це налаштували, їм доведеться ввести код часу, який не використовується - інакше вони не будуть. Видаліть "nullok", і облікові записи користувачів, які не налаштували код Google Authenticator, просто не зможуть ввійти графічно.
Наступного разу, коли користувач увійде графічно, його запитають пароль, а потім запитують поточний код підтвердження, що відображається на телефоні. Якщо вони не вводять код підтвердження, їм не буде дозволено входити в систему.
Процес повинен бути досить подібним для інших дистрибутивів та робочих столів Linux, оскільки більшість розповсюджених менеджерів сесій Linux використовують PAM. Ймовірно, вам просто доведеться відредагувати інший файл чимось подібним, щоб активувати відповідний модуль PAM.
Якщо ви використовуєте шифрування домашнього каталогу
Старіші версії Ubuntu пропонували просто Опція “шифрування домашньої папки” який зашифрував весь ваш домашній каталог, доки ви не введете свій пароль. Зокрема, тут використовуються ecryptfs. Однак, оскільки програмне забезпечення PAM за замовчуванням залежить від файлу Google Authenticator, який зберігається у вашому домашньому каталозі, шифрування заважає читання файлу PAM, якщо ви не переконаєтеся, що воно доступне системі в незашифрованому вигляді перед входом. ЧИТАННЯ для отримання додаткової інформації щодо уникнення цієї проблеми, якщо ви все ще використовуєте застарілі параметри шифрування домашнього каталогу.
Сучасні версії Ubuntu пропонують повнодискове шифрування натомість це буде добре працювати з вищезазначеними варіантами. Не потрібно робити нічого особливого
Допоможіть, зламалося!
Оскільки ми щойно увімкнули це для графічних входів, його легко вимкнути, якщо це спричиняє проблему. Натисніть комбінацію клавіш, як Ctrl + Alt + F2, щоб отримати доступ до віртуального терміналу і увійдіть там, використовуючи своє ім’я користувача та пароль. Потім ви можете скористатися такою командою, як sudo nano /etc/pam.d/lightdm, щоб відкрити файл для редагування в текстовому редакторі терміналу. Використовуйте наш путівник по Нано щоб видалити рядок і зберегти файл, і ви знову зможете нормально ввійти.
Ви також можете змусити Google Authenticator вимагатись для інших типів входів - потенційно навіть для всіх системних входів, додавши рядок “auth required pam_google_authenticator.so” до інших файлів конфігурації PAM. Будьте обережні, якщо будете робити це. І пам’ятайте, ви можете додати “nullok”, щоб користувачі, які не пройшли процес налаштування, все ще могли ввійти в систему.
Подальшу документацію щодо використання та налаштування цього модуля PAM можна знайти в файл README програмного забезпечення на GitHub .