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 lastcomando 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.
lastusa il /var/log/wtmpfile, 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. sshdregistrerà 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 --sincee --until(vedi man journalctl).
In alternativa e storicamente, i messaggi verranno registrati (di solito) da qualche parte in /var/log . Comunemente i sshdmessaggi 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 whomostrate, ma tornare indietro nel tempo.
last
Non si dovrebbe consentire alle persone di utilizzare sshaccedendo 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 sudoper 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ò.
sudoenergia. Non c'è mai un vero motivo per condividere un account tra due persone, ma una persona potrebbe avere due account se necessario.
rootaccount.
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 lastcomando.
last | grep root | grep -v tty | awk '{print $3}'
Questo ti fornirà l'elenco di IPso Hostnamesda dove l'utente root ha effettuato l'accesso.
sudo less /root/.bash_history