Giám Sát Hiệu Quả với Audit Log trong Linux
Giới thiệu
Giám sát hiệu quả với Audit Log trong Linux là một hoạt động quan trọng trong quản trị hệ thống và bảo mật hạ tầng máy chủ. Audit Log giúp ghi nhận các hành động quan trọng như đăng nhập, thay đổi quyền, truy cập file nhạy cảm, thực thi lệnh và thay đổi cấu hình hệ thống.
Thông qua Audit Log, quản trị viên có thể phát hiện sớm các hành vi bất thường, truy vết nguyên nhân sự cố và cung cấp bằng chứng phục vụ kiểm tra bảo mật. Đây là thành phần cần thiết trong các hệ thống yêu cầu kiểm soát truy cập, tuân thủ chính sách nội bộ và tăng cường khả năng giám sát vận hành.
Điều kiện trước khi thực hiện
• Máy chủ sử dụng hệ điều hành Linux
• Có quyền root hoặc quyền sudo
• Có quyền cài đặt và cấu hình dịch vụ auditd
• Có quyền truy cập Terminal hoặc Console
• Đã xác định các file, thư mục hoặc hành vi cần giám sát
• Có kế hoạch lưu trữ log phù hợp với dung lượng hệ thống
Audit Log trong Linux là gì
Audit Log trong Linux là hệ thống ghi nhận các sự kiện liên quan đến bảo mật và hoạt động quan trọng trên máy chủ. Thành phần phổ biến được sử dụng để quản lý Audit Log là auditd.
Dịch vụ auditd hoạt động ở mức hệ điều hành, có khả năng ghi nhận các sự kiện chi tiết hơn so với log hệ thống thông thường. Các sự kiện này có thể bao gồm việc người dùng đăng nhập, thay đổi file cấu hình, sử dụng quyền sudo hoặc truy cập vào các thư mục quan trọng.
Vai trò của Audit Log
Audit Log giúp quản trị viên theo dõi những hành động đã xảy ra trên hệ thống. Khi có sự cố, dữ liệu audit giúp xác định ai đã thực hiện hành động, hành động xảy ra vào thời điểm nào và tác động đến thành phần nào.
Audit Log cũng hỗ trợ doanh nghiệp đáp ứng yêu cầu kiểm soát nội bộ, đánh giá bảo mật và điều tra các sự kiện bất thường.
Khuyến nghị:
• Bật Audit Log trên các máy chủ quan trọng
• Giám sát các file cấu hình hệ thống
• Theo dõi hành vi sử dụng quyền root hoặc sudo
Nguyên nhân phổ biến cần giám sát Audit Log
Việc giám sát Audit Log thường được triển khai khi hệ thống cần tăng khả năng kiểm soát và truy vết hoạt động.
Một số trường hợp cần giám sát gồm:
• Có nhiều người dùng quản trị cùng truy cập máy chủ
• Máy chủ lưu trữ dữ liệu quan trọng
• Cần theo dõi thay đổi file cấu hình
• Cần kiểm tra hành vi đăng nhập thất bại
• Cần phát hiện thao tác leo thang đặc quyền
• Cần phục vụ yêu cầu kiểm toán nội bộ
• Cần điều tra sự cố bảo mật hoặc vận hành
Hướng dẫn thực hiện
Bước 1: Kiểm tra trạng thái dịch vụ auditd
Trước tiên cần xác nhận hệ thống đã cài đặt và chạy dịch vụ auditd hay chưa. Đây là dịch vụ chính chịu trách nhiệm ghi nhận và quản lý Audit Log trong Linux.
Thực hiện:
systemctl status auditdNếu dịch vụ chưa tồn tại, hệ thống có thể chưa được cài đặt auditd.
Kiểm tra:
• Dịch vụ auditd có đang active hay không
• Dịch vụ có được bật tự động khi khởi động không
• Có lỗi nào xuất hiện trong trạng thái dịch vụ không
Bước 2: Cài đặt auditd nếu chưa có
Nếu hệ thống chưa có auditd, cần cài đặt trước khi cấu hình Audit Log.
Thực hiện trên Ubuntu hoặc Debian:
apt updateapt install auditd audispd-plugins -yThực hiện trên CentOS, RHEL hoặc Rocky Linux:
yum install audit audit-libs -yHoặc:
dnf install audit audit-libs -yKiểm tra:
• Gói auditd đã được cài đặt thành công
• Dịch vụ auditd có thể khởi động bình thường
• Không có lỗi phụ thuộc gói phần mềm
Bước 3: Khởi động và bật auditd cùng hệ thống
Sau khi cài đặt, cần khởi động dịch vụ auditd và cấu hình tự động chạy khi máy chủ khởi động.
Thực hiện:
systemctl start auditdsystemctl enable auditdKiểm tra:
systemctl status auditdKết quả:
• Dịch vụ auditd hiển thị active (running)
• Dịch vụ được bật tự động khi khởi động hệ thống
• File log bắt đầu được ghi nhận tại /var/log/audit/audit.log
Bước 4: Kiểm tra file Audit Log mặc định
Audit Log thường được lưu tại đường dẫn /var/log/audit/audit.log. Đây là nơi quản trị viên có thể kiểm tra các sự kiện đã được ghi nhận.
Thực hiện:
ls -lh /var/log/audit/tail -f /var/log/audit/audit.logKiểm tra:
• File audit.log có tồn tại
• Dung lượng file log đang tăng khi có sự kiện mới
• Nội dung log ghi nhận đúng thời gian hệ thống
Lưu ý:
• Không nên chỉnh sửa trực tiếp file audit.log
• Cần cấu hình logrotate hoặc chính sách lưu trữ phù hợp
Bước 5: Thêm rule giám sát file quan trọng
Để giám sát thay đổi trên file hoặc thư mục quan trọng, cần thêm audit rule tương ứng. Ví dụ có thể theo dõi file /etc/passwd để phát hiện thay đổi tài khoản người dùng.
Thực hiện:
auditctl -w /etc/passwd -p wa -k passwd_changesauditctl -w /etc/shadow -p wa -k shadow_changesauditctl -w /etc/sudoers -p wa -k sudoers_changesKiểm tra:
auditctl -lLưu ý:
• Tham số -w dùng để chỉ định file hoặc thư mục cần theo dõi
• Tham số -p wa dùng để theo dõi hành động ghi và thay đổi thuộc tính
• Tham số -k dùng để gắn từ khóa, giúp tìm kiếm log dễ hơn
Bước 6: Lưu rule audit cố định
Các rule thêm bằng auditctl có thể mất sau khi máy chủ khởi động lại. Vì vậy cần lưu rule vào file cấu hình cố định.
Thực hiện:
nano /etc/audit/rules.d/audit.rulesThêm nội dung:
-w /etc/passwd -p wa -k passwd_changes-w /etc/shadow -p wa -k shadow_changes-w /etc/sudoers -p wa -k sudoers_changesÁp dụng lại rule:
augenrules --loadKiểm tra:
auditctl -lLưu ý:
• Nên đặt tên key dễ hiểu để phục vụ tìm kiếm
• Không thêm quá nhiều rule không cần thiết vì có thể làm tăng dung lượng log
Bước 7: Tìm kiếm Audit Log theo key
Sau khi đã cấu hình rule, quản trị viên có thể tìm kiếm sự kiện theo key đã đặt.
Thực hiện:
ausearch -k passwd_changesausearch -k shadow_changesausearch -k sudoers_changesKiểm tra:
• Log có ghi nhận đúng sự kiện thay đổi
• Thời gian sự kiện chính xác
• Có thông tin người dùng thực hiện thao tác
Lưu ý:
• Nên kết hợp ausearch với thời gian khi điều tra sự cố
• Có thể xuất kết quả để lưu trữ hoặc gửi cho bộ phận bảo mật
Bước 8: Xuất báo cáo Audit Log
Audit Log có thể được tổng hợp thành báo cáo để quản trị viên dễ theo dõi.
Thực hiện:
aureportaureport -auaureport -xaureport -fKiểm tra:
• Báo cáo đăng nhập người dùng
• Báo cáo lệnh đã thực thi
• Báo cáo file được truy cập hoặc thay đổi
• Báo cáo sự kiện xác thực
Khuyến nghị:
• Kiểm tra báo cáo định kỳ
• Lưu báo cáo trong hệ thống giám sát tập trung nếu có
Kết quả sau khi thực hiện
Sau khi hoàn tất cấu hình, hệ thống Linux sẽ ghi nhận được các sự kiện quan trọng thông qua Audit Log. Quản trị viên có thể theo dõi thay đổi file nhạy cảm, kiểm tra hành vi đăng nhập và điều tra các thao tác bất thường.
Việc giám sát hiệu quả với Audit Log trong Linux giúp tăng khả năng kiểm soát hệ thống, giảm rủi ro bảo mật và hỗ trợ quá trình vận hành máy chủ ổn định hơn.
Các lỗi thường gặp
Lỗi: Không tìm thấy lệnh auditctl
Nguyên nhân:
• Hệ thống chưa cài đặt gói auditd
• Gói audit không được cài đầy đủ
• Biến môi trường PATH chưa nhận đúng lệnh
Cách xử lý:
• Cài đặt auditd theo đúng hệ điều hành
• Kiểm tra lại đường dẫn lệnh auditctl
• Đăng nhập lại hoặc sử dụng quyền root để thực hiện
Lỗi: auditd không khởi động được
Nguyên nhân:
• File cấu hình audit bị sai
• Rule audit không hợp lệ
• Dịch vụ bị lỗi do xung đột cấu hình
Cách xử lý:
• Kiểm tra trạng thái dịch vụ auditd
• Kiểm tra rule vừa thêm
• Xóa rule lỗi và khởi động lại dịch vụ
Lỗi: Không thấy log trong audit.log
Nguyên nhân:
• Chưa có rule giám sát phù hợp
• Dịch vụ auditd chưa chạy
• Hành động kiểm tra chưa phát sinh sự kiện
Cách xử lý:
• Kiểm tra trạng thái auditd
• Kiểm tra danh sách rule bằng auditctl -l
• Thực hiện thao tác thử trên file đang được giám sát
Lỗi: File audit.log tăng dung lượng quá nhanh
Nguyên nhân:
• Cấu hình quá nhiều rule
• Theo dõi thư mục có tần suất thay đổi cao
• Chưa cấu hình chính sách xoay vòng log
Cách xử lý:
• Rà soát lại rule audit đang sử dụng
• Chỉ giám sát các file và thư mục quan trọng
• Cấu hình logrotate hoặc chính sách lưu trữ log phù hợp
Khuyến nghị và lưu ý bảo mật
• Chỉ giám sát các file, thư mục và hành vi thực sự quan trọng
• Không cấp quyền chỉnh sửa Audit Log cho người dùng không cần thiết
• Đồng bộ thời gian hệ thống bằng NTP để log có timestamp chính xác
• Lưu Audit Log sang hệ thống log tập trung nếu có yêu cầu bảo mật cao
• Kiểm tra định kỳ các rule audit để tránh ghi log dư thừa
• Kết hợp Audit Log với SIEM hoặc hệ thống cảnh báo để phát hiện bất thường nhanh hơn
• Không xóa Audit Log khi chưa có bản sao lưu hoặc chưa hoàn tất điều tra sự cố
