Bagaimana cara mencatat setiap perintah yang dilakukan oleh pengguna?

32

Saya ingin memantau semua aktivitas pengguna di server saya.

Bahkan ketika pengguna menjalankan perintah shell dari beberapa editor seperti vim saya ingin melihatnya di file log.

Saya telah memeriksa alat acct tetapi tidak mencantumkan perintah lengkap. (Harap koreksi saya jika saya melewatkan beberapa opsi yang sudah ada).

Alat Linux mana yang harus saya cari untuk menyelesaikan masalah ini?

Supratik
sumber
1
. skrip man (1)
adapttr
Referensi yang bagus 8gwifi.org/docs/linux-monitor-commands.jsp
anish

Jawaban:

32

Tambahkan baris ini ke konfigurasi pam Anda yang bertanggung jawab atas login (sistemnya auth pada distro berbasis redhat)

session    required     pam_tty_audit.so enable=*

Untuk mengetahui apa yang sudah dilakukan, Anda bisa menggunakan.

ausearch -ts <some_timestamp> -m tty -i

Ini menghasilkan output 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 dibaca, tetapi jauh lebih baik daripada kebanyakan solusi yang diusulkan karena secara teori dapat digunakan untuk merekam seluruh sesi, kutil dan semua.

Sunting: Oh dan Anda dapat menggunakan aureport untuk menghasilkan daftar yang bisa 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>
Matthew Ife
sumber
Terima kasih untuk detailnya. Saya menggunakan Ubuntu 10,04 LTS Ketika saya memeriksa folder / lib / security / modul tidak ada tetapi ada halaman manual untuk modul itu. Saya pikir saya telah menemukan bug ini bugs.launchpad.net/ubuntu/+source/pam/+bug/588547 Apakah ada cara lain saya dapat menginstal modul itu?
Supratik
Laporan bug menyarankan perbaikan dan pembaruan didistribusikan.
Matthew Ife
@ MLfe saya mengkompilasi kode sumber PAM dan menyalin file .so di / lib / security / dan berhasil. Terima kasih lagi.
Supratik
1
@CameronKerr: masalah kata sandi diperbaiki: redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann
3
Catatan, perlu disebutkan bahwa agar auditddaemon di atas berfungsi, daemon harus diaktifkan terlebih dahulu (tidak secara default pada instalasi CentOS 6.7 saya). Untuk memulai daemon, gunakan :, dan service auditd startuntuk membuat perubahan ini tetap ada (setelah reboot), gunakan chkconfig auditd on Sumber: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/… dan access.redhat.com/documentation/en-US/ Red_Hat_Enterprise_Linux / ...
jonny
8

Solusi terbaik untuk masalah Anda adalah sistem audit bawaan Linux . Gunakan man 8 auditdatau periksa halaman ini untuk informasi lebih lanjut: http://linux.die.net/man/8/auditd .

Anda juga dapat memeriksa tutorial ini - meskipun sedikit keluar dari ruang lingkup pertanyaan Anda, ini menunjukkan cara kerja sistem audit.

Vladimir Blaskov
sumber
2

Anda bisa menggunakan snoopy .

Ini adalah perpustakaan log perintah sederhana, dan bukan solusi audit yang tepat (mudah dielakkan). Pengungkapan: Saya pengelola snoopy saat ini.

Bostjan Skufca
sumber
2

Trik yang kurang dikenal, tetapi yang paling mudah hanya menggunakan kemampuan audit bawaan sudo. Sudo dikirimkan dengan sudoreplayperintah yang membuat sesi replaying mudah. Bahkan akan menyampaikan vimsesi (seperti yang Anda sarankan).

Berikut cara menggunakannya dalam beberapa langkah mudah:

  1. Instal sudoshdi sistem Anda; ini adalah pembungkus shell di sekitar sudoperintah yang membuat pengguna sudosendiri (bukan root) dan dapat digunakan sebagai shell login sistem
  2. Aktifkan sudopencatatan. Edit /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Tambahkan perintah ini ke /etc/shellsuntuk mengizinkan login menggunakannya: /usr/bin/sudosh

    Kiat : untuk mencegah pengguna menggunakan kerang lain untuk masuk, hapus kerang lain dari /etc/shells.

  4. Perbarui pengguna foobaruntuk menggunakan sudoshshell. chsh -s /usr/bin/sudosh foobar

Untuk informasi lebih lanjut, lihat: https://github.com/cloudposse/sudosh/

Erik Osterman
sumber
1

inilah solusi ajaib: http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum install psacct (redhat)
  • sudo apt-get install acct

Anda dapat menampilkan statistik tentang perintah / koneksi pengguna, dll.

Daftar semua perintah yang dibuat oleh pengguna tertentu ...

Cari log akuntansi berdasarkan nama perintah: $ lastcomm rm $ lastcomm passwd

dan seterusnya, untuk informasi lebih lanjut silakan kunjungi tautan di atas ..

Med Ali Difallah
sumber
3
Dalam pertanyaan itu dikatakan: 'acct itu tidak daftar perintah lengkap'.
Putnik