Ви можете використовувати модуль автентифікації з відкритим кодом Pluggable Authentication (PAM), створений Google, відомий як Google Authenticator . Цей модуль доступний як у стандартних сховищах, так і в GitHub, щоб ви могли будувати з джерела. У поєднанні з однойменним додатком для Android, iOS або Blackberry він створює часові, чутливі до часу коди для автентифікації разом із паролем. Оскільки це модуль PAM, його можна скинути майже в будь-якому місці . Давайте розпочнемо!
Встановлення
Для початку ви можете встановити PAM з наступним:
sudo apt-get install libpam-google-authenticator
Просто!
Налаштування:
Після його встановлення ви також хочете встановити відповідний мобільний додаток для Android, iOS або Blackberry (залежно від вашої мобільної платформи). Кожен з них марний без іншого. Після того, як у вас є додаток, необхідний для вашого мобільного пристрою, запустіть наступне в терміналі:
google-authenticator
Почнемо з того, що задамо вам кілька питань. Перший - єдиний, на який ви повинні відповісти "Так", і він запитує, чи хочете ви, щоб коди були засновані на часі. Після цього прочитайте кожне запитання і зробіть вибір, який має для вас найбільш сенс.
Після завершення початкової налаштування ви побачите дуже великий QR-код у своєму терміналі, а також деяку іншу інформацію. Рядок із написом "Ваш новий секретний ключ є:" - це дуже потрібний рядок, якщо ви не хочете використовувати QR-код для сполучення свого пристрою, тому не закривайте це вікно, поки ви не налаштуєте! "Коди подряпин", які це дає вам, також важливі, оскільки вони - те, що ви використовуєте для входу, якщо втратите мобільний пристрій. Запишіть їх і зберігайте десь у безпеці.
Тепер на мобільному пристрої відкрийте додаток Google Authenticator і виберіть "Налаштувати акаунт". Ви можете або сканувати створений QR-код, або вибрати "Використовувати наданий ключ". Якщо ви скануєте QR-код, все буде автоматично збережено під обліковим записом під назвою "your_user @ your_host". Однак якщо ви виберете "Використовувати наданий ключ", вам доведеться ввести ім'я, ключ та тип маркера вручну. Ім'я може бути будь-яким, що ви хочете. Ключ був би секретним ключем, створеним раніше. Тип буде за замовчуванням на основі часу. Після налаштування ви побачите обліковий запис на головній панелі програми Google Authenticator, а також таймер у формі кола поруч. Цей таймер вичерпується кожні 30 секунд, і створюється новий код.
Увімкнути це!
Тут приходить магія. Оскільки це модуль PAM, його можна використовувати в різних місцях. Я sudo
пройду додавання автентифікації до запитів, входу в SSH та входу в lightdm. Однак, прочитавши цей підручник, ви зможете ввімкнути його в іншому місці на основі тих же прийомів.
SSH
Я роблю це спочатку, тому що є додатковий крок. Перше, що вам потрібно зробити - це відредагувати ваш конфігураційний файл SSH:
gksudo gedit /etc/ssh/sshd_config
Шукайте рядок із написом:
ChallengeResponseAuthentication no
і змінити "ні" на "так".
Тепер вам потрібно відредагувати модуль PAM для ssh:
gksudo gedit /etc/pam.d/sshd
В самому кінці цього файлу додайте наступний рядок:
auth required pam_google_authenticator.so nullok
Аргумент "nullok" повідомляє системі не запитувати код підтвердження, якщо користувач не встановив двофакторну автентифікацію. Після цього редагуйте, продовжуйте і перезапускайте службу ssh:
sudo service ssh restart
sudo
Запити
Відредагуйте файл PAM для sudo
:
gksudo gedit /etc/pam.d/sudo
Додайте наступний рядок у самому кінці:
auth required pam_google_authenticator.so nullok
Тепер кожен sudo
запит запитує код підтвердження, а також пароль.
LightDM (GUI-вхід)
Відредагуйте файл PAM для LightDM:
gksudo gedit /etc/pam.d/lightdm
Додайте наступний рядок у самому кінці:
auth required pam_google_authenticator.so nullok
Це воно! Щоразу, коли ви входите через GUI, він запитає код підтвердження після вашого пароля.
Системний і TTY вхід
Навіть якщо ви ввімкнули вищезазначені методи, він все одно не запитає код підтвердження, якщо ви перейдете на TTY з CTRL+ ALT+ F#. Щоб виправити це, відредагуйте common-auth
файл PAM:
gksudo gedit /etc/pam.d/common-auth
і додайте наступний рядок до самого кінця:
auth required pam_google_authenticator.so nullok
Примітка: Оскільки цей загальнодоступний файл включений у всі інші файли типу auth, вам потрібно видалити потрібні рядки для аутентифікації з інших файлів. В іншому випадку він запитає код підтвердження двічі і не дозволить вам увійти після цього.
Підбивання
Як ви могли бачити, додати цю автентифікацію досить легко. Якщо ви використовуєте диспетчер дисплеїв, відмінний від LightDM, ви можете легко змінити лінійку lightdm вище, відповідно. Оскільки ваш мобільний пристрій і ваша система вже поділилися цим секретним ключем, вони завжди повинні бути синхронізовані. Для цієї налаштування немає взаємодії з серверами Google чи будь-яким іншим Інтернет-ресурсом. Навіть якщо обидва пристрої були повністю офлайн, коди підтвердження, які відображаються у вашій програмі, будуть правильними. Щоразу, коли вам потрібно буде увійти через один із увімкнених методів, просто переконайтеся, що ви відкрили свій мобільний додаток і захопили поточний код підтвердження.
Веселитися !!