Как установить локальный пароль на сервере Ubuntu 16.04 с аутентификацией Kerberos?

Вопрос или проблема

Я использую сервер Ubuntu 16.04 с аутентификацией Kerberos на сервере ActiveDirectory.

Моя учетная запись на Ubuntu не имеет локального пароля, я удалил его однажды, но у меня есть пароль Kerberos, поэтому я хочу добавить локальный пароль для своей учетной записи на случай, если сервер ActiveDirectory выйдет из строя.

Я попробовал следующее:

sudo passwd MYUSER

но это, похоже, меняет только пароль Kerberos…

Текущий пароль Kerberos:
Введите новый пароль Kerberos:
Повторите новый пароль Kerberos:

Кто-нибудь знает, как добавить новый пароль в этой ситуации?
У меня есть права sudo.
Заранее спасибо.

Большинство клиентов Active Directory решают эту проблему, просто кэшируя обычный пароль.

  • Если вы подключили компьютер с помощью winbindd, рассмотрите возможность установки pam_ccreds.
  • Если вы используете SSSD, включите опцию cache_credentials.

Хэши паролей в файле ‘shadow’ независимы от учетной записи пользователя, поэтому вы можете установить “локальный” пароль, сделав следующее:

  1. добавив фиктивную учетную запись пользователя (useradd foo),
  2. установив для нее пароль (passwd foo),
  3. отредактировав вручную /etc/passwd, чтобы указать ваше имя пользователя/UID/оболочку/домашний каталог вместо новой учетной записи (используйте vipw),
  4. отредактировав вручную /etc/shadow, чтобы указать ваше имя пользователя вместо новой учетной записи (vipw -s).

NSS настраивает PAM для обращения к LDAP и локальным учетным записям при настройке Kerberos.

*Редактирование минимального UID для KRB5 в настройках аутентификации PAM решит эту проблему:

sudo sed -i 's/minimum_uid=1000\b/minimum_uid=10000/g' /etc/pam.d/common-*

Ответ или решение

Настройка локального пароля на Ubuntu Server 16.04 при использовании аутентификации Kerberos в Active Directory — актуальная тема, особенно в контексте обеспечения безопасности и доступности системы при сбоях в работе основного сервера аутентификации. Рассмотрим теоретические аспекты этого вопроса, пример практической реализации, а также применение полученных знаний.

Теоретическая часть

Ubuntu Server 16.04 может быть настроен на использование Kerberos для аутентификации пользователей через Active Directory. Kerberos — это сетевой протокол аутентификации, который использует билеты для предоставления доступов к ресурсам. При этом пользователи аутентифицируются посредством центрального сервера, в данном случае, Active Directory. Однако в условиях, когда сервер AD недоступен, использование локального пароля становится жизненно необходимым.

Локальные и Kerberos-пароли хранятся и управляются по-разному. Kerberos полагается на билеты, тогда как локальные пароли записаны в файлах /etc/passwd и /etc/shadow, где хранятся данные для аутентификации пользователей системы.

Пример

Предположим, вам нужно настроить локальный пароль на сервере Ubuntu 16.04 с уже настроенной аутентификацией Kerberos.

Шаги по настройке локального пароля:

  1. Создание временной учетной записи:

    sudo useradd foo
  2. Назначение пароля временной учетной записи:

    sudo passwd foo
  3. Редактирование файла /etc/passwd:

    Используйте vipw для редактирования файла и замены информации новой учетной записи на вашу учетную запись. Убедитесь, что вы изменили соответствующие поля, включая UID и домашний каталог.

    sudo vipw 
  4. Редактирование файла /etc/shadow:

    Используйте vipw -s для замены информации о временной учетной записи на вашу учетную запись.

    sudo vipw -s 
  5. Настройка аутентификации PAM:

    Убедитесь, что NSS и PAM настроены правильно для работы с обоими видами аутентификации. Это может включать изменение параметров минимального UID в PAM-файлах:

    sudo sed -i 's/minimum_uid=1000\b/minimum_uid=10000/g' /etc/pam.d/common-*

Применение

Данная процедура позволяет вам избежать ситуации, когда, в случае недоступности сервера Active Directory, вы не сможете войти в систему. Имея этот процесс автоматизированным и задокументированным, вы можете регулярно обновлять и проверять ваши локальные аутентификационные данные.

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

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

Дополнительно, рассмотрите возможность использования механизмов кэширования паролей, таких как pam_ccreds или SSSD с включенной cache_credentials, что позволит хранить закэшированные данные аутентификации и использовать их при недоступности сервера AD.

Заключение

Установка локального пароля на Ubuntu 16.04 с Kerberos-аутентификацией через Active Directory крайне важна для обеспечения непрерывности работы системы. Соблюдение описанных шагов позволяет успешно создавать и использовать локальные пароли, тем самым улучшая устойчивость вашей IT-инфраструктуры к сбоям. При этом всегда следует учитывать все аспекты безопасности и надежности конфигурации аутентификации.

Оцените материал
Добавить комментарий

Капча загружается...