Bảo vệ cốt lõi: Tại sao việc quét hệ thống lại quan trọng
Hầu hết các quản trị viên dành hàng giờ để thắt chặt SSH hoặc tinh chỉnh tường lửa. Tuy nhiên, chúng ta thường bỏ qua những gì xảy ra nếu một tệp độc hại thực sự lọt được vào ổ đĩa. Cho dù đó là một PHP shell được tải lên thông qua lỗ hổng web hay một rootkit ẩn còn sót lại sau một vụ xâm nhập nhỏ, bạn cần một cách để tìm ra các mối đe dọa đang nằm trên hệ thống tệp của mình. Tôi đã từng kiểm định một máy chủ phát tán tới 10GB thư rác mỗi ngày trong nhiều tháng. Quản trị viên không hề hay biết vì họ thiếu các bước kiểm tra tính toàn vẹn của tệp cơ bản.
Để ngăn chặn điều này, tôi dựa vào hai tiêu chuẩn đáng tin cậy trong ngành: ClamAV và Rkhunter. Chúng phục vụ các mục đích khác nhau, nhưng kết hợp lại, chúng tạo thành một lớp phòng thủ vững chắc cho bất kỳ bản phân phối Linux nào.
So sánh các phương pháp: Chữ ký và Tính toàn vẹn
Trước khi chạy lệnh, bạn phải hiểu cách các công cụ này hoạt động. Chúng không làm cùng một công việc, và việc sử dụng công cụ này mà thiếu công cụ kia sẽ để lại lỗ hổng trong hệ thống phòng thủ của bạn.
ClamAV: Kẻ săn tìm Malware
ClamAV là một công cụ diệt virus truyền thống. Nó quét các tệp dựa trên một cơ sở dữ liệu khổng lồ với hơn 8 triệu chữ ký malware đã biết. Nó hoàn hảo để quét các tệp người dùng tải lên, tệp đính kèm email hoặc các thư mục web. Tuy nhiên, nó có thể bỏ sót một tệp thực thi hệ thống bị sửa đổi như /bin/ls nếu phiên bản độc hại cụ thể đó chưa được lập chỉ mục.
Rkhunter: Công cụ kiểm định hệ thống
Rkhunter (Rootkit Hunter) là một công cụ kiểm định pháp y. Nó tìm kiếm “rootkit”—các công cụ được thiết kế để che giấu sự hiện diện của kẻ tấn công. Nó xác minh các tệp thực thi hệ thống so với các mã băm (hash) chuẩn đã biết, tìm kiếm các thư mục ẩn và kiểm tra các cổng đáng ngờ như 31337. Nó ưu tiên tính toàn vẹn của hệ điều hành hơn là tìm kiếm một virus ngẫu nhiên trong thư mục gốc của người dùng.
Sự đánh đổi
ClamAV
- Ưu điểm: Mã nguồn mở, được cập nhật hàng ngày và cực kỳ hiệu quả chống lại các web shell phổ biến.
- Nhược điểm: Ngốn tài nguyên. Một đợt quét toàn diện trên một VPS cấu hình thấp với 1GB RAM có thể khiến CPU tăng vọt lên 90% và có khả năng gây ra lỗi tràn bộ nhớ (OOM).
Rkhunter
- Ưu điểm: Cực kỳ nhẹ. Nó bắt được các backdoor tinh vi mà phần mềm diệt virus thường bỏ qua và gắn cờ các lỗi cấu hình hệ thống.
- Nhược điểm: Dễ gây ra cảnh báo giả (false positives). Bất cứ khi nào bạn cập nhật các gói phần mềm, mã băm của tệp sẽ thay đổi, khiến Rkhunter gắn cờ chúng là đáng ngờ cho đến khi bạn cập nhật lại cơ sở dữ liệu chuẩn.
Chiến lược thiết lập khuyến nghị
Tôi khuyên bạn nên sử dụng phương pháp kết hợp thay vì kiểm tra thủ công, rời rạc. Tôi cấu hình ClamAV để quét các thư mục web hàng đêm. Đồng thời, Rkhunter chạy kiểm tra hệ thống vào mỗi buổi sáng và gửi báo cáo qua email. Điều này đảm bảo rằng nếu ai đó sửa đổi công cụ hệ thống hoặc tải lên một shell, bạn sẽ biết trong vòng 24 giờ.
Khi thiết lập một máy chủ mới, tôi bắt đầu bằng việc bảo mật các tài khoản quản trị. Tôi sử dụng trình tạo mật khẩu tại toolcraft.app/vi/tools/security/password-generator để tạo các chuỗi 32 ký tự. Nó chạy hoàn toàn trong trình duyệt, vì vậy không có dữ liệu nào được gửi qua mạng. Sau khi quyền truy cập đã được khóa chặt, tôi chuyển thẳng sang các công cụ quét.
Triển khai: Cài đặt ClamAV
Mặc dù tôi đang sử dụng cú pháp Ubuntu/Debian ở đây, nhưng logic này hoàn toàn tương tự cho các hệ thống dựa trên RHEL sử dụng dnf.
1. Cài đặt các gói
sudo apt update
sudo apt install clamav clamav-daemon -y
2. Cập nhật cơ sở dữ liệu chữ ký
Bạn cần các định nghĩa mới nhất trước khi quét. Công cụ freshclam sẽ xử lý việc này. Nếu dịch vụ đã chạy ngầm, bạn phải dừng nó tạm thời để chạy cập nhật thủ công.
sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam
3. Chạy quét thủ công
Để quét thư mục gốc web của bạn và chỉ hiển thị các tệp bị nhiễm, hãy sử dụng lệnh này:
clamscan -r -i /var/www/html
Cờ -r cho phép quét đệ quy. Cờ -i là một “cứu cánh”; nó ẩn các thông báo “OK” để bạn chỉ thấy các mối đe dọa thực sự.
Triển khai: Cài đặt Rkhunter
Rkhunter yêu cầu một chút “đào tạo” để nhận biết một hệ thống khỏe mạnh trông như thế nào.
1. Cài đặt Rkhunter
sudo apt install rkhunter -y
2. Tạo cấu hình cơ sở (Baseline)
Trên một hệ thống sạch, bạn phải chụp lại các thuộc tính tệp hiện tại. Đây sẽ là “nguồn sự thật” cho tất cả các lần kiểm tra trong tương lai.
sudo rkhunter --propupd
3. Chạy kiểm tra hệ thống
Để chạy kiểm tra và bỏ qua các lời nhắc tương tác, hãy sử dụng cờ --sk:
sudo rkhunter --check --sk
Xem lại các bản ghi tại /var/log/rkhunter.log. Đừng hoảng sợ nếu bạn thấy các cảnh báo. Nhiều bản phân phối Linux tùy chỉnh các tệp thực thi theo cách khiến Rkhunter kích hoạt cảnh báo. Nhiệm vụ của bạn là điều tra và xác nhận xem chúng có phải là thay đổi hợp lệ hay không.
Tự động hóa quy trình bảo mật
Quét thủ công rất dễ bị lãng quên. Tôi tự động hóa việc này bằng cách tạo một script Cron hàng ngày tại /etc/cron.daily/security-scan:
#!/bin/bash
# Cập nhật âm thầm các định nghĩa ClamAV
/usr/bin/freshclam --quiet
# Quét thư mục web và ghi kết quả vào log
/usr/bin/clamscan -r -i /var/www/html > /var/log/clamav/daily_scan.log
# Chạy kiểm tra và cập nhật Rkhunter
/usr/bin/rkhunter --versioncheck --quiet
/usr/bin/rkhunter --update --quiet
/usr/bin/rkhunter --check --sk --quiet
Đừng quên cấp quyền thực thi cho script:
sudo chmod +x /etc/cron.daily/security-scan
Xử lý các bản cập nhật
Một vấn đề thường gặp xảy ra sau khi chạy apt upgrade. Rkhunter có thể sẽ gắn cờ /bin/bash hoặc /bin/ls vì các thuộc tính tệp của chúng đã thay đổi trong quá trình cập nhật. Điều này là bình thường. Mỗi khi bạn cập nhật hệ thống, hãy chạy sudo rkhunter --propupd để làm mới cơ sở dữ liệu chuẩn và dừng các cảnh báo.
Lời kết
Bảo mật không phải là một công việc “thiết lập một lần rồi quên”. ClamAV và Rkhunter sẽ không ngăn chặn một cuộc khai thác trong thời gian thực, nhưng chúng cung cấp khả năng hiển thị cần thiết để phát hiện một vụ xâm nhập sau khi nó xảy ra. Kết hợp các công cụ này với mật khẩu mạnh và cập nhật thường xuyên là cách thiết thực nhất để giữ cho môi trường của bạn an toàn mà không cần một ngân sách khổng lồ như các doanh nghiệp lớn.

