Назад | Перейти на главную страницу

Записывать команды, выполняемые по ssh

Я хочу регистрировать все команды, выполняемые через SSH.

Сказать,

ssh something@server.com COMMAND

Я хочу войти "КОМАНДА" на server.com

Я долго искал, но ничего не нашел.

Есть еще один похожий вопрос, но я не думаю, что там есть решение.

Как зарегистрировать "удаленное выполнение по SSH"

Я могу смотреть вживую с

pstree -p | grep ssh

Я пробовал Snoopy, auditd и sudosh, но не смог записать эти команды через ssh.

Eсть http://freecode.com/projects/shwatchr. но я не могу загрузить сценарий для тестирования.

есть ли другой способ сделать это?

Спасибо.........

Вместо того, чтобы сосредоточиться на SSH, сделайте шаг назад и подумайте об использовании auditd. Я предполагаю, что вы действительно хотите отслеживать пользователей, а не отслеживать то, что делается через SSH, в отличие от других типов входа в систему.

man auditctl должен дать вам отправную точку.

Я провел тест, используя эту опцию в своей лаборатории suse, и она работает, но, возможно, есть лучший способ.

ForceCommand logger -p user.notice "$SSH_ORIGINAL_COMMAND"

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

#!/bin/bash
echo "$(date -Is) ${SSH_ORIGINAL_COMMAND}" >> ~/sshcommands.log
sh "${SSH_ORIGINAL_COMMAND}"

Я сохранил эту команду в ~ / bin / log-commands, а затем сделал ее исполняемой (chmod +x ~/bin/log-commands).

В файле authorized_keys я добавил command= параметр к строке, принадлежащей к ключу SSH, для которого я хотел иметь журналы, поэтому он был бы вынужден запустить скрипт команд журнала:

command = "/ home / tricky / bin / log-commands" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ ...... 6J0C1 tricky@tricky-testing.mydomain

Если кто-то знает о ведении журнала, но не хочет, чтобы вы видели команды, он может просто перейти в интерактивный сеанс. Как вы упомянули, вы уже пробовали Snoopy, который сделает это за вас. Популярные альтернативы, которые я не пробовал, - это rooth, sudosh и log-user-session.

Я нашел способ сделать это. Есть скрипт на perl, написанный Джон М. Симпсон(https://www.jms1.net/).

Все, что вам нужно сделать, это добавить

command="#{path to log-session}"

перед каждым ключом в вашем ~ / .ssh / authorized_keys

Это работает, только если у вас есть ssh без пароля, но это в какой-то мере решает мою задачу.

http://www.jms1.net/log-session

Снупи поможет тебе с этим? «Записывать каждую выполненную команду в системный журнал (он же Snoopy Logger)».

https://github.com/a2o/snoopy