Ограничение кэша учетных данных Kerberos сеансом

В настоящее время мы используем очень плохую модель доступа к нашим серверам. Каждый человек входит через ssh одному и тому же пользователю unix. У нас есть несколько ключей, которые используются всеми, и обычно используется одна и та же таблица ключей. Однако иногда кому-то нужно использовать одну из других клавиш. Но kinit перезаписывает кэш билета новому участнику. Поэтому я хотел бы знать, возможно ли создать kinit, который действителен только в текущем сеансе и не влияет на другие сеансы того же пользователя Unix?

Спасибо за вашу помощь!

2 ответа

Да, это плохая модель и должна быть изменена. Вы не только заставляете всех использовать одного и того же пользователя, но и похоже, что вы используете ярлыки клавиш, такие как незащищенные личные ключи ssh. Для последнего вопроса, пожалуйста, посмотрите на man .k5login для gssapi ssh.

До этого вы можете добавить что-то подобное в профиль bash:
export KRB5CCNAME=FILE:/tmp/krb5cc_$(id -u)_$(base64 /dev/urandom | head -c 10)

Это должно дать каждому сеансу свой собственный кеш учетных данных krb5.

Каждый человек входит через ssh одному и тому же пользователю unix.

Вы, вероятно, должны решить это. (общие учетные записи делают людей неподотчетными.)


Учетные данные Kerberos по умолчанию кэшируются в /tmp, но я не знаю, является ли этот путь жестко запрограммированным или полученным из $TMPDIR среда.

Таким образом, все, что создает частный TMPDIR для каждого сеанса (и очищает его после завершения сеанса), должно работать на вас.

Я думаю, что вы могли бы справиться с этим, хотя PAM:

  • libpam-tmpdir - это один подход, который устанавливает сеанс $TMP & $TMPDIR но это не будет работать в приложениях, которые не уважают окружающую среду и напрямую переходят к /tmp/,

  • или модуль PAM пространства имен pam_namespace, который устанавливает частное пространство имен для сеанса с полиинстанцированными каталогами. Полинстантированный каталог предоставляет другой экземпляр самого себя на основе имени пользователя или при использовании SELinux, имени пользователя, контекста безопасности или обоих.

Другие вопросы по тегам