Я хочу регистрировать все команды, выполняемые через 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 без пароля, но это в какой-то мере решает мою задачу.
Снупи поможет тебе с этим? «Записывать каждую выполненную команду в системный журнал (он же Snoopy Logger)».