tệp nhật ký trong CentOS 7 [đã đóng]


8

Trong CentOS 7, làm cách nào tôi có thể định vị và xem tất cả các nhật ký hệ thống cho tôi biết ai đã cố gắng vào hệ thống, ai đã tham gia, quá trình họ đã liên hệ, những gì họ đã hoàn thành, v.v. Tôi muốn có thể liên kết mọi hoạt động với một trong hai một userid hoặc một địa chỉ IP từ xa.

Thư mục của tôi var/log/chứa nhiều tài nguyên bao gồm /var/log/messages/var/log/secure, nhưng hầu hết các tệp thuộc loại Binary (application/octet-stream)và HĐH không biết cách mở chúng trừ khi tôi liên kết một số chương trình xem không xác định với chúng. Ngoài ra, var/log/firewallddường như không chứa thông tin hữu ích.

Tôi có thể tìm thấy tất cả các nhật ký được tạo bởi ứng dụng, cơ sở dữ liệu của tôi và NginX / Apache.


Ok, bạn đã tìm thấy /var/logvà tất cả trong số họ là Binaries? bạn chắc chắn? Bạn đang kiểm tra như thế nào?
Braiam

@Braiam Tôi không nói họ là tất cả nhị phân. Tôi nói hầu hết trong số họ là nhị phân. Ví dụ, /var/log/firewalldlà một tệp văn bản dường như chứa thông tin vô dụng. Tôi đang kiểm tra bằng cách nhấp vào các tệp trong GUI. Đầu tiên nhấp chuột trái để thử mở, sau đó nhấp chuột phải để xem thuộc tính để kiểm tra loại tệp.
CodeMed

Hệ thống không làm điều này theo mặc định. Bạn phải kích hoạt đăng nhập kiểm toán để có được điều này. Tôi chỉ ra nhiều phương thức trong A này: unix.stackexchange.com/questions/75051/ Ấn . Có một cái nhìn tổng quan về Audd tại đây: security.blogoverflow.com/2013/01/ . Tìm kiếm người khác, có rất nhiều.
slm

@slm Tôi đọc các liên kết của bạn. Cảm ơn bạn. Đây sẽ là một máy chủ web. Tôi sẽ cần theo dõi danh tính của mỗi cá nhân chạm vào bất kỳ bản ghi nào trong cơ sở dữ liệu hoặc bất kỳ tệp nào trong các phần cụ thể của hệ thống tệp. Tôi cũng sẽ cần sử dụng dữ liệu ghi nhật ký này để thiết lập cảnh báo kích hoạt bất cứ khi nào người dùng trái phép truy cập bất kỳ dữ liệu nào. Tôi biết làm thế nào để ghi nhật ký cấp ứng dụng và cơ sở dữ liệu. Tôi muốn thiết lập ghi nhật ký để nhật ký CentOS có thể được liên kết với nhật ký bộ chứa web, nhật ký ứng dụng và nhật ký cơ sở dữ liệu, có lẽ bằng ip. Tôi nên đóng khung các câu hỏi về mức độ CentOS của yêu cầu này như thế nào?
CodeMed

@CodeMed - Tôi muốn nói rằng đó là CentOS 7, giống như bạn có. Tôi nghĩ rằng bạn có thể làm những gì bạn muốn bằng cách sử dụng audd, viết các thao tác của hệ thống tập tin và những lệnh / quy trình nào được người dùng gọi trên hệ thống tập tin cục bộ. Điều này sẽ không hiển thị bất cứ điều gì ngoài người dùng nginx, apache, v.v. làm X mặc dù từ cấp ứng dụng. Bạn có thể cần phải trộn cả 2 lại với nhau. Tôi cũng sẽ đóng khung nó như một hệ thống Q, với CentOS 7 là ví dụ cụ thể.
slm

Câu trả lời:


10

Tiện ích (dòng lệnh) bạn nên sử dụng là journalctl. Ví dụ: nhìn vào đầu ra dmesg:

journalctl --dmesg

hoặc các mục có thể phân tích cú pháp liên quan đến tường lửa:

journalctl --output=json-pretty UNIT=firewalld.service

Để biết danh sách UNIT có thể lựa chọn, hãy sử dụng các công cụ thông thường:

journalctl --output=json-pretty | grep -F UNIT | sort -u

Xem man journalctltrên hệ thống của bạn để biết thêm các tùy chọn để hạn chế và chỉ định đầu ra.


Cảm ơn bạn. Đây là một sự khởi đầu. Nhưng câu hỏi của tôi là toàn cầu hơn. Làm thế nào để tôi có được một danh sách tất cả các bản ghi có sẵn? Và làm cách nào để có được đầu ra thành định dạng tôi có thể sử dụng? Ví dụ: tài nguyên có thể được nhập vào chương trình java được theo dõi cho người dùng hoặc ip. journalcdt --dmesgdường như không xác định ai cụ thể hơn localhost.localdoman, và journalctl --firewalldsản xuất unrecognized option. Vì vậy, đề nghị của bạn chưa thực sự trả lời câu hỏi của tôi.
CodeMed

Bạn nên thực sự nhìn vào trang người đàn ông. Nó là khá phổ biến. journalctl --output=json-pretty UNIT=firewalld.servicecung cấp cho bạn đầu ra json.
Anthon

Cảm ơn bạn đã cập nhật. Tôi đã đọc hướng dẫn, nhưng câu trả lời của bạn có thể làm cho nó dễ dàng hơn để áp dụng. Ngay bây giờ, journalctl --output=json-pretty | grep -f UNIT | sort -uchogrep: UNIT: No such file or directory
CodeMed

Ngoài ra, journalctl --output=json-pretty UNIT=firewalld.servicechỉ hoạt động khi tôi đăng nhập bằng root, nhưng không hoạt động khi tôi cố gắng sử dụng thiết bị đầu cuối như một người dùng bình thường. Vì vậy, tôi không thể sử dụng mã này theo chương trình. Nếu tôi bằng cách nào đó có thể tự động tạo một tập hợp các tệp nhật ký mới cho mọi đơn vị có thể chọn mà không phải để lại mật khẩu gốc của mình trong một tệp có thể hack, thì câu hỏi này sẽ được trả lời.
CodeMed

@CodeMed Có một lỗi đánh máy trong các grepđối số (Tôi đã không cắt, dán và hạ thấp -Ftùy chọn).
Anthon
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.