Kiểm toán máy chủ Linux là một bước quan trọng trong việc đảm bảo an ninh và giám sát hệ thống. Auditd, hay Linux Audit Daemon, là công cụ kiểm toán mạnh mẽ giúp quản trị viên theo dõi các sự kiện, hành động của người dùng cũng như các thay đổi quan trọng trên máy chủ. Việc sử dụng Auditd không chỉ giúp phát hiện kịp thời các hành vi đáng ngờ mà còn hỗ trợ phân tích nguyên nhân sự cố bảo mật, đáp ứng yêu cầu tuân thủ và kiểm tra định kỳ.
Bài viết này sẽ hướng dẫn chi tiết cách cài đặt, cấu hình và sử dụng Auditd để kiểm toán máy chủ Linux một cách hiệu quả nhất. Từ đó, bạn sẽ biết cách thiết lập các quy tắc ghi nhận sự kiện, theo dõi file quan trọng, phân tích log và nâng cao khả năng bảo mật cho hệ thống. Nếu bạn đang tìm kiếm giải pháp kiểm toán máy chủ Linux chuyên nghiệp, Auditd chính là lựa chọn không thể bỏ qua.

Auditd là gì?
Auditd là phần người dùng (user space) của Hệ thống kiểm toán Linux (Linux Auditing System), một tính năng tích hợp sẵn trong nhân Linux. Đây là công cụ giúp bạn giám sát và ghi lại các sự kiện xảy ra trên máy chủ Linux của bạn, giúp việc phản ứng và điều tra các sự cố bảo mật trở nên dễ dàng hơn.
Dựa trên các quy tắc được định nghĩa trước, Auditd tạo ra các bản ghi để lưu lại càng nhiều thông tin về các sự kiện đang diễn ra trên máy chủ của bạn càng tốt.
Auditd có thể ghi lại các hành động quan trọng, như ai đã truy cập vào một tập tin, những lệnh nào được thực thi, hoặc nếu ai đó đã thay đổi các tập tin cấu hình hệ thống quan trọng.
Nó hoạt động bằng cách lắng nghe các sự kiện cụ thể do nhân Linux kích hoạt, ví dụ như:
- Truy cập tập tin (đọc, ghi, thực thi).
- Hoạt động gọi hệ thống (system call).
- Đăng nhập người dùng và các lần xác thực.
- Thay đổi tập tin, thư mục hoặc cấu hình hệ thống.
Khi phát hiện các sự kiện này, Auditd ghi lại chúng vào file:
/var/log/audit/audit.log
Ví dụ, nếu bạn muốn biết ai đã chỉnh sửa tập tin /etc/passwd, Auditd có thể ghi lại ai, làm gì và khi nào sự kiện đó xảy ra.
Tóm lại, Auditd giúp bạn theo dõi máy chủ Linux, ghi lại các hoạt động quan trọng và theo dõi thay đổi để đảm bảo mọi thứ an toàn và kiểm soát được.
Kiến trúc của Auditd
Máy chủ Linux được chia thành hai khu vực chính: kernel space (phần lõi của hệ điều hành) và user space (nơi chạy các ứng dụng và dịch vụ).
Auditd hoạt động ở user space, nghĩa là nó chạy ngoài nhân nhưng phối hợp chặt chẽ với các tính năng của kernel.
Hệ thống kiểm toán Linux, tích hợp trong nhân Linux, cung cấp khung để theo dõi và ghi lại các hoạt động trên máy chủ, đặc biệt là những hoạt động liên quan đến bảo mật.
Kernel tạo ra dữ liệu kiểm toán—như theo dõi các system call hoặc tập tin cụ thể—và gửi dữ liệu này cho Auditd ở user space để xử lý.
Auditd thu thập và quản lý dữ liệu này, cho phép quản trị viên xem xét và phân tích các hoạt động liên quan đến bảo mật trên máy chủ.
Sự phối hợp mượt mà giữa kernel và Auditd đảm bảo khả năng giám sát và kiểm toán mạnh mẽ được tích hợp trong máy chủ Linux.
Cài đặt Auditd
Trên các bản phân phối dựa trên Debian như Ubuntu, bạn có thể cài đặt phiên bản mới nhất của auditd cùng các plugin liên quan bằng lệnh:
sudo apt install auditd audispd-plugins
Lệnh này đảm bảo cả chức năng kiểm toán chính và các plugin bổ sung đều được cài đặt.
Sau khi cài xong, dịch vụ auditd (daemon) sẽ được thêm vào. Nó được bật và chạy mặc định. Bạn có thể kiểm tra trạng thái với lệnh:
sudo systemctl status auditd.service
Kiểm tra xem có quy tắc Auditd nào đang hoạt động không bằng lệnh:
sudo auditctl -l
Nếu chưa tạo quy tắc nào, sẽ báo:
No Rules
auditctl là lệnh quản lý quy tắc, trong đó -l liệt kê các quy tắc.
Tệp cấu hình của Auditd
Auditd lưu cấu hình trong thư mục /etc/audit/.
Tệp cấu hình chính là auditd.conf, điều khiển các thiết lập liên quan cách dịch vụ auditd hoạt động. Thường nên giữ mặc định và chỉ thay đổi khi cần.
Một số tùy chọn quan trọng:
log_file: vị trí tệp ghi log. Mặc định là/var/log/audit/audit.log. Bạn có thể thay đổi nếu muốn lưu ở nơi khác.max_log_file: kích thước tối đa tệp log (MB), mặc định 8 MB.max_log_file_action: hành động khi log đạt kích thước tối đa. Mặc định làROTATE(quay vòng tệp log).num_logs: số lượng tệp log quay vòng được giữ lại, mặc định 5.
Nếu server bạn sinh ra nhiều log, nên điều chỉnh các giá trị này phù hợp.
Để áp dụng thay đổi sau khi chỉnh sửa auditd.conf, khởi động lại dịch vụ:
sudo systemctl restart auditd
Giám sát thay đổi tập tin
Giả sử bạn muốn giám sát tập tin /etc/ssh/sshd_config để phát hiện mọi thay đổi.
Tập tin này rất quan trọng vì chứa cấu hình dịch vụ SSH, nếu bị chỉnh sửa trái phép sẽ gây rủi ro lớn.
Dùng lệnh sau để tạo quy tắc giám sát:
sudo auditctl -w /etc/ssh/sshd_config -p rwa -k sshd_changes
Giải thích:
-w: watch (theo dõi) tập tin.-p rwa: giám sát quyền đọc (r), ghi (w), và thay đổi thuộc tính (a).-k sshd_changes: đặt tên khóa cho quy tắc này để dễ tìm kiếm trong log.
Kiểm tra lại quy tắc:
sudo auditctl -l
Kiểm tra quy tắc
Bạn có thể thao tác với tập tin /etc/ssh/sshd_config để tạo sự kiện:
- Đọc nội dung:
sudo cat /etc/ssh/sshd_config
- Thêm dòng bình luận (ghi):
sudo sh -c 'echo "# Comment" >> /etc/ssh/sshd_config'
- Thay đổi quyền truy cập (thay đổi thuộc tính):
sudo chmod 600 /etc/ssh/sshd_config
Sau đó kiểm tra log Auditd bằng lệnh:
sudo ausearch -i -k sshd_changes
Hoặc tạo báo cáo tóm tắt bằng:
sudo aureport -i -k | grep "sshd_changes"
Giám sát thay đổi thư mục
Bạn cũng có thể giám sát toàn bộ thư mục để phát hiện việc tạo, xóa hay thay đổi tập tin bên trong.
Ví dụ tạo nhóm secureadmins cho các quản trị viên David và Ha:
sudo groupadd secureadmins
sudo usermod -a -G secureadmins david
sudo usermod -a -G secureadmins ha
sudo mkdir /secureadmins
sudo chown nobody:secureadmins /secureadmins
sudo chmod 3770 /secureadmins
Phân quyền như trên giúp chỉ thành viên nhóm secureadmins mới có quyền truy cập vào thư mục.
Tạo quy tắc giám sát thư mục:
sudo auditctl -w /secureadmins/ -k secureadmins_monitor
Hoặc chỉ giám sát quyền thực thi (cd vào thư mục):
sudo auditctl -w /secureadmins/ -p x -k secureadmins_monitor
Kiểm tra log với:
sudo ausearch -i -k secureadmins_monitor
Lưu quy tắc vĩnh viễn
Quy tắc tạo bằng auditctl chỉ tồn tại đến khi reboot. Để lưu vĩnh viễn, bạn cần tạo file quy tắc trong /etc/audit/rules.d/, ví dụ:
Tạo file /etc/audit/rules.d/custom.rules với nội dung:
-w /secureadmins/ -k secureadmins_monitor
Sau đó khởi động lại dịch vụ auditd:
sudo systemctl restart auditd.service
Quy tắc sẽ được thêm vào /etc/audit/audit.rules tự động và tồn tại qua khởi động lại.
Xóa quy tắc
Xóa quy tắc tạm thời (phiên hiện tại) dùng:
sudo auditctl -W /secureadmins/ -k secureadmins_monitor
Để xóa vĩnh viễn, xóa file quy tắc trong /etc/audit/rules.d/ rồi khởi động lại dịch vụ auditd.
Xóa tất cả quy tắc hiện hành:
sudo auditctl -D
Báo cáo xác thực người dùng
Auditd tự động ghi lại các lần đăng nhập và xác thực thành công hoặc thất bại.
Xem báo cáo xác thực bằng lệnh:
sudo aureport -au
Bạn có thể lọc hoặc xem chi tiết từng sự kiện bằng ausearch.
Một số lệnh quản lý Auditd với auditctl
- Xem trạng thái Auditd:
sudo auditctl -s
- Tắt/bật Auditd tạm thời:
sudo auditctl -e 0 # Tắt
sudo auditctl -e 1 # Bật lại
- Thay đổi chế độ lỗi, kích thước bộ đệm, thời gian chờ:
sudo auditctl -f 2 # Chế độ lỗi panic (ngắt hệ thống nếu lỗi)
sudo auditctl -b 4096 # Kích thước buffer 4096 KB
sudo auditctl --backlog_wait_time 30000 # Thời gian chờ 30 giây
- Xem phiên bản Auditd:
sudo auditctl -v
Kết luận
Auditd là công cụ mạnh mẽ giúp bạn giám sát và ghi lại các hoạt động trên máy chủ Linux liên quan đến bảo mật. Tuy nhiên, nó không tự bảo vệ máy chủ mà đóng vai trò cảnh báo và ghi nhận. Bạn nên kết hợp Auditd với các biện pháp bảo mật khác để tăng cường an toàn tổng thể.









