Comandos de log executados sobre o ssh

6

Eu gostaria de registrar todos os comandos executados no SSH.

Diga,

ssh [email protected] COMMAND

Eu quero registrar "COMMAND" no server.com

Eu pesquisei bastante, mas não consegui encontrar nada.

Existe mais uma pergunta semelhante, mas não acho que exista uma solução por lá.

Como registrar "execução remota via SSH"

Eu posso ter uma visualização ao vivo com

pstree -p | grep ssh

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

Existe um link . mas não consigo baixar o script para testar.

Existe alguma outra maneira de fazer isso?

Obrigado .........

    
por Prashanth 06.12.2013 / 11:40

5 respostas

3

eu fiz um teste usando essa opção no meu servidor lab e ela funciona, mas talvez exista uma maneira melhor.

ForceCommand logger -p user.notice "$SSH_ORIGINAL_COMMAND"
    
por 06.12.2013 / 14:12
3

Em vez de se concentrar no SSH, dê um passo para trás e considere o uso do auditd. Estou assumindo que o que você realmente quer é rastrear os usuários, não rastreando o que é feito a partir do SSH em oposição a outros tipos de login.

man auditctl deve fornecer um ponto de partida.

    
por 10.12.2013 / 09:29
1

Eu encontrei uma maneira de fazer isso. Existe um script perl escrito por John M. Simpson ( link ).

Tudo o 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 o meu propósito até certo ponto.

link

    
por 10.12.2013 / 06:32
0

No meu caso, eu tinha exatamente o mesmo requisito. A única ressalva com este método é que eu não tenho certeza de como fazê-lo funcionar se você não fizer uso de chaves ssh. Fiz um pequeno script 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 authorized_keys, eu adicionei o parâmetro command= à linha pertencente à chave SSH pela qual eu queria ter logs, então ele seria forçado a executar o script log-commands:

command="/home/tricky/bin/log-commands" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ......6J0C1 [email protected]

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

    
por 24.04.2018 / 11:38
0

Snoopy ajudaria você com isso? “Registre todos os comandos executados no syslog (também conhecido como Snoopy Logger)”.

link

    
por 24.04.2018 / 12:47