SIEM/Log Management [SIEM/Logs Management]-[Lý thuyết] #2: Tìm hiểu chung về Syslog và các giao thức liên quan

tampham

Intern

Mục Lục​

I. Giới Thiệu​

II. Tổng quan về Syslog​

III. Các giao thức liên quan​


I. Giới Thiệu​

Trong một hệ thống mạng hiện đại, log đóng vai trò quan trọng trong việc giám sát, phân tích sự cố và đảm bảo an ninh. Để log có thể được thu thập và xử lý hiệu quả, chúng cần một cơ chế truyền tải đáng tin cậy – đó chính là nơi các giao thức như Syslog, Rsyslog, và các biến thể khác phát huy vai trò. Bài viết này sẽ giúp bạn hiểu rõ cơ chế hoạt động của Syslog – giao thức chuẩn để gửi thông điệp log, cũng như các giải pháp mở rộng như Rsyslog, vốn cung cấp khả năng lọc, mã hóa và xử lý log mạnh mẽ hơn. Từ đó, bạn sẽ có cái nhìn tổng quan về cách xây dựng một hệ thống thu thập và quản lý log tập trung, hiệu quả và an toàn.

II. Tổng quan về Syslog​

1. Giới thiệu về Syslog​

Syslog là giao thức dạng client-server dùng để truyền các thông điệp log từ thiết bị gửi (client) đến máy nhận log (server), còn gọi là Syslog Server hoặc Syslog Daemon (syslogd). Giao thức này sử dụng cổng 514, truyền qua UDP hoặc TCP, tuy nhiên dữ liệu được gửi ở dạng cleartext (không mã hóa).
Được phát triển vào những năm 1980 bởi Eric Allman trong dự án Sendmail, syslog nhanh chóng chứng minh giá trị và trở thành tiêu chuẩn logging cho hệ thống Unix/Linux, thiết bị mạng như router, firewall, và được chuẩn hóa bởi IETF trong RFC 5424 (2009).
Ban đầu, syslog chỉ hỗ trợ UDP, dẫn đến hạn chế về độ tin cậy. Để khắc phục, IETF đưa ra chuẩn RFC 3195RFC 6587, cho phép sử dụng TCP nhằm đảm bảo độ tin cậy khi truyền log.
Thông điệp syslog gồm hai phần chính:
  • Facility (nguồn sinh log): auth, cron, mail, daemon, kern, user,...
  • Severity level (mức độ nghiêm trọng): từ cao nhất đến thấp nhất là: Emergency, Alert, Critical, Error, Warning, Notice, Info, Debug.
1750004775987.png

2. Nguồn sinh ra Logs​

1750006084936.png

3. Mức độ cảnh báo

1750004994802.png


4. Định dạng chung của một gói tin Syslog​

Một thông báo Syslog đầy đủ gồm 3 phần chính:
1750005117969.png

PRI (Priority):

  • Là một số nằm trong dấu ngoặc nhọn đứng đầu thông báo.
  • Đại diện cho mức độ nghiêm trọng (Severity)nguồn phát sinh log (Facility).
  • Được mã hóa thành một số nguyên 8 bit:
    • 3 bit đầu tiên thể hiện cho tính nghiêm trọng của thông báo.
    • 5 bit còn lại đại diện cho sơ sở sinh ra thông báo.

  • - PRI = Facility × 8 + Severity
Ví dụ:
  • Facility = 0 (kernel), Severity = 0 (Emergency) → PRI = 0×8 + 0 = 0
  • Facility = 20 (local use 4), Severity = 5 (Notice) → PRI = 20×8 + 5 = 165
Ngược lại, muốn giải mã PRI:
  • PRI = 191
    → Facility = 191 ÷ 8 = 23 (local7)
    → Severity = 191 - (23 × 8) = 7 (Debug)

HEADER:

Phần HEADER thì gồm các phần chính sau:
  • Time stamp - Thời gian mà thông báo được tạo ra. Thời gian này được lấy từ thời gian hệ thống ( Chú ý nếu như thời gian của server và thời gian của client khác nhau thì thông báo ghi trên log được gửi lên server là thời gian của máy client)
  • Hostname hoặc IP

3. MSG (Message)

Gồm 2 trường nhỏ:
  • Tag field: Tên tiến trình hoặc chương trình tạo log (ví dụ: sshd, cron, nginx…).
  • Content field: Nội dung chi tiết của log (mô tả lỗi, hành động, trạng thái...).

5. Rsyslog​

