Ghi nhật ký một hoạt động của người Viking trên Linux


11

Vì vậy, tôi đã đọc nhiều bài viết liên quan đến vấn đề này và đã xuất hiện nhiều nhầm lẫn hơn trước. Có các đề xuất cho các công cụ khác nhau bao gồm ttyrec, snoopy, acct, rootsh, sudosh, ttyrpld, kiểm tra unix và nhiều hơn nữa.

Trong trường hợp của tôi, tôi muốn có thể ghi nhật ký tất cả các lệnh được thực thi trên một hệ thống (như lịch sử đã bật dấu thời gian), nhưng tôi cũng muốn biết ai đã làm gì? Tuy nhiên, tất cả chúng ta đều đăng nhập thông qua ssh vào cùng một tập hợp nhỏ các tài khoản người dùng (tùy thuộc vào những gì chúng ta đang làm). Làm cách nào tôi có thể nhận được nhật ký các lệnh bao gồm thông tin mà "ai" sẽ cung cấp cho tôi (liên quan đến kết nối) để tôi có thể theo dõi hành động cho một người cụ thể như là một "người dùng" chung chung?


Snoopy sẽ có thể làm điều đó, và có lẽ nhiều lựa chọn thay thế khác.
3molo

2
Các cuộc gọi hệ thống, sudo, lịch sử shell, thay đổi hệ thống tập tin? Không phải tất cả các quy trình người dùng nhất thiết phải được bắt đầu từ shell đăng nhập.

Câu trả lời:


9

Các auditdgói phần mềm được thiết kế cho điều này, bạn có thể sử dụng PAM để gán mỗi lần đăng nhập một session ID để bạn có thể theo dõi hoạt động trên một lại tài khoản để đăng nhập ban đầu (và sau đó kiểm tra nhật ký đăng nhập để xác định nơi người đó đăng nhập từ), và sử dụng các ausearchlệnh để xác định vị trí các sự kiện mà bạn đang quan tâm. bạn có thể đọc một hướng dẫn khá toàn diện ở đây mặc dù một số các chi tiết tốt hơn sẽ cần phải được thay đổi để phù hợp với phân phối của bạn. Redhat có một trang web với Câu hỏi thường gặp và một số tài liệu khác ở đây .

Vì việc này không dựa vào việc cố gắng ghi nhật ký các lệnh được nhập vào shell hoặc ghi lại lịch sử lệnh của người dùng, nên nó sẽ ghi nhật ký những thứ như mở vi (có thể được thực hiện trên X hoặc in screen), viết một tập lệnh (có thể là một ký tự tại thời gian với các lệnh cắt / dán của vi và một vài lần chạy :.!/usr/games/fortuneđể lấy một số dữ liệu nguồn mà bạn có thể không thể đăng nhập) sau đó chạy :%!/bin/bashlệnh.


Đây là câu trả lời hứa hẹn nhất ... Kiểm toán cho phép bạn theo dõi nhất quán các hành động của người dùng từ đăng nhập ngay khi đăng xuất bất kể danh tính mà người dùng này có thể chấp nhận bằng cách sử dụng ID kiểm toán được tạo khi đăng nhập và truyền lại cho bất kỳ quy trình con nào của quá trình đăng nhập ban đầu. Bây giờ hãy đọc thêm một chút về phần của tôi để tìm ra cách thực hiện nó. Cảm ơn đã thu hẹp rất nhiều sự lựa chọn!
Ashimema

Xin lỗi vì mất quá nhiều thời gian để đánh dấu câu trả lời này là chấp nhận .. Tôi đã thử nó! Làm việc một giấc mơ .. Chúc mừng các bạn!
Ashimema

4

Có rất nhiều công cụ theo ý của bạn, mà câu hỏi của bạn (và những câu trả lời này) gợi ý như lịch sử, snoopy, audd, sudo log, v.v ... nhưng nếu bạn có "Tập hợp con tài khoản" mọi người đang sử dụng, thì sẽ có không có cách nào ở máy chủ để nói ai đã làm gì Cách duy nhất bạn có thể nói cụ thể là ai đã làm điều đó nếu người dùng có máy tính riêng mà họ sử dụng cụ thể và sử dụng keylogger để cho biết họ đang gõ vật lý gì trên bàn phím đó.

Bất cứ khi nào bạn chia sẻ tài khoản, bạn không thể biết chuyện gì đang thực sự xảy ra, vì bạn cần thêm bằng chứng ai đang sử dụng tài khoản root hoặc tài khoản bob của bạn hoặc bất cứ điều gì mọi người đang làm. Nếu bạn đang cố gắng điều tra những gì đã xảy ra trong một sự cố cụ thể, bạn có thể cần xem lại các chính sách và quy trình truy cập, quy trình phục hồi và đánh giá nhân viên của mình và / hoặc tham gia đào tạo lại nếu cần (hoặc sự tin cậy của họ với các tài khoản nhạy cảm) hơn là trực tiếp tập trung vào việc săn lùng những người đã làm một việc gì đó, vì nó có thể hút nhiều tài nguyên hơn bạn có thể tìm được người đã làm việc đó.

Mặt khác, bạn có thể muốn xem xét các kỹ thuật điều tra pháp y để theo dõi những gì đã xảy ra (hình ảnh ổ đĩa, theo dõi nhật ký, v.v.) Nếu bạn không điều tra một sự cố, hãy xem xét các chính sách của bạn và tiến hành xác minh tài khoản và theo dõi tài khoản tốt hơn (chỉ bạn mới có root, chỉ Bob sử dụng tài khoản của mình bằng sudo để có quyền truy cập vào các đặc quyền cao hơn, cài đặt và giám sát kiểm toán, v.v.) và cẩn thận không làm cho vòng tròn đáng tin cậy của bạn cảm thấy như chúng bị giữ dưới kính hiển vi hoặc bạn có thể xa lánh mọi người đang cố gắng để hoàn thành công việc của họ (hoặc cản trở họ hoàn thành công việc).


2

Kiểm toán Linux ( http://people.redhat.com/sgrubb/audit/ ) sẽ cung cấp cho bạn sức mạnh nhất trong việc xem ai đã làm gì. Bạn có nhiều hơn về nó trong câu trả lời của DerfK.

Tuy nhiên, sẽ không có gì để nói với bạn, người đã đăng nhập như webadmin, nếu có n người có quyền truy cập vào tài khoản webadmin. Tôi sẽ đề nghị sử dụng các tài khoản được đặt tên cho mỗi người dùng và sau đó sử dụng su - hoặc sudo để chạy các lệnh từ tài khoản "hàm".

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.