Solusi 1:
Tambahkan baris ini ke pam config Anda yang bertanggung jawab untuk login (auth-sistemnya pada distro berbasis redhat)
session required pam_tty_audit.so enable=*
Untuk mengetahui apa yang telah dilakukan, Anda dapat menggunakan.
ausearch -ts <some_timestamp> -m tty -i
Ini menghasilkan keluaran seperti ini:
type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>
Satu-satunya downside ke ini adalah bisa sedikit sulit untuk dibaca, tetapi ini jauh lebih baik daripada kebanyakan solusi yang diusulkan karena secara teori ini dapat digunakan untuk merekam seluruh sesi, kutil dan semuanya.
Sunting:Oh, dan Anda dapat menggunakan aureport untuk membuat daftar yang dapat lebih membantu.
# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>
Solusi 2:
Solusi terbaik untuk masalah Anda adalah sistem audit bawaan Linux. Gunakan man 8 auditd
atau periksa halaman ini untuk informasi lebih lanjut:http://linux.die.net/man/8/auditd.
Selain itu, Anda dapat memeriksa tutorial ini - meskipun sedikit di luar cakupan pertanyaan Anda, tutorial ini menunjukkan cara kerja sistem audit.
Solusi 3:
Anda bisa menggunakan snoopy.
Ini adalah pustaka logging perintah sederhana, dan bukan solusi audit yang tepat (mudah dielakkan). Pengungkapan:Saat ini saya pengelola snoopy.
Solusi 4:
Trik yang kurang dikenal, tetapi yang paling mudah adalah dengan menggunakan kemampuan audit bawaan dari sudo
. Sudo dikirimkan dengan sudoreplay
perintah yang membuat sesi pemutaran ulang menjadi mudah. Itu bahkan akan menyampaikan vim
sesi (seperti yang Anda sarankan).
Berikut cara menggunakannya dalam beberapa langkah mudah:
- Instal
sudosh
di sistem Anda; ini adalah pembungkus shell di sekitarsudo
perintah yang membuat penggunasudo
sendiri (bukanroot
) dan dapat digunakan sebagai shell login sistem -
Aktifkan
sudo
penebangan. Edit/etc/sudoers.d/sudosh
:Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output
-
Tambahkan perintah ini ke
/etc/shells
untuk mengizinkan login menggunakannya:/usr/bin/sudosh
Kiat :untuk mencegah pengguna menggunakan shell lain untuk masuk, hapus shell lain dari
/etc/shells
. -
Perbarui pengguna
foobar
untuk menggunakansudosh
shell.chsh -s /usr/bin/sudosh foobar
Untuk informasi lebih detail, lihat:https://github.com/cloudposse/sudosh/