Проблема: У меня есть рабочий сервер, который я никому не доверяю. Однако я не могу быть единственным, кто может получить к нему доступ.
Реализация: Мне нужно разрешить людям входить в систему как root, но через прокси-сервер, чтобы все, что они вводят/отправляют по ssh, регистрировалось на прокси-машине, к которой у них фактически нет доступа (чтобы они не могли подделать журналы).
Какая идеальная настройка для этого? Я сталкивался только с tshark (SSH-регистрация всех команд), но я не уверен, что это подойдет для работы, и не знаю, как именно это настроить, поскольку люди говорят, что оно регистрирует трафик на уровне протокола, а шифрование SSH происходит на уровне приложения.
Может ли кто-нибудь предоставить окончательное проверенное решение этой проблемы?
решение1
Естьhttps://goteleport.comкоторый должен делать именно то, что вы просите. Они говорят, что он готов к производству, но я играю с ним, и мне кажется, что он находится на ранней стадии разработки.
Я ищу альтернативы, поэтому нашел ваш вопрос, который все еще актуален. Я бы выбрал коммерческое решение.
решение2
Вы можете попробовать NHI:https://github.com/strang1ato/nhi
nhi
автоматически собирает всю потенциально полезную информацию о каждой выполненной команде и обо всем вокруг, а также предоставляет мощный механизм запросов.
nhi
ведет учет:
- команда
- вывод команды
- статус выхода команды
- рабочий каталог в конце выполнения команды
- время начала команды
- время окончания команды
- приглашение оболочки во время выполнения команды
nhi
также ведет учет информации о сеансе оболочки в целом.
[...]
nhi daemon основан на eBPF - технологии, встроенной в ядро linux. Использование
eBPF
гарантирует отличную производительность и низкие накладные расходы инструмента, поскольку трассировка безопасно выполняется внутри ядра.
nhi
не влияет на поведение какой-либо программы/процесса (и ОС в целом).