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

Что такое двухфакторная аутентификация?
Двухфакторная аутентификация (2FA) — это способ подтверждения личности с помощью двух разных факторов. Один фактор обычно — это пароль. Второй фактор — одноразовый код (TOTP), сгенерированный приложением на вашем телефоне или аппаратном токене. Кратко: пароль + временный код = значительно более надёжная защита.
Ключевая идея: даже если злоумышленник узнаёт ваш пароль, без доступа к устройству, генерирующему одноразовые коды, вход невозможен.
Important: 2FA защищает именно от компрометации пароля. Оно не заменяет надёжные пароли, шифрование диска или регулярные обновления системы.
Шаг 1: Установка Google Authenticator
Пакет libpam-google-authenticator реализует поддержку TOTP через PAM (Pluggable Authentication Modules). Установите его так:
sudo apt install libpam-google-authenticator
Установка займёт минуту. После этого нужно добавить модуль PAM в конфигурацию аутентификации, чтобы система запрашивала второй фактор при входе.
Откройте файл конфигурации PAM в редакторе Nano:
sudo nano /etc/pam.d/common-authДобавьте одну строку в начало/перед блоком auth, чтобы PAM начал использовать Google Authenticator:
auth required pam_google_authenticator.so nullok
Пояснение опций:
- required — модуль обязателен: если он вернёт ошибку, аутентификация провалится.
- nullok — если у пользователя нет файла google.authenticator в домашней папке, PAM продолжит без запроса кода. Это удобно для поэтапного развёртывания. Уберите nullok, если хотите требовать 2FA от всех сразу.
Сохраните изменения (Ctrl+X, Y, Enter) и закройте редактор.
Important: Перед применением в продакшене тестируйте подключение через отдельную SSH-сессию или переключатель пользователя, чтобы не заблокировать себя.
Шаг 2: Настройка приложения 2FA на телефоне или планшете
Каждый пользователь, который хочет включить 2FA, должен выполнить в своём аккаунте команду:
google-authenticatorКоманда создаст секретный ключ TOTP и выведет QR-код прямо в терминал. Если терминал не отображает весь QR-код, увеличьте размер окна.

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

Система выдаст пять аварийных кодов — запишите их и храните в надёжном месте. Эти коды позволяют войти, если вы потеряете устройство с аутентификатором. Они показываются один раз и позже восстановлению не подлежат.
Вопросы конфигурации и рекомендации при настройке:
- Обновить файл /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).

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

Если всё работает, поздравляем — 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, но аккуратно: порядок модулей имеет значение.
- Подумайте о резервном плане: как восстановить доступ пользователю, если он потерял телефон. Рекомендуется предусмотреть процедуру восстановления с верификацией на уровне организации.
Процедура восстановления и аварийный план
- Пользователь предъявляет документы/идентификацию администратору.
- Администратор временно отключает 2FA для учётной записи:
sudo mv /home/username/.google_authenticator /home/username/.google_authenticator.disabled
sudo chown username:username /home/username/.google_authenticator.disabled- Пользователь создаёт новую привязку, выполнив заново google-authenticator.
- После проверки администратор удаляет файл .disabled или восстанавливает настройки.
Замечание: эта процедура должна быть формализована в политике доступа и логироваться.
Критерии приёмки
- Пользователь авторизуется с помощью пароля и корректного одноразового кода.
- При вводе неверного кода доступ отклоняется и логируется попытка.
- Аварийные коды сработали для доступа при отсутствии устройства.
- Логи аутентификации показывают, что PAM вызывал pam_google_authenticator.
Минимальное руководство для системного администратора (SOP)
- Обновление системы: sudo apt update && sudo apt upgrade
- Установка: sudo apt install libpam-google-authenticator
- Внесение строки в /etc/pam.d/common-auth: auth required pam_google_authenticator.so nullok
- Инструкция пользователям: запустить google-authenticator и сохранить коды
- Тестирование: один тестовый аккаунт, вход локально и по SSH
- Отключение nullok после успешного развёртывания
- Документирование и резервирование аварийных процедур
Чек-листы по ролям
Администратор:
- Установить пакет и настроить 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 и сохраняет аварийные коды.
- Тестируйте и документируйте процесс восстановления.
Спасибо за внимание — это простой шаг, который значительно повышает безопасность вашей системы.
Похожие материалы
Как сделать скриншот на iPhone 14
Как смотреть Facebook Live — быстрое руководство
Откат версии игры в Steam — пошаговый гид
Стрим игр Xbox One на ПК с Windows 10
Резервное копирование острова в Animal Crossing