Comandos de log executados por SSH

Comandos de log executados por SSH

Gostaria de registrar todos os comandos executados por SSH.

Dizer,

ssh [email protected] COMMAND

Quero registrar "COMMAND" em server.com

Pesquisei bastante, mas não consegui encontrar nada.

Há mais uma pergunta semelhante, mas não acho que haja uma solução por aí.

Como registrar “execução remota por SSH”

Posso obter uma visualização ao vivo com

pstree -p | grep ssh

Eu tentei Snoopy, auditd e sudosh, mas não consegui registrar esses comandos por SSH.

Existe umhttp://freecode.com/projects/shwatchr, mas não consigo baixar o script para testar.

Existe alguma outra maneira de fazer isso?

Responder1

fiz um teste usando esta opção no laboratório suse do meu servidor e funcionou, mas talvez haja uma maneira melhor.

ForceCommand logger -p user.notice "$SSH_ORIGINAL_COMMAND"

Responder2

Em vez de focar no SSH, dê um passo atrás e considere usar o auditd. Presumo que o que você realmente deseja é rastrear os usuários, não rastrear o que é feito no SSH, ao contrário de outros tipos de login.

man auditctldeve lhe dar um ponto de partida.

Responder3

Eu encontrei uma maneira de fazer isso. Existe um script perl escrito porJohn M. Simpson(https://www.jms1.net/).

Tudo que você precisa fazer é adicionar

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

antes de cada chave em seu ~/.ssh/authorized_keys

Funciona apenas se você tiver um ssh sem senha, mas isso resolve meu propósito até certo ponto.

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

Responder4

No meu caso, eu tinha exatamente o mesmo requisito. A única ressalva desse método é que não tenho certeza de como fazê-lo funcionar se você não usar chaves ssh. Criei um pequeno script bash para registrar o comando antes de executá-lo:

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

Salvei este comando em ~/bin/log-commands e tornei-o executável ( chmod +x ~/bin/log-commands).

No arquivo autorizado_keys, adicionei o command=parâmetro à linha pertencente à chave SSH para a qual eu queria ter logs, para que fosse forçado a executar o script log-commands:

comando = "/home/tricky/bin/log-commands" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ......6J0C1 [e-mail protegido]

Se alguém estiver ciente do registro, mas não quiser que você veja os comandos, poderá simplesmente entrar em uma sessão interativa. Como você mencionou, você já experimentou o snoopy, que fará isso por você. Alternativas populares que não experimentei são rooth, sudosh e log-user-session.

informação relacionada