Rsyslog - "The rocket-fast system for log processing" được bắt đầu phát triển từ năm 2004 bởi Rainer Gerhards rsyslog là một phần mềm mã nguồn mở sử dụng trên Linux dùng để chuyển tiếp các log message đến một địa chỉ trên mạng (log receiver, log server) Nó thực hiện giao thức syslog cơ bản, đặc biệt là sử dụng TCP cho việc truyền tải log từ client tới server. Hiện nay rsyslog là phần mềm được cài đặt sẵn trên hầu hết hệ thống Unix và các bản phân phối của Linux như : Fedora, openSUSE, Debian, Ubuntu, Red Hat Enterprise Linux, FreeBSD…

III. Các giao thức liên quan​

1. TCP/UDP​

Syslog sử dụng giao thức UDP hoặc TCP để truyền tin trên mạng

TCP​

TCP là viết tắt của Transmission Control Protocol. Đó là giao thức phổ biến nhất được sử dụng trên Internet.
TCP hoạt động theo hướng kết nối (connection-oriented), trước khi truyền dữ liệu giữa 2 máy, nó thiết lập một kết nối giữa 2 máy theo phương thức "bắt tay 3 bước (three-way-hand-shake)" bằng cách gửi gói tin ACK từ máy đích sang máy nhận, trong suốt quá trình truyền gói tin, máy gửi yêu cầu máy đích xác nhận đã nhận đủ các gói tin đã gửi, nếu có gói tin bị mất, máy đích sẽ yêu cầu máy gửi gửi lại, thường xuyên kiểm tra gói tin có bị lỗi hay ko, ngoài ra còn cho phép qui định số lượng gói tin được gửi trong một lần gửi (window-sizing), điều này đảm bảo máy nhận nhận được đầy đủ các gói tin mà máy gửi gửi đi --> truyền dữ liệu chậm hơn UDP nhưng đáng tin cậy hơn UDP.

UDP​

UDP là viết tắt của User Datagram Protocol - một gói tương tự như một gói của thông tin.
UDP hoạt động theo hướng không kết nối (connectionless), không yêu cầu thiết lập kết nối giữa 2 máy gửi và nhận, ko có sự đảm bảo gói tin khi truyền đi cũng như không thông báo về việc mất gói tin, ko kiểm tra lỗi của gói tin --> truyền dữ liệu nhanh hơn UDP do cơ chế hoạt động có phần đơn giản hơn tuy nhiên lại ko đáng tin cậy bằng TCP
Do đặc điểm của mình, UDP vẫn thường được sử dụng trong các ứng dụng mà đòi hỏi về tốc độ mà ít cần phải sửa lỗi. Ví dụ, UDP thường được sử dụng cho chương trình phát sóng trực tiếp và trò chơi trực tuyến.

2. TLS/SSL​

SSL (Secure Socket Layer) là một giao thức bảo mật được phát triển bởi Netscape, dùng để mã hóaxác thực thông tin giữa client và server trên Internet. Ngày nay, SSL đã được IETF chuẩn hóa và đổi tên thành TLS (Transport Layer Security). Mặc dù tên gọi mới là TLS, nhưng trong thực tế thuật ngữ SSL vẫn thường được sử dụng phổ biến.
SSL/TLS được thiết kế để chạy trên TCP/IPbên dưới tầng ứng dụng. Nó hỗ trợ bảo mật cho nhiều giao thức như:
  • HTTP → (trở thành HTTPS)
  • FTP
  • IMAP
  • SMTP...
Hiện tại, SSL được dùng chủ yếu cho các giao dịch web an toàn – ví dụ như thanh toán, đăng nhập, truyền dữ liệu nhạy cảm.
Công nghệ SSl bảo vệ những giao dịch trực tuyến và năng cao mức độ tin cậy của website đối với khách hàng chỉ trong 3 bước cơ bản:
1750006084944.png

Kết Luận

Syslog và Rsyslog đóng vai trò cốt lõi trong hệ thống quản lý log hiện đại. Syslog cung cấp một giao thức chuẩn, đơn giản và được chấp nhận rộng rãi để gửi log từ nhiều thiết bị và hệ điều hành khác nhau. Tuy nhiên, chính Rsyslog – với khả năng mở rộng, hỗ trợ đa giao thức (TCP, UDP, TLS), lọc linh hoạt và hiệu suất cao – đã nâng tầm việc xử lý log lên một cấp độ chuyên nghiệp hơn.
Việc hiểu rõ cách hoạt động, cấu trúc thông điệp và khả năng tùy biến của Syslog và Rsyslog sẽ giúp chúng ta xây dựng được một hệ thống thu thập log tập trung, an toàn, và sẵn sàng tích hợp với các công cụ phân tích như SIEM.
 

Đính kèm

  • 1750004895693.png
    1750004895693.png
    48.3 KB · Lượt xem: 0
  • 1750005721521.png
    1750005721521.png
    71.7 KB · Lượt xem: 0
Sửa lần cuối:
Back
Top