Ci sono diverse persone con accesso root a una particolare VM di cui sono responsabile. Vorrei scoprire quale indirizzo IP è stato utilizzato per accedere al root.
Ci sono diverse persone con accesso root a una particolare VM di cui sono responsabile. Vorrei scoprire quale indirizzo IP è stato utilizzato per accedere al root.
Risposte:
È possibile utilizzare il last
comando per ottenere queste informazioni
# 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
Come puoi sicuramente vedere, la terza colonna mostrerà l'indirizzo IP remoto in caso di accesso SSH.
last
usa il /var/log/wtmp
file, quindi questo metodo è simile alla risposta di G-Man (solo un po 'più semplice poiché non è necessario specificare il percorso del file).
Questo dipende dalla tua distribuzione o sistema operativo. sshd
registrerà ogni accesso da qualche parte e includerà nel relativo indirizzo IP un formato come questo:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
Quella parte è coerente, ma il modo in cui ci si arriva può variare. Su sistemi basati su systemd
, utilizzare journalctl
:
journalctl /usr/bin/sshd
per elencare tutti i messaggi di registro dall'eseguibile sshd
. Puoi estrarlo per gli accessi root o altri criteri e limitarlo per data con --since
e --until
(vedi man journalctl
).
In alternativa e storicamente, i messaggi verranno registrati (di solito) da qualche parte in /var/log
. Comunemente i sshd
messaggi vanno in /var/log/auth.log
, ma il file esatto può variare sostanzialmente. Qualunque sia, è:
grep sshd /var/log/auth.log
ti darà un output sostanzialmente equivalente a journalctl
versione.
Il comando
who /var/log/wtmp
dovrebbe mostrare informazioni come quelle who
mostrate, ma tornare indietro nel tempo.
last
Non si dovrebbe consentire alle persone di utilizzare ssh
accedendo direttamente come root (usando la password di root o un certificato /root/.ssh/authorized_keys
) se si desidera controllare chi ha effettuato il login come root. Invece, usa un account per ogni persona e falli usare sudo
per ottenere i permessi di root. In questo modo troverai nel log appropriato (la posizione del file di log dipende dalla distribuzione che hai, puoi persino configurare il demone log per inviare i messaggi a un'altra macchina) il messaggio user john ran the command 'sudo rm -rf /'
. Bene, forse non troverai facilmente quel comando nei log però.
sudo
energia. Non c'è mai un vero motivo per condividere un account tra due persone, ma una persona potrebbe avere due account se necessario.
root
account.
Dalla breve descrizione che hai fornito sembra che sarebbe meglio se si imposta un sistema di monitoraggio dei registri. Ti aiuterebbe a monitorare gli accessi, creare avvisi, confrontare i dati di diversi giorni e sì, ovviamente, i grafici per tutto ciò.
Ma se è necessario monitorarlo temporaneamente , è possibile utilizzare il last
comando.
last | grep root | grep -v tty | awk '{print $3}'
Questo ti fornirà l'elenco di IPs
o Hostnames
da dove l'utente root ha effettuato l'accesso.
sudo less /root/.bash_history