Як захистити SSH за допомогою двохфакторної автентифікації Google Authenticator
Хочете захистити ваш сервер SSH за допомогою простої у використанні двофакторної аутентифікації? Компанія Google надає необхідне програмне забезпечення для інтеграції системи одноразового пароля (TOTP), заснованої на Google Authenticator, з сервером SSH. Під час підключення вам потрібно буде ввести код з телефону.
Генератор кодів Google не "телефонує додому" до Google - вся робота відбувається на сервері SSH і на телефоні. Насправді, Генератор кодів Google повністю відкритий, тому ви можете навіть перевірити його вихідний код самостійно.
Встановіть Google Authenticator
Щоб реалізувати багатофакторну аутентифікацію за допомогою Google Authenticator, нам знадобиться модуль PAM з відкритим вихідним кодом Google Authenticator. PAM означає "модуль аутентифікації, що підключається" - це спосіб легко підключити різні форми аутентифікації до системи Linux.
Репозиторії програмного забезпечення Ubuntu містять простий у встановленні пакет для модуля PAM Google Authenticator PAM. Якщо у вашому дистрибутиві Linux немає пакета для цього, вам доведеться завантажити його зі сторінки завантаження Google Authenticator у Google Code і скомпілювати його самостійно.
Щоб встановити пакет на Ubuntu, виконайте таку команду:
sudo apt-get install libpam-google-authenticator
(Це лише встановить модуль PAM в нашій системі - нам доведеться активувати його для входу SSH вручну.)
Створіть ключ автентифікації
Увійдіть у систему як користувач, з яким ви будете входити з віддаленим засобом і запускайте google-authenticator створити секретний ключ для цього користувача.
Дозволити команді оновлювати файл Google Authenticator, ввівши y. Після цього з'явиться запит з кількома запитаннями, які дозволять вам обмежити використання того самого тимчасового маркера безпеки, збільшити часове вікно, для якого можна використовувати маркери, а також обмежити доступ до спроб перешкод. Ці вибори все торгують певною безпекою для певної простоти у використанні.
Генератор кодів Google надасть вам секретний ключ і кілька "кодів аварійних скретчей". Запишіть коди аварійних скреттів десь безпечно - їх можна використовувати лише один раз, і вони призначені для використання, якщо ви втратите свій телефон.
Введіть секретний ключ у програмі Google Authenticator на своєму телефоні (офіційні програми доступні для Android, iOS та Blackberry). Ви також можете скористатися функцією сканування штрих-коду - перейдіть до URL-адреси, розташованої у верхній частині виводу команди, і можете сканувати QR-код камерою телефону.
Тепер на телефоні буде постійно змінюватися код підтвердження.
Якщо ви хочете віддалено ввійти в систему як декілька користувачів, запустіть цю команду для кожного користувача. Кожен користувач матиме свій секретний ключ і свої власні коди.
Активуйте Google Authenticator
Далі вам знадобиться перевірка автентичності Google для входу до системи SSH. Для цього відкрийте вікно /etc/pam.d/sshd файлу у вашій системі (наприклад, з sudo nano /etc/pam.d/sshd і додайте до файлу наступний рядок:
auth потрібно pam_google_authenticator.so
Далі відкрийте вікно / etc / ssh / sshd_config Знайдіть файл ChallengeResponseAuthentication рядок і змініть його таким чином:
ChallengeResponseAuthentication так
(Якщо ChallengeResponseAuthentication рядок не існує, додайте вищезгаданий рядок до файлу.)
Нарешті, перезавантажте сервер SSH, щоб зміни вступили в силу:
sudo служба ssh перезавантаження
Під час спроби входу через SSH вам буде запропоновано ввести пароль і код Генератора Google.