Двухфакторная аутентифікація при роботі через SSH
Доступ до консолі серверів по SSH зазвичай виконується за паролем. Інші способи аутентифікації використовуються не часто, тим більше в невеликих компаніях. При цьому в якості пароля зазвичай використовують якісь запам'ятовуються фрази, що звичайно небезпечно. І ми не збираємося читати лекцію про "правильних" паролі і про те як це важливо. Сьогодні ми поговоримо про двухфакторной, або правильніше говорити, двоетапної аутентифікації за допомогою Google Authenticator і покажемо як налаштувати доступ до сервера по SSH використовуючи pam-модуль "google-authenticator".
Суть механізму полягає в наступному. У момент авторизації на додаток до наявного паролю система запитує числовий код, який створюється наявним смартфоном і змінюється кожні 30 секунд. Сам сервер точно таким же чином генерує свій код. Таким чином досить відкрити програму Google Authenticator на пристрої, подивитися код і ввести його в консоль сервера. Якщо введений код збігається з тим, що згенерував сервер, то ми потрапляємо в систему.
Отже приступимо. В якості системи у нас буде використовуватися свіжа Ubuntu Xenial 16.04. Для початку перевіримо поновлення:
apt-get update
apt-get upgrade
А поки виконується оновлення йдемо в App Store або Google Play , Дивлячись який пристрій використовується, і встановлюємо додаток Google Authenticator.
Оновлення завершено і на наступному етапі встановимо модуль pam:
apt-get install libpam-google-authenticator
І бачимо веселу картинку у вигляді 3D штрих-коду:
Відкриваємо встановлене раніше на смартфоні додаток і за допомогою нього скануємо цей штрих-код.