Como determinar o endereço IP de quem logou no Root?

15

Existem várias pessoas com acesso root a uma VM específica de que sou responsável. Gostaria de descobrir qual endereço IP foi usado para fazer login no root.

    
por Matthew Moisen 21.08.2014 / 22:59

5 respostas

14

Isso depende da sua distribuição ou sistema operacional. sshd registrará cada login em algum lugar e incluirá o endereço IP relevante no login em um formato como este:

Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297

Essa parte é consistente, mas a maneira como você chega lá pode variar. Em sistemas baseados em systemd , use journalctl :

journalctl /usr/bin/sshd

para listar todas as mensagens de log do executável sshd . Você pode verificar isso para logins raiz ou outros critérios e limitá-lo por data com --since e --until (consulte man journalctl ).

Como alternativa e historicamente, as mensagens serão registradas (geralmente) em algum lugar em /var/log . Comumente, sshd mensagens entram em /var/log/auth.log , mas o arquivo exato pode variar substancialmente. Qualquer que seja:

grep sshd /var/log/auth.log

fornecerá uma saída amplamente equivalente para a versão journalctl .

    
por 21.08.2014 / 23:13
14

Você pode usar o comando last para obter essas informações

# last|head
phemmer  ssh          192.168.0.24     Wed Aug 20 21:08 - 21:08  (00:00)
phemmer  pts/13       192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:07 - 23:07  (00:00)
phemmer  pts/15       192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  ssh          192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  :0                            Wed Jul 30 20:06   still logged in
reboot   system boot  3.13.2-gentoo    Wed Jul 30 20:05   still running

Como você pode, sem dúvida, ver, a terceira coluna mostrará o endereço IP remoto no caso de um login SSH.

last usa o arquivo /var/log/wtmp , então esse método é semelhante à resposta do G-Man (apenas um pouco mais simples, já que você não precisa especificar o caminho para o arquivo).

    
por 22.08.2014 / 05:49
7

Você não deve permitir que as pessoas usem ssh efetuando login diretamente como root (usando a senha raiz ou um certificado em /root/.ssh/authorized_keys ) se você deseja auditar quem efetuou login como root. Em vez disso, use uma conta para cada pessoa e deixe que usem sudo para obter permissões de root. Desta forma, você encontrará no log apropriado (a posição do arquivo de log depende de qual distribuição você tem, você pode até configurar o daemon de log para enviar as mensagens para outra máquina) a mensagem user john ran the command 'sudo rm -rf /' . Bem, talvez você não encontre facilmente esse comando nos logs.

    
por 21.08.2014 / 23:51
6

O comando

who /var/log/wtmp

deve mostrar informações como o que o who mostra, mas voltar no tempo.

    
por 21.08.2014 / 23:37
0

A partir da breve descrição que você forneceu, parece que seria melhor se você configurasse um sistema de monitoramento de registros. Ajudaria você a monitorar os logins, criar alertas, comparar os dados de vários dias e sim Gráficos do curso para tudo isso.

Mas se você precisar monitorá-lo temporariamente , poderá usar o comando last .

last | grep root | grep -v tty | awk '{print $3}'

Isso fornecerá a lista de IPs ou Hostnames de onde o usuário root efetuou login.

    
por 27.08.2014 / 10:41

Tags