Syslog là viết tắt của System Logging Protocol (tạm dịch sang tiếng Việt là Giao thức ghi nhật ký hệ thống) và là một giao thức tiêu chuẩn được sử dụng để gửi nhật ký hệ thống hoặc thông báo sự kiện đến một máy chủ cụ thể, máy chủ này được gọi là máy chủ nhật ký hệ thống “Syslog server”. Nó chủ yếu được sử dụng để thu thập các bản ghi nhật ký thiết bị “device logs” khác nhau từ một số máy khác nhau ở một vị trí trung tâm để theo dõi và xem xét.
Syslog là một giao thức client/server là giao thức dùng để chuyển log và thông điệp đến máy nhận log. Máy nhận log thường được gọi là syslogd, syslog daemon hoặc syslog server. Syslog có thể gửi qua UDP hoặc TCP. Các dữ liệu được gửi dạng cleartext. Syslog dùng port 514.
Syslog được phát triển năm 1980 bởi Eric Allman, nó là một phần của dự án Sendmail, và ban đầu chỉ được sử dụng duy nhất cho Sendmail. Nó đã thể hiện giá trị của mình và các ứng dụng khác cũng bắt đầu sử dụng nó. Syslog hiện nay trở thành giải pháp khai thác log tiêu chuẩn trên Unix-Linux cũng như trên hàng loạt các hệ điều hành khác và thường được tìm thấy trong các thiết bị mạng như router Trong năm 2009, Internet Engineering Task Forec (IETF) đưa ra chuẩn syslog trong RFC 5424. Trong chuẩn syslog, mỗi thông báo đều được dán nhãn và được gán các mức độ nghiêm trọng khác nhau. Các loại phần mềm sau có thể sinh ra thông báo: auth, authPriv, daemon, cron, ftp, dhcp, kern, mail, syslog, user,… Với các mức độ nghiêm trọng từ cao nhất trở xuống Emergency, Alert, Critical, Error, Warning, Notice, Info, and Debug.
- Mục đích của Syslog
Syslog được sử dụng như một tiêu chuẩn, chuyển tiếp và thu thập log được sử dụng trên một phiên bản Linux. Syslog xác định mức độ nghiêm trọng (severity levels) cũng như mức độ cơ sở (facility levels) giúp người dùng hiểu rõ hơn về nhật ký được sinh ra trên máy tính của họ. Log (nhật ký) có thể được phân tích và hiển thị trên các máy chủ được gọi là máy chủ Syslog.Giao thức syslog có những yếu tố sau:- Defining an architecture (xác định kiến trúc) : Syslog là một giao thức, nó là một phần của kiến trúc mạng hoàn chỉnh, với nhiều máy khách và máy chủ.
- Message format (định dạng tin nhắn) : syslog xác định cách định dạng tin nhắn. Điều này rõ ràng cần phải được chuẩn hóa vì các bản ghi thường được phân tích cú pháp và lưu trữ vào các công cụ lưu trữ khác nhau. Do đó, chúng ta cần xác định những gì một máy khách syslog có thể tạo ra và những gì một máy chủ nhật ký hệ thống có thể nhận được.
- Specifying reliability (chỉ định độ tin cậy) : syslog cần xác định cách xử lý các tin nhắn không thể gửi được. Là một phần của TCP/IP, syslog rõ ràng sẽ bị thay đổi trên giao thức mạng cơ bản (TCP hoặc UDP) để lựa chọn.
- Dealing with authentication or message authenticity (xử lý xác thực hoặc xác thực thư): syslog cần một cách đáng tin cậy để đảm bảo rằng máy khách và máy chủ đang nói chuyện một cách an toàn và tin nhắn nhận được không bị thay đổi.
- Kiến trúc của Syslog
Một máy Linux độc lập hoạt động như một máy chủ máy chủ syslog của riêng mình. Nó tạo ra dữ liệu nhật ký, nó được thu thập bởi rsyslog và được lưu trữ ngay vào hệ thống tệp.
Đây là một tập hợp các ví dụ kiến trúc xung quanh nguyên tắc này: - Syslog gửi tin nhắn hoạt động như thế nào?
– Chuyển tiếp nhật ký hệ thống (syslog forwarding) bao gồm gửi log máy khách đến một máy chủ từ xa để chúng được tập trung hóa, giúp phân tích log dễ dàng hơn.
– Hầu hết thời gian, quản trị viên hệ thống không giám sát một máy duy nhất, nhưng họ phải giám sát hàng chục máy, tại chỗ và ngoài trang web.
– Kết quả là, việc gửi nhật ký đến một máy ở xa, được gọi là máy chủ ghi log tập trung, sử dụng các giao thức truyền thông khác nhau như UDP hoặc TCP
- Syslog Server và tại sao phải sử dụng log tập trung:
– Máy chủ nhật ký hệ thống “Syslog Server” còn được gọi là bộ thu nhật ký hệ thống “syslog collector” hoặc bộ nhận nhật ký hệ thống “syslog receiver”.
– Các thông báo nhật ký hệ thống “Syslog messages” được gửi từ thiết bị tạo đến bộ thu. Địa chỉ IP của Syslog Server đích phải được định cấu hình trên chính thiết bị, bằng dòng lệnh Command Line hoặc thông qua tệp conf. Sau khi được cấu hình, tất cả dữ liệu Syslog sẽ được gửi đến máy chủ đó. Không có cơ chế nào trong giao thức Syslog Protocol để một máy chủ khác yêu cầu dữ liệu nhật ký hệ thống.
– Trong khi hầu hết các triển khai Unix và các nhà cung cấp mạng, như Cisco, có bộ thu thập Syslog collectors, của riêng họ, thì cũng có một số công cụ khác.
– Phần mềm giám sát PRTG của Paessler cung cấp cảm biến nhận Syslog Receiver Sensor được tích hợp sẵn. Cảm biến này thu thập tất cả các thông báo Syslog Messages được gửi. Để sử dụng chức năng này, quản trị viên cần thêm Bộ thu Syslog Receiver và sau đó định cấu hình địa chỉ IP của máy chủ đó làm máy chủ đích cho dữ liệu nhật ký hệ thống trên tất cả các thiết bị cần giám sát.
– Sau khi tập hợp, bảng điều khiển hiển thị:- Số lượng thông báo nhật ký hệ thống Syslog messages nhận được mỗi giây.
- Số lượng thông báo được phân loại là cảnh báo “Warning” mỗi giây.
- Số lượng thông báo được phân loại là lỗi “Error” trên giây.
- Số lượng gói tin bị rớt “dropped messages” mỗi giây.
– Giao thức nhật ký hệ thống Syslog Protocol có thể tạo ra rất nhiều thông báo. Syslog chỉ đơn giản là chuyển tiếp các thông báo nhanh nhất khi nó tạo ra chúng. Do đó, khả năng quan trọng nhất đối với máy chủ nhật ký hệ thống Syslog Server là khả năng lọc và phản ứng đúng cách với dữ liệu nhật ký hệ thống đến.
– Bộ cảm biến nhận “PRTG Syslog Receiver Sensor” cung cấp khả năng thiết lập các quy tắc lọc. Các quy tắc này cho phép các thông báo nhật ký hệ thống được bao gồm hoặc loại trừ dưới dạng cảnh báo “Warning” hoặc lỗi “Error”, bất kể chúng được tạo ban đầu như thế nào trên thiết bị. Bộ lọc này đảm bảo rằng quản trị viên nhận được thông báo về tất cả các lỗi mà họ muốn biết mà không bị choáng ngợp bởi các lỗi ít quan trọng hơn.
Đối với một hệ thống có thể có nhiều thiết bị, do vậy sẽ có nhiều nguồn sinh log.
- Có nhiều nguồn sinh ra log, log nằm trên nhiều máy chủ khác nhau nên khó quản lý.
- Nội dung log không đồng nhất
- Định dạng log cũng không đồng nhất -> khó khăn trong việc chuẩn hóa
Đảm bảo tính toàn vẹn, bí mật, sẵn sàng của log.
- Do có nhiều các rootkit được thiết kế để xóa bỏ logs.
- Do log mới được ghi đè lên log cũ -> Log phải được lưu trữ ở một nơi an toàn và phải có kênh truyền đủ đảm bảo tính an toàn và sẵn sàng sử dụng để phân tích hệ thống.
Ưu điểm:
- Giúp quản trị viên có cái nhìn chi tiết về hệ thống -> có định hướng tốt hơn về hướng giải quyết
- Mọi hoạt động của hệ thống được ghi lại và lưu trữ ở một nơi an toàn (log server) -> đảm bảo tính toàn vẹn phục vụ cho quá trình phân tích điều tra các cuộc tấn công vào hệ thống
- Log tập trung kết hợp với các ứng dụng thu thập và phân tích log khác nữa giúp cho việc phân tích log trở nên thuận lợi hơn -> giảm thiểu nguồn nhân lực.
Nhược điểm:
- Có nhiều nguồn sinh ra log, log nằm trên nhiều máy chủ khác nhau nên khó quản lý.
Bạn có nguy cơ quá tải máy chủ syslog của mình: với cấu trúc này, bạn đang đẩy các bản ghi đến một máy chủ từ xa. Hậu quả là, nếu một máy bị tấn công và bắt đầu gửi hàng ngàn log messages, có nguy cơ làm quá tải máy chủ log.
- Nếu máy chủ nhật ký của bạn bị hỏng, bạn sẽ mất khả năng xem tất cả các nhật ký được gửi bởi khách hàng. Hơn nữa, nếu máy chủ ngừng hoạt động, máy khách sẽ bắt đầu lưu trữ thư cục bộ cho đến khi máy chủ khả dụng trở lại, do đó không gian đĩa ở phía máy khách sẽ dần bị đầy.