Como posso rastrear quem faz o SSH na minha máquina Linux?


23

Estou executando o Ubuntu 10.04. Existe uma maneira de obter um relatório diário de quem entrou na caixa, a que horas e até - isso pode estar pedindo muito - um relatório dos comandos que eles usaram? Essa é uma caixa de baixo uso e, portanto, acho que seria uma boa maneira de ver quais atividades estão acontecendo nela.

Nessa mesma linha, ouvi dizer que não era possível rastrear quando as coisas são feitas na caixa através de shells não interativos, como o rsync ou apenas remotamente executando comandos únicos via ssh. Isso é verdade ou existe uma maneira de registrar e acompanhar isso também?

Respostas:


21

As informações de quem efetuou login quando estão disponíveis em /var/log/auth.log(ou outros arquivos de log em outras distribuições). Existem vários programas de monitoramento de log que podem extrair as informações configuradas como relevantes. Em qualquer sistema são, toda autenticação de usuário é registrada.

Para registrar todas as chamadas de comando (mas não seus argumentos), use a contabilidade do processo , fornecida pelo acctpacote Instalar conta no Ubuntu. Se o subsistema contábil estiver em funcionamento, lastcommmostrará informações sobre os processos concluídos.


3
/var/log/secure.log é outro arquivo de log comum
Adrian Cornish

9

Você também pode usar whoou wpara ver quem está atualmente conectado ao sistema, incluindo usuários SSH.


10
lastpode ser uma opção melhor para o que o OP estava procurando ...
jasonwryan

1
de fato. "last" é o comando que você deseja.
Sirex

1
Esta é uma resposta MUITO melhor do que a selecionada.
PaulBGD

0

Geralmente, quando alguém faz login no sistema do usuário, em / var / log / messages, ele é impresso como:

sshd[18468]: Accepted keyboard-interactive/pam for root from 134.64.66.666 port 49867 ssh2

Então, apenas cumprimente as mensagens como:

grep -E "Accepted keyboard-interactive/pam for" /var/log/messages

0

Você também pode modificar o shell bash para fazer algum rsylog.

Efetivamente, você configura o rsyslog em um host remoto para aceitar conexões específicas. Em seguida, modifique o shell do host no qual você deseja monitorar - compilando sua versão com uma que possua o seguinte ativado:

vi config-top.h
#define SYSLOG_HISTORY
#if defined (SYSLOG_HISTORY)
#  define SYSLOG_FACILITY LOG_USER
#  define SYSLOG_LEVEL LOG_INFO
#endif

Depois de compilado com esse recurso ativado, você pode substituir o bash por esta versão OU fazer com que os usuários façam login neste redirecionando seus logins para ele.

Para mais informações:

https://www.pacificsimplicity.ca/blog/remote-logging-using-syslog-and-logging-shell-commands-remotely


Bem. Vou atualizá-lo.
Mcdoomington
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.