Một giải pháp chung đơn giản và hiệu quả là sử dụng logcheck .
sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
logcheck định kỳ quét tất cả các bản ghi một cách hiệu quả (bắt đầu từ nơi nó rời đi lần trước), lọc những gì nó thấy để loại bỏ bất cứ thứ gì được coi là bình thường và tùy chọn gửi email cảnh báo với bất kỳ thứ gì không phù hợp với mẫu thông thường / thông thường.
Ý tưởng chính là đề phòng sự xuất hiện của bất kỳ mục nghiêm trọng nào trong các tệp nhật ký của bạn, tất cả chúng, mọi lúc, vì vậy bạn không cần phải làm vậy.
logcheck có cấu hình cao (man logcheck
). Bạn có thể định cấu hình mọi thứ, bao gồm:
- tần suất kiểm tra
- tập tin nhật ký nào được kiểm tra
- những gì được coi là bình thường so với không
- nơi gửi email thông báo (sự kiện bất thường) đến
và hơn thế nữa. Các mẫu bỏ qua (bình thường / thường lệ) của bạn nằm trong nhiều tệp trong /etc/logcheck/ignore.d.* và bạn có thể tùy chỉnh chúng theo nhu cầu của mình; chủ yếu bạn có thể muốn thêm các mẫu của riêng bạn để bỏ qua. Gói Ubuntu mặc định đi kèm với một tập hợp các tệp rộng lớn với các mẫu bỏ qua cho nhiều dịch vụ, vì vậy không có gì nhiều để thêm trừ khi hệ thống của bạn không bình thường trong những gì nó chạy. Có 3 bộ hồ sơ tệp bỏ qua được cấu hình sẵn: ign.d.workstation , ign.d.server và ign.d.paranoid mà bạn có thể chọn.
Ý tưởng chính đằng sau logcheck là các dịch vụ khác nhau chạy trên một hệ thống, đã ghi lại các sự kiện bất thường. Ví dụ: sshd hoặc pam đã đăng nhập thất bại xác thực. Vì vậy, các thành phần bị thiếu chính là:
- lọc những gì bình thường
- Các cảnh báo dịch vụ
Cả hai đều được cung cấp bởi logcheck trong một gói tiện lợi. Bạn có thể kết hợp logcheck với bất kỳ đăng nhập khác. Ví dụ: iptables có thể được cấu hình để syslog mọi nỗ lực kết nối mạng không được phép rõ ràng bằng cách thêm các quy tắc:
iptables -A input -j LOG
iptables -A input -j DROP
ngay sau khi tất cả các quy tắc cho phép.
Tôi thấy logcheck hữu ích hơn nhiều so với logwatch (được đề xuất trong các câu trả lời khác) bởi vì nó được đóng gói sẵn với một số lượng rất lớn các quy tắc để bỏ qua những gì được coi là hoạt động bình thường. Kết quả là tỷ lệ tín hiệu / nhiễu cao hơn nhiều trong các cảnh báo mà nó gửi qua email. YMMV.
Một ưu điểm khác của logcheck là nó trực giao với bất kỳ dịch vụ nào ghi nhật ký, do đó không có sự trùng lặp về chức năng. Bất cứ khi nào bạn thêm một dịch vụ mới sử dụng syslog
để ghi nhật ký sự kiện, bất thường hay không, vào bất kỳ tệp nào dưới /var/log
bạn sẽ bắt đầu nhận thông báo cho dịch vụ đó một cách tự động.
LÀM THẾ NÀO ĐỂ:
Vì logcheck
đã được cấu hình sẵn, hai dòng ở đầu câu trả lời này về cơ bản bao gồm tất cả những gì bạn cần để bắt đầu. Chỉ cần cài đặt nó và đi qua tệp cấu hình trên cùng:
/etc/logcheck/logcheck.conf
để thay đổi địa chỉ email của bạn để logcheck
email thông báo cho bạn.
Đây là một tài liệu tham khảo thân thiện đi qua bước thứ hai chi tiết hơn . Vì Ubuntu dựa trên Debian, các hướng dẫn này cũng sẽ hoạt động trên Ubuntu.
Đây là một tài liệu tham khảo tốt .
Sau khi bạn cài đặt, quá trình cải tiến liên tục bắt đầu. Theo thời gian, bạn tinh chỉnh các quy tắc của mình để bỏ qua bất cứ điều gì bạn đã biết và cảm thấy không nên quan tâm. Quá trình sàng lọc này đơn giản như việc thêm các dòng văn bản vào một tệp trong trình soạn thảo văn bản yêu thích của bạn.
Mỗi dòng trong tệp bỏ qua là một biểu thức chính quy mở rộng (xem man 7 regex
), nhưng bạn có thể sử dụng các chuỗi đơn giản miễn là chúng khớp với dòng nhật ký bạn muốn bỏ qua. Chỉ cần nhớ rằng nhân vật thích *
, ?
, '+', []
, ()
là đặc biệt trong một biểu thức chính quy, vì vậy nếu họ thực sự xuất hiện trong dòng nhật ký, bạn sẽ phải thoát khỏi chúng với một dấu chéo ngược \
trong bỏ qua tập tin.
Nói cách khác: nếu bạn nhận được một cảnh báo mà bạn không muốn nhận, hãy xem dòng nhật ký được gửi qua email cho bạn và thêm một mẫu phù hợp với nó, như một dòng vào bất kỳ tệp bỏ qua nào bạn chọn. Tôi đề nghị sử dụng
/etc/logcheck/ignore.d.<yourloglevel>/my-ignores
như tập tin bỏ qua cá nhân của bạn. Trong trường hợp <yourloglevel>
là một trong những paranoid
, server
hoặc
workstation
(như bạn đã chọn trong tập tin cấu hình chính: /etc/logcheck/logcheck.conf
). Xem các ví dụ trong các tệp bỏ qua khác để xem cách hạch toán văn bản thay đổi mọi lúc như ID quá trình hoặc dấu thời gian. Có rất nhiều ví dụ hiện có để học hỏi.
Một mẹo cuối cùng: logcheck
đi kèm với một tiện ích nhỏ hữu ích được gọi logcheck-test
là rất tiện dụng để thử nghiệm các quy tắc mới. man logcheck-test
để biết chi tiết.