Я надеялся получить некоторую помощь с подходом, который можно было бы использовать ...
Я создаю решение, которое будет использовать SSH-CA (то есть SSH, где аутентификация выполняется с помощью сертификатов).
Поток прост:
1) Пользователь генерирует пару ключей
2) Аутентифицируется с помощью HSM и подписывается открытым ключом
3) SSH-сервер проверяет подпись и сертификат и разрешает доступ
(есть лишние биты, но это в основном все).
Вот моя проблема: я могу отслеживать запросы сертификатов и взаимодействия SSH, но как я могу отслеживать действия пользователя?
Поскольку это для сотрудников DevOps, им нужен root, поэтому большинство людей будут входить в сессию SSH как root.
Мне все еще нужно связать отданные команды с именами или идентификаторами сотрудников.
Есть какие-нибудь умные идеи?
Я думал об использовании:
Использование LD_PRELOAD
чтобы обеспечить рудиментарный след хлебных крошек.
Использование нескольких центров сертификации, по одному на пользователя.
Использование групп UNIX, использование групп групп.
Но все это неприятные решения.
Я отвечу :-)
Для аудита команд, выданных пользователями (даже после того, как они переключились на другие uid с su
или sudo
) тебе нужно auditd
.
Вы можете найти подробную информацию о том, как его настроить, как интерпретировать журналы и предупреждения. Вот.