Existem várias pessoas com acesso root a uma VM específica pela qual sou responsável. Gostaria de descobrir qual endereço IP foi usado para fazer login na raiz.
Existem várias pessoas com acesso root a uma VM específica pela qual sou responsável. Gostaria de descobrir qual endereço IP foi usado para fazer login na raiz.
Respostas:
Você pode usar o lastcomando 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 ver sem dúvida, a terceira coluna mostrará o endereço IP remoto no caso de um login SSH.
lastusa o /var/log/wtmparquivo, então esse método é semelhante à resposta do G-Man (um pouco mais simples, pois você não precisa especificar o caminho para o arquivo).
Isso depende da sua distribuição ou sistema operacional. sshdregistrará 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 como você chega lá pode variar. Em sistemas baseados emsystemd , use journalctl:
journalctl /usr/bin/sshd
para listar todas as mensagens de log do sshd executável. Você pode esperar isso para logins raiz ou outros critérios e limitá-lo por data com --sincee --until(consulte man journalctl).
Alternativamente e historicamente, as mensagens serão registradas (geralmente) em algum lugar /var/log. Comumentesshd mensagens são enviadas /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 à journalctlversão.
O comando
who /var/log/wtmp
deve mostrar informações como o que whomostra, mas voltando no tempo.
last
Você não deve permitir que as pessoas sshfaçam login diretamente como root (usando a senha root ou um certificado /root/.ssh/authorized_keys) se desejar auditar quem fez login como root. Em vez disso, use uma conta para cada pessoa e deixe-a usar sudopara obter permissões de root. Dessa maneira, você encontrará no log apropriado (a posição do arquivo de log depende de qual distribuição você possui, 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.
sudopoder. Nunca existe um motivo real para compartilhar uma conta entre duas pessoas, mas uma pessoa pode ter duas contas, se necessário.
rootconta.
A partir da breve descrição que você forneceu, parece que seria melhor se você configurasse um sistema de monitoramento de logs. Isso o ajudaria a monitorar os logins, criar alertas, comparar os dados de vários dias e, sim, é claro, gráficos para tudo isso.
Mas se você precisar monitorá-lo temporariamente , poderá usar o lastcomando
last | grep root | grep -v tty | awk '{print $3}'
Isso fornecerá a lista de IPsou Hostnamesde onde o usuário root efetuou login.
sudo less /root/.bash_history, eu ainda estou tentando pesquisar isso, parece ser uma pergunta muito boa :)