Làm cách nào để ghi nhật ký mọi lệnh được thực thi bởi người dùng?


32

Tôi muốn theo dõi tất cả hoạt động của người dùng trong máy chủ của tôi.

Ngay cả khi người dùng thực thi lệnh shell từ một số trình soạn thảo như vim, tôi vẫn muốn xem chúng trong tệp nhật ký.

Tôi đã kiểm tra acct công cụ nhưng nó không liệt kê các lệnh hoàn chỉnh. (Vui lòng sửa cho tôi nếu tôi đã bỏ lỡ một số tùy chọn đã có).

Tôi nên xem xét công cụ Linux nào để giải quyết vấn đề này?


1
. man script (1)
Adaptr


Một tài liệu tham khảo tuyệt vời 8gwifi.org/docs/linux-monitor-commands.jsp
anish

Câu trả lời:


32

Thêm dòng này vào cấu hình pam của bạn chịu trách nhiệm đăng nhập (hệ thống của nó tự động trên các bản phân phối dựa trên redhat)

session    required     pam_tty_audit.so enable=*

Để tìm hiểu những gì đã được thực hiện, bạn có thể sử dụng.

ausearch -ts <some_timestamp> -m tty -i

Điều này tạo ra một đầu ra như thế này:

 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>

Nhược điểm duy nhất của điều này là có thể hơi khó đọc, nhưng nó tốt hơn nhiều so với hầu hết các giải pháp được đề xuất vì trên lý thuyết nó có thể được sử dụng để ghi lại toàn bộ phiên, cảnh báo tất cả.

Chỉnh sửa: Oh và bạn có thể sử dụng aureport để tạo một danh sách có thể hữu ích hơn.

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

Cảm ơn các chi tiết. Tôi đang sử dụng Ubuntu 10.04 LTS Khi tôi kiểm tra thư mục / lib / security / mô-đun không có nhưng có một trang hướng dẫn cho mô-đun đó. Tôi nghĩ rằng tôi đã gặp phải lỗi này.launchpad.net/ubfox/+source/pam/+orms/588547 Có cách nào khác để tôi có thể cài đặt mô-đun đó không?
Supratik

Báo cáo lỗi cho thấy một bản sửa lỗi và cập nhật đã được phân phối.
Matthew Ife

@Mlfe Tôi đã biên dịch mã nguồn PAM và sao chép tệp .so trong / lib / security / và nó đã hoạt động. Cảm ơn một lần nữa.
Supratik

1
@CameronKerr: sự cố mật khẩu đã được khắc phục: redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
Lưu ý, điều đáng nói là để phần trên hoạt động, auditdtrình nền cần phải được bật trước tiên (nó không được mặc định trong cài đặt CentOS 6.7 của tôi). Để bắt đầu trình nền, hãy sử dụng: service auditd startvà để thực hiện thay đổi này liên tục (sau khi khởi động lại), sử dụng chkconfig auditd on Nguồn: access.redhat.com/documentation/en-US/Red_Hat_ Entryprise_Linux / sắtaccess.redhat.com/documentation/en-US/ Red_Hat_ Entryprise_Linux / Lỗi
jonny


2

Bạn có thể sử dụng snoopy .

Nó là một thư viện ghi nhật ký lệnh đơn giản, và không phải là một giải pháp kiểm toán thích hợp (dễ bị phá vỡ). Tiết lộ: Tôi hiện đang duy trì snoopy.


2

Một thủ thuật ít được biết đến, nhưng dễ dàng nhất là chỉ sử dụng các khả năng kiểm toán tích hợp của sudo. Sudo tàu với một sudoreplaylệnh làm cho phát lại phiên dễ dàng. Nó thậm chí sẽ chuyển tiếp vimphiên (như bạn đề nghị).

Đây là cách sử dụng nó trong một vài bước đơn giản:

  1. Cài đặt sudoshtrên hệ thống của bạn; đây là trình bao bọc xung quanh sudolệnh tạo cho sudochính người dùng (không phải root) và có thể được sử dụng làm trình bao đăng nhập hệ thống
  2. Cho phép sudođăng nhập. Chỉnh sửa /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Thêm lệnh này để /etc/shellscho phép đăng nhập bằng cách sử dụng nó: /usr/bin/sudosh

    Mẹo : để ngăn người dùng sử dụng các shell khác để đăng nhập, hãy xóa các shell đó khỏi /etc/shells.

  4. Cập nhật người dùng foobarđể sử dụng sudoshshell. chsh -s /usr/bin/sudosh foobar

Để biết thêm thông tin chi tiết, xem: https://github.com/cloudposese/sudosh/


1

đây là một giải pháp kỳ diệu: http://www.cyberciti.biz/tips/howto-log-user-activity-USE- Process-accounting.html

  • yum cài đặt psacct (redhat)
  • sudo apt-get cài đặt acct

bạn có thể hiển thị số liệu thống kê về các lệnh / kết nối của người dùng, v.v.

Liệt kê tất cả các lệnh được gọi bởi một người dùng nhất định ...

Tìm kiếm nhật ký kế toán theo tên lệnh: $ lastcomm rm $ lastcomm passwd

và như vậy, để biết thêm thông tin xin vui lòng truy cập liên kết ở trên ..


3
Trong câu hỏi đã được nói: 'acct nó không liệt kê các lệnh hoàn chỉnh'.
Putnik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.