Ada beberapa orang dengan akses root ke VM tertentu yang saya tangani. Saya ingin mencari tahu alamat IP mana yang digunakan untuk login ke root.
Ada beberapa orang dengan akses root ke VM tertentu yang saya tangani. Saya ingin mencari tahu alamat IP mana yang digunakan untuk login ke root.
Jawaban:
Anda dapat menggunakan lastperintah untuk mendapatkan informasi ini
# 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
Seperti yang pasti Anda lihat, kolom ke-3 akan menunjukkan alamat IP jarak jauh jika terjadi SSH login.
lastmenggunakan /var/log/wtmpfile, jadi metode ini mirip dengan jawaban G-Man (hanya sedikit lebih sederhana karena Anda tidak harus menentukan path ke file).
Ini tergantung pada distribusi atau OS Anda. sshdakan mencatat setiap login di suatu tempat, dan akan memasukkan alamat IP yang relevan dalam login dengan format seperti ini:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
Bagian itu konsisten, tetapi bagaimana Anda sampai di sana dapat bervariasi. Pada sistem berdasarkan systemd, gunakan journalctl:
journalctl /usr/bin/sshd
untuk mencantumkan semua pesan log dari yang sshddapat dieksekusi. Anda dapat mencabutnya untuk login root atau kriteria lainnya, dan batasi berdasarkan tanggal dengan --sincedan --until(lihat man journalctl).
Atau sebagai alternatif, pesan akan masuk (biasanya) di suatu tempat di /var/log. Secara umum sshdpesan masuk /var/log/auth.log, tetapi file yang tepat dapat bervariasi secara substansial. Yang mana pun itu:
grep sshd /var/log/auth.log
akan memberi Anda output yang setara secara luas untuk journalctlversi tersebut.
Perintah
who /var/log/wtmp
harus menampilkan informasi seperti apa yang whoditampilkan, tetapi kembali ke masa lalu.
last
Anda tidak boleh mengizinkan orang untuk menggunakan sshdengan masuk secara langsung sebagai root (menggunakan kata sandi root atau sertifikat masuk /root/.ssh/authorized_keys) jika Anda ingin mengaudit siapa yang login sebagai root. Alih-alih, gunakan satu akun untuk setiap orang dan biarkan mereka gunakan sudountuk mendapatkan izin root. Dengan cara ini Anda akan menemukan di log yang sesuai (posisi file log tergantung pada distribusi yang Anda miliki, Anda bahkan dapat mengkonfigurasi daemon log untuk mengirim pesan ke mesin lain) pesan user john ran the command 'sudo rm -rf /'. Yah, mungkin Anda tidak akan dengan mudah menemukan satu perintah itu dalam log.
sudokekuasaan. Tidak pernah ada alasan nyata untuk berbagi akun antara dua orang, tetapi seseorang dapat memiliki dua akun jika diperlukan.
rootakun.
Dari uraian singkat yang Anda berikan, tampaknya akan lebih baik jika Anda membuat sistem pemantauan log. Ini akan membantu Anda memantau login, membuat peringatan, membandingkan data beberapa hari, dan ya tentu saja Grafik untuk semua itu.
Tetapi jika Anda perlu memonitornya sementara , Anda dapat menggunakan lastperintah.
last | grep root | grep -v tty | awk '{print $3}'
Ini akan memberi Anda daftar IPsatau Hostnamesdari mana, pengguna root telah login.
sudo less /root/.bash_history