Ограничение кэша учетных данных 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, имени пользователя, контекста безопасности или обоих.