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?


1
. skrip man (1)
adapttr


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>

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


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.


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/


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 ..


3
Dalam pertanyaan itu dikatakan: 'acct itu tidak daftar perintah lengkap'.
Putnik
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.