Як налаштувати двофакторну аутентифікацію для логіна та sudo



Безпека в моді, як це і повинно бути. Ми живемо в світі, де дані — неймовірно цінна валюта, яку ви завжди ризикуєте втратити. Тому ви повинні зробити все, щоб переконатися, що те, що ви тримаєте на серверах і десктопах — у безпеці. Для цього адміністратори і користувачі створюють неймовірно складні паролі, використовують менеджери паролів і т. д. Але що, якщо я вам скажу, що ви можете логінитися на ваші сервери та десктопи Linux за два кроки замість одного? Ви можете це робити завдяки Google Authenticator. Більш того, це неймовірно легко налаштувати.

Я збираюся провести вас через процес налаштування двофакторної аутентифікації для використання її на логін і sudo. Я продемонструю це на десктопної Ubuntu 16.04, але процес також працює і для сервера. Щоб впоратися з двофакторної стороною речей, я буду використовувати Google Authenticator.

Є одне дуже важливе застереження: одного разу налаштувавши це, ви не зможете зайти в аккаунт (або використовувати команду sudo) без шестизначного коду з аутентификатора. Для вас додається ще один крок, тому, якщо діставати смартфон кожен раз, коли вам необхідно залогуватися на вашу Linux-машину (або використовувати sudo), є для вас проблемою, можливо, цей спосіб не для вас. Але пам'ятайте, як би там не було, цей додатковий крок приносить вам додатковий шар захисту, якого б інакше не було.

Після сказаного, давайте займемося налаштуванням.

Установка необхідних компонентів
Є два шматочка цього пазлу, які повинні бути встановлені разом у вигляді Google Authenticator. Перший — це додаток для смартфона. Ось як можна встановити його з Google Play Store:

  1. Відкрийте Google Play Store на вашому Android-пристрої
  2. Знайдіть через пошук "google authenticator"
  3. Тапніте по найменуванню від компанії Google Inc.
  4. Тапніте «Встановити»
  5. Тапніте «Прийняти»
  6. Дочекайтеся завершення установки
Тепер давайте перемістимося до встановлення аутентификатора на вашій linux-машині. Ось так:

  1. Відкрити вікно терміналу
  2. Виконати команду
    sudo apt-get install libpam-google-кодів
  3. Введіть свій sudo-пароль і натисніть Enter
  4. Якщо буде запропоновано, введіть y і натисніть Enter
  5. Дочекайтеся завершення установки
Тепер прийшов час конфігурування процесу аутентифікації для роботи з google-кодів.

Конфігурація
Потрібно змінити лише один файл, щоб додати двофакторну аутентифікацію відразу для логіна і sudo. Це файл /etc/pam.d/common-auth. Відкрийте його і знайдіть рядок:

auth [success=1 default=ignore] pam_unix.so nullok_secure

Над цим рядком додайте наступне:

auth required pam_google_authenticator.so

Збережіть і закрийте файл.

Наступний крок — налаштувати google-кодів для кожного користувача в системі (інакше вони не зможуть залогуватися). Для прикладу, припустимо, що у вашій системі є два користувача: jack olivia. Спершу налаштуємо його для jack (припустимо, що це обліковий запис, з яким ми працювали весь цей час).

Відкрийте вікно терміналу і виконайте команду
google-кодів
. Вам поставлять ряд питань (на кожен з яких слід відповісти y). Питання такі:

  • ви Хочете, щоб я оновив ваш файл "/home/jack/.google_authenticator"? (y/n) y
  • ви Хочете заборонити масове використання одного і того ж токена? Це обмежує вас до однієї спроби входу приблизно раз в 30 секунд, але збільшує шанси помітити або навіть запобігти атаку людина-посередині. (y/n) y
  • За замовчуванням, токени гарні для 30 секунд, а щоб компенсувати можливі перекоси часу між клієнтом і сервером, ми надаємо додатковий маркер до і після поточного часу. Якщо ви відчуваєте проблеми з неякісною синхронізацією часу, ви можете збільшити вікно з його дефолтного значення 1:30 хв. до приблизно 4 хв. Хочете це зробити? (y/n) y
  • Якщо ваш комп'ютер, на який ви логинитесь, не захищений від брутфорс-спроб залогінитись, ви можете включити частотне обмеження для модуля аутентифікації. За замовчуванням, це обмежує атакуючих на не більш ніж 3 спроби залогуватися кожні 30 секунд. Хочете включити частотне обмеження? (y/n) y
Відповівши на ці питання, вам буде надано секретний ключ, код верифікації і п'ять аварійних скретч-кодів. Роздрукуйте скретч-коди і тримайте їх при собі. Ці коди можуть бути використані, якщо у вас немає при собі вашого смартфона (за кожний код може бути використаний тільки один раз). Секретний ключ — це те, що ви використовуєте для налаштування облікового запису в програмі Google Authenticator, а код верифікації — це одноразовий код, який ви можете використати негайно (якщо необхідно).

Налаштування
Тепер у вас є налаштований користувач jack. Перед тим, як ви зможете налаштувати користувача olivia, вам необхідно додати аккаунт для jack додаток Google Authenticator. Відкрийте програму і тапніте кнопку меню головного вікна (три вертикальні точки у верхньому правому куті). Тапніте «Налаштувати обліковий запис», а потім тапніте Введіть ключ». У наступному вікні (Зображення 1) ви введете 16-значний секретний ключ, наданий під час виконання програми google-кодів. Дайте ім'я акаунту (так ви запам'ятаєте на якому записі він буде використовуватися) і тапніте «ДОДАТИ».


Зображення 1: Додавання нового облікового запису в додаток Google Authenticator.

Тепер, після додавання облікового запису, вам будуть представлені шестизначні ключі, які будуть вимагатися кожен раз при логіні або спробі використовувати sudo.

Нарешті, ви повинні налаштувати інші облікові записи в системі. Як я і говорив, ми збираємося налаштувати обліковий запис під назвою olivia. Ось так:

  1. Відкрийте вікно терміналу
  2. виберіть
    sudo su olivia
  3. Відкрийте Google Authenticator на вашому смартфоні
  4. Введіть шестизначний код аутентифікації (наданий додатком) у вікні терміналу (Зображення 2) і натисніть Enter
  5. Введіть свій sudo-пароль і натисніть Enter
  6. Як новий користувач, виконайте команду
    google-кодів
    , дайте відповідь на питання і запишіть надані ключі та коди
Після того як ви успішно налаштували користувача olivia з допомогою команди google-кодів, додайте новий аккаунт в Google Authenticator з відповідною інформацією (так само, як ви робили для початкового користувача). Тепер у вас повинні бути акаунти для обох користувачів jack olivia в додатку Google Authenticator.


Зображення 2: Введення шестизначного коду для аутентифікації sudo.

От і все. Кожен раз при спробі залогуватися на свою машину (або використовувати sudo), вам потрібно буде надати шестизначний код аутентифікації, перед тим як ви зможете ввести свій пароль. Ваша Linux-машина тепер набагато більш захищена, ніж це було до двофакторної аутентифікації. Незважаючи на те, що деяким цей процес може здатися важким, я настійно рекомендую її налаштувати… особливо для машин з чуттєвими даними.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.