Гид по технологиям

Как включить двухфакторную аутентификацию (2FA) для аккаунтов Ubuntu

7 min read Безопасность Обновлено 20 Dec 2025
2FA для Ubuntu: настройка Google Authenticator
2FA для Ubuntu: настройка Google Authenticator

Быстрые ссылки

  • Что такое двухфакторная аутентификация?
  • Шаг 1: Установка Google Authenticator
  • Шаг 2: Настройка приложения 2FA на телефоне или планшете
  • Шаг 3: Проверка работы 2FA для аккаунта
  • Рекомендации по безопасности, восстановлению и отладке

Рука держит телефон с логотипом Google Authenticator рядом с ноутбуком на Ubuntu.

Что такое двухфакторная аутентификация?

Двухфакторная аутентификация (2FA) — это способ подтверждения личности с помощью двух разных факторов. Один фактор обычно — это пароль. Второй фактор — одноразовый код (TOTP), сгенерированный приложением на вашем телефоне или аппаратном токене. Кратко: пароль + временный код = значительно более надёжная защита.

Ключевая идея: даже если злоумышленник узнаёт ваш пароль, без доступа к устройству, генерирующему одноразовые коды, вход невозможен.

Important: 2FA защищает именно от компрометации пароля. Оно не заменяет надёжные пароли, шифрование диска или регулярные обновления системы.

Шаг 1: Установка Google Authenticator

Пакет libpam-google-authenticator реализует поддержку TOTP через PAM (Pluggable Authentication Modules). Установите его так:

sudo apt install libpam-google-authenticator

Терминал Ubuntu во время установки пакета Google Authenticator.

Установка займёт минуту. После этого нужно добавить модуль PAM в конфигурацию аутентификации, чтобы система запрашивала второй фактор при входе.

Откройте файл конфигурации PAM в редакторе Nano:

sudo nano /etc/pam.d/common-auth

Добавьте одну строку в начало/перед блоком auth, чтобы PAM начал использовать Google Authenticator:

auth required pam_google_authenticator.so nullok

Терминал: добавление строки pam_google_authenticator.so в конфиг PAM.

Пояснение опций:

  • required — модуль обязателен: если он вернёт ошибку, аутентификация провалится.
  • nullok — если у пользователя нет файла google.authenticator в домашней папке, PAM продолжит без запроса кода. Это удобно для поэтапного развёртывания. Уберите nullok, если хотите требовать 2FA от всех сразу.

Сохраните изменения (Ctrl+X, Y, Enter) и закройте редактор.

Important: Перед применением в продакшене тестируйте подключение через отдельную SSH-сессию или переключатель пользователя, чтобы не заблокировать себя.

Шаг 2: Настройка приложения 2FA на телефоне или планшете

Каждый пользователь, который хочет включить 2FA, должен выполнить в своём аккаунте команду:

google-authenticator

Команда создаст секретный ключ TOTP и выведет QR-код прямо в терминал. Если терминал не отображает весь QR-код, увеличьте размер окна.

Терминал Ubuntu показывает QR-код Google Authenticator для настройки 2FA.

Откройте ваше приложение-аутентификатор на телефоне (Google Authenticator, Bitwarden Authenticator, Authy и т. п.). Выберите «Добавить аккаунт» и отсканируйте QR-код из терминала или введите вручную ключ, показанный ниже QR-кода.

После сканирования приложение начнёт генерировать шестизначные коды с временным окном (обычно 30 секунд). Введите текущий код в терминале, когда система попросит проверить конфигурацию.

Терминал Ubuntu показывает аварийные одноразовые коды (scratch codes) для восстановления доступа.

Система выдаст пять аварийных кодов — запишите их и храните в надёжном месте. Эти коды позволяют войти, если вы потеряете устройство с аутентификатором. Они показываются один раз и позже восстановлению не подлежат.

Вопросы конфигурации и рекомендации при настройке:

  • Обновить файл /home//google.authenticator — ответьте «yes», чтобы создать файл в домашней папке.
  • Disallow multiple uses of the same authentication token — ответьте «yes», чтобы предотвратить повторное использование одноразового кода.
  • Adjust time skew window — ответьте «no», если ваше устройство синхронизировано по времени. Если коды не совпадают, можно увеличить окно (например, 1 или 2 шага) для компенсации расхождений времени.
  • Enable rate-limiting — ответьте «yes», чтобы ограничить попытки и снизить риск перебора (brute-force).

Если вы видите ошибки при валидации кода: проверьте время на телефоне (включите автоматическую синхронизацию), повторно отсканируйте QR-код и попробуйте снова.

Шаг 3: Проверка работы 2FA для аккаунта

После настройки перезайдите в систему или выйдите и войдите снова. При входе вы увидите запрос на ввод одноразового кода до ввода пароля (поведение зависит от дисплей-менеджера и PAM).

Экран входа Ubuntu с запросом кода аутентификатора перед паролем.

Проверьте также sudo в терминале. В большинстве конфигураций pam_google_authenticator вызывается до проверки пароля, поэтому при sudo вас попросят сначала ввести код, затем пароль.

Терминал Ubuntu: при sudo сначала запрашивается код 2FA, затем пароль.

Если всё работает, поздравляем — 2FA настроено и защищает ваш аккаунт.

Когда 2FA не срабатывает: типичные причины и отладка

  • Время на устройстве не синхронизировано. Решение: включите автоматическую дату и время.
  • Неправильно отсканирован QR-код или введён неверный секрет. Решение: повторно запустите google-authenticator и пересоздайте привязку.
  • PAM не загружает модуль из-за неправильного положения строки в /etc/pam.d/common-auth. Решение: проверьте синтаксис файла и порядок модулей.
  • Дисплей-менеджер или служба, отвечающая за вход (например, GDM, LightDM), может иметь собственную конфигурацию PAM. Решение: убедитесь, что /etc/pam.d/common-auth включается в конфигурацию нужного менеджера.

Important: перед удалением или изменением pam_google_authenticator создайте резервную консольную сессию (например, SSH), чтобы не потерять доступ.

Резервные варианты и альтернативные подходы

  • Аппаратные ключи (U2F/WebAuthn) — более надежные, автоматически защищают от фишинга. Подходит для критичных систем и пользователей с поддерживающей аппаратурой.
  • Использование централизованного сервера 2FA/SSO (например, FreeIPA, Keycloak, Okta) — удобно в корпоративной среде, когда нужно управлять доступом централизованно.
  • OTP через SMS — проще, но менее безопасно из-за уязвимостей мобильных сетей и SIM-swap атак.

Выбор зависит от требований безопасности и удобства пользователей.

Рекомендации по безопасности и жёсткая настройка

  • Храните аварийные коды офлайн (записные книжки, сейф). Никогда не храните их в незашифрованных заметках онлайн.
  • Рассмотрите отключение nullok в /etc/pam.d/common-auth, когда все пользователи готовы.
  • Для серверов SSH можно требовать 2FA только для удалённых входов, а не для локальной консоли. Для этого отредактируйте /etc/pam.d/sshd вместо common-auth, но аккуратно: порядок модулей имеет значение.
  • Подумайте о резервном плане: как восстановить доступ пользователю, если он потерял телефон. Рекомендуется предусмотреть процедуру восстановления с верификацией на уровне организации.

Процедура восстановления и аварийный план

  1. Пользователь предъявляет документы/идентификацию администратору.
  2. Администратор временно отключает 2FA для учётной записи:
sudo mv /home/username/.google_authenticator /home/username/.google_authenticator.disabled
sudo chown username:username /home/username/.google_authenticator.disabled
  1. Пользователь создаёт новую привязку, выполнив заново google-authenticator.
  2. После проверки администратор удаляет файл .disabled или восстанавливает настройки.

Замечание: эта процедура должна быть формализована в политике доступа и логироваться.

Критерии приёмки

  • Пользователь авторизуется с помощью пароля и корректного одноразового кода.
  • При вводе неверного кода доступ отклоняется и логируется попытка.
  • Аварийные коды сработали для доступа при отсутствии устройства.
  • Логи аутентификации показывают, что PAM вызывал pam_google_authenticator.

Минимальное руководство для системного администратора (SOP)

  1. Обновление системы: sudo apt update && sudo apt upgrade
  2. Установка: sudo apt install libpam-google-authenticator
  3. Внесение строки в /etc/pam.d/common-auth: auth required pam_google_authenticator.so nullok
  4. Инструкция пользователям: запустить google-authenticator и сохранить коды
  5. Тестирование: один тестовый аккаунт, вход локально и по SSH
  6. Отключение nullok после успешного развёртывания
  7. Документирование и резервирование аварийных процедур

Чек-листы по ролям

Администратор:

  • Установить пакет и настроить PAM
  • Провести инструктаж пользователей
  • Организовать процесс восстановления доступа

Пользователь:

  • Установить приложение-аутентификатор на телефон
  • Выполнить google-authenticator и сохранить коды
  • Проверить вход и sudo

Тесты и критерии приёмки

  • Тест 1: Новый пользователь выполняет google-authenticator и входит с кодом — успешный вход.
  • Тест 2: Без кода вход отклоняется (если nullok отключён).
  • Тест 3: При вводе аварийного кода вход возможен.
  • Тест 4: В логах видно вызов pam_google_authenticator.

Совместимость и примечания по миграции

  • Работает с графическими менеджерами входа (GDM, LightDM) при условии, что PAM использует common-auth.
  • Для SSH убедитесь, что /etc/pam.d/sshd включает common-auth (обычно это так). Проверьте /etc/ssh/sshd_config: UsePAM yes.
  • При корпоративной аутентификации (LDAP/SSSD) проверьте совместимость и порядок модулей PAM.

Соображения о конфиденциальности

Google Authenticator и аналоги не отправляют секреты в облако при локальном использовании напрямую. Однако если вы используете облачные бэкапы приложения (например, Authy с облачным аккаунтом), учтите это в политике безопасности и соответствующих требованиях GDPR при работе с персональными данными.

Краткое резюме

Вы установили и настроили двухфакторную аутентификацию для аккаунтов Ubuntu с использованием libpam-google-authenticator. Это улучшит безопасность, требуя пароль и одноразовый код при входе и при использовании sudo. Обязательно сохраните аварийные коды и подготовьте процедуру восстановления доступа.

Important: тестируйте изменения в отдельной сессии до повсеместного ввода в эксплуатацию.


Короткое объявление для рассылки (100–200 слов):

Мы усилили безопасность входа в систему на Ubuntu с помощью двухфакторной аутентификации (2FA). Теперь каждый пользователь может подключить мобильный аутентификатор (Google Authenticator, Authy, Bitwarden Authenticator) и получить одноразовые коды, которые потребуются при следующем входе и при использовании sudo. Инструкция включает установку libpam-google-authenticator, настройку PAM, генерацию QR-кода и сохранение аварийных кодов. Рекомендуем включить 2FA всем пользователям и обеспечить процедуру восстановления доступа для тех, кто потеряет устройство. Если нужна помощь, обратитесь к администратору.

Резюме:

  • Установите пакет libpam-google-authenticator.
  • Добавьте auth required pam_google_authenticator.so [nullok] в /etc/pam.d/common-auth.
  • Каждый пользователь запускает google-authenticator и сохраняет аварийные коды.
  • Тестируйте и документируйте процесс восстановления.

Спасибо за внимание — это простой шаг, который значительно повышает безопасность вашей системы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как сделать скриншот на iPhone 14
Инструкции

Как сделать скриншот на iPhone 14

Как смотреть Facebook Live — быстрое руководство
Социальные сети

Как смотреть Facebook Live — быстрое руководство

Откат версии игры в Steam — пошаговый гид
Игры

Откат версии игры в Steam — пошаговый гид

Стрим игр Xbox One на ПК с Windows 10
Xbox

Стрим игр Xbox One на ПК с Windows 10

Резервное копирование острова в Animal Crossing
Gaming

Резервное копирование острова в Animal Crossing

Установить Windows 11 на Mac с Parallels
Технологии

Установить Windows 11 на Mac с Parallels