Hay varias personas con acceso de root a una VM particular de la que estoy a cargo. Me gustaría saber qué dirección IP se utilizó para iniciar sesión en la raíz.
Hay varias personas con acceso de root a una VM particular de la que estoy a cargo. Me gustaría saber qué dirección IP se utilizó para iniciar sesión en la raíz.
Respuestas:
Puedes usar el last
comando para obtener esta información
# 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 sin duda puede ver, la tercera columna mostrará la dirección IP remota en caso de un inicio de sesión SSH.
last
usa el /var/log/wtmp
archivo, por lo que este método es similar a la respuesta de G-Man (solo un poco más simple ya que no tiene que especificar la ruta al archivo).
Esto depende de su distribución o sistema operativo. sshd
registrará cada inicio de sesión en algún lugar e incluirá la dirección IP relevante en el inicio de sesión en un formato como este:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
Esa parte es consistente, pero la forma de llegar allí puede variar. En sistemas basados en systemd
, use journalctl
:
journalctl /usr/bin/sshd
para enumerar todos los mensajes de registro del sshd
ejecutable. Puede seleccionar eso para los inicios de sesión de raíz u otros criterios, y limitarlo por fecha con --since
y --until
(ver man journalctl
).
Alternativa e históricamente, los mensajes se iniciarán sesión (generalmente) en algún lugar /var/log
. Comúnmente sshd
entran mensajes /var/log/auth.log
, pero el archivo exacto puede variar sustancialmente. Cualquiera que sea:
grep sshd /var/log/auth.log
le dará un resultado ampliamente equivalente a la journalctl
versión.
El comando
who /var/log/wtmp
debería mostrar información como la que se who
muestra, pero retroceder en el tiempo.
last
No debe permitir que las personas lo utilicen ssh
iniciando sesión directamente como root (utilizando la contraseña de root o un certificado /root/.ssh/authorized_keys
) si desea auditar quién inició sesión como root. En su lugar, use una cuenta para cada persona y déjelos usar sudo
para obtener permisos de root. De esta manera, encontrará en el registro apropiado (la posición del archivo de registro depende de la distribución que tenga, incluso puede configurar el demonio de registro para enviar los mensajes a otra máquina) el mensaje user john ran the command 'sudo rm -rf /'
. Bueno, quizás no encuentres fácilmente ese comando en los registros.
sudo
poder. Nunca hay una razón real para compartir una cuenta entre dos personas, pero una persona podría tener dos cuentas si es necesario.
root
cuenta.
Según la breve descripción que ha proporcionado, parece que sería mejor si configurara un sistema de monitoreo de registros. Le ayudaría a monitorear los inicios de sesión, crear alertas, comparar los datos de varios días y, por supuesto, Gráficos para todo eso.
Pero si necesita monitorearlo temporalmente , puede usar el last
comando.
last | grep root | grep -v tty | awk '{print $3}'
Esto le dará la lista de IPs
o Hostnames
desde dónde, el usuario root ha iniciado sesión.
sudo less /root/.bash_history
, todavía estoy tratando de investigar esto, parece una muy buena pregunta :)