Bạn cần cấu hình auditdđể ghi lại execvecác sự kiện. Ví dụ về RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Tôi bỏ qua cảnh báo vòm và nó dường như không quan trọng nhưng bạn có thể sử dụng -F arch=b64hoặc -F arch=b32đặt nó nếu bạn muốn.
Kết quả của những điều trên là:
[root@ditirlns01 ~]# ls /tmp/whatever
ls: /tmp/whatever: No such file or directory
[root@ditirlns01 ~]# grep whatever /var/log/audit/audit.log
type=EXECVE msg=audit(1386797915.232:5527206): argc=3 a0="ls" a1="--color=tty" a2="/tmp/whatever"
type=EXECVE msg=audit(1386797927.133:5527241): argc=3 a0="grep" a1="whatever" a2="/var/log/audit/audit.log"
[root@ditirlns01 ~]#
Điều đó rõ ràng nhanh chóng và bẩn thỉu nhưng đó là những điều cơ bản về cách bạn làm điều đó. Những gì bạn cần làm chính xác có lẽ phụ thuộc rất nhiều vào những gì bạn đang cố gắng làm chính xác. Bạn có thể giảm lưu lượng kiểm toán bằng nhiều bộ lọc khác nhau trong auditctllệnh nhưng tôi không biết bất kỳ thông tin nào trong số đó vì vậy tôi không biết nên bao gồm những gì. Nếu bạn cần một cái gì đó cụ thể hơn, tôi khuyên bạn nên kiểm tra trang nam hoặc đăng bình luận cho câu trả lời này và tôi sẽ cập nhật thêm.
Hy vọng rằng sẽ giúp đẩy bạn đi đúng hướng.
BIÊN TẬP:
Vì câu hỏi của bạn liên quan đến việc xem xét một người dùng cụ thể, tôi có thể cho bạn thấy rằng:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Giống hệt như trên, nhưng chỉ execvebởi ai đó đang chạy với ID người dùng hiệu quả 16777216mới được đăng nhập. Nếu bạn cần chỉ định loginuidgiá trị của người dùng (người đầu tiên họ đăng nhập vào hệ thống) thì bạn sẽ lọc bằng cách auidthay thế:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Các bộ lọc AUID / loginuid sẽ hữu ích, ví dụ nếu người dùng sẽ thực hiện suhoặc sudoroot. Trong tình huống đó, sẽ có rất nhiều công cụ chạy bằng root, nhưng bạn chỉ quan tâm đến những thứ bị người dùng khởi động trong câu hỏi. auditctlcũng cho phép bạn xếp các bộ lọc để bạn có thể lọc theo cả hai euidvà auid:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216 -F euid=0
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]# ls /tmp/nashly -ltar
ls: /tmp/nashly: No such file or directory
[root@ditirlns01 ~]# grep nashly /var/log/audit/audit.log
type=EXECVE msg=audit(1386798635.199:5529285): argc=4 a0="ls" a1="--color=tty" a2="/tmp/nashly" a3="-ltar"
type=EXECVE msg=audit(1386798646.048:5529286): argc=3 a0="grep" a1="nashly" a2="/var/log/audit/audit.log"