Tại sao Linux vẫn cần quét virus?
Nhiều quản trị viên thường tin rằng Linux miễn nhiễm với mã độc. Thực tế, mình từng xử lý nhiều server bị dính script đào coin XMRig hoặc mã độc tống tiền sau khi lộ thông tin SSH. Một plugin WordPress lỗi thời cũng đủ để hacker biến server của bạn thành trạm phát tán spam. Trong những tình huống này, ClamAV là công cụ mã nguồn mở mạnh mẽ nhất để dọn dẹp hệ thống.
ClamAV không chỉ quét file hệ thống. Nó cực kỳ hiệu quả nếu bạn vận hành Mail Server hoặc File Server như Nextcloud. Hiện nay, cơ sở dữ liệu của ClamAV đã vượt mốc 8.5 triệu mẫu nhận diện mã độc. Bài viết này sẽ hướng dẫn anh em triển khai ClamAV trên CentOS Stream 9 theo chuẩn thực chiến.
Ba thành phần cốt lõi cần nhớ
Để không bị rối khi cấu hình, anh em cần phân biệt rõ ba khái niệm sau:
- clamscan: Công cụ quét thủ công. Mỗi lần chạy, nó sẽ load lại toàn bộ database virus vào RAM, khá tốn thời gian.
- freshclam: Dịch vụ tự động cập nhật các mẫu virus mới nhất từ server của Cisco.
- clamd (Daemon): Dịch vụ chạy ngầm. Nó giữ database virus trong RAM để quét tức thì, giúp tiết kiệm CPU khi quét số lượng file lớn.
Nếu server có RAM dư dả (trên 2GB), mình khuyên anh em nên dùng clamd để đạt hiệu suất cao nhất.
Các bước cài đặt chi tiết
Bước 1: Kích hoạt Repository EPEL
ClamAV không có sẵn trong kho mặc định của CentOS Stream 9. Bạn cần cài đặt EPEL (Extra Packages for Enterprise Linux) trước khi bắt đầu.
sudo dnf install epel-release -y
sudo dnf update -y
Bước 2: Cài đặt các gói ClamAV
Chúng ta sẽ cài đặt đồng thời engine quét, dịch vụ daemon và bộ cập nhật dữ liệu:
sudo dnf install clamav clamd clamav-update -y
Bước 3: Cấu hình SELinux (Quan trọng)
Đây là nguyên nhân chính khiến ClamAV báo lỗi Permission Denied dù bạn dùng quyền root. CentOS Stream 9 kiểm soát quyền truy cập rất chặt chẽ. Hãy chạy hai lệnh sau để cấp phép cho trình quét:
sudo setsebool -P antivirus_can_scan_system 1
sudo setsebool -P clamd_use_jit 1
Bạn có thể kiểm tra lại bằng lệnh: getsebool -a | grep antivirus.
Bước 4: Cập nhật Database Virus lần đầu
Trước khi quét, hệ thống cần dữ liệu mới nhất. File cấu hình mặc định tại /etc/freshclam.conf thường đã sẵn sàng để sử dụng.
Kích hoạt cập nhật bằng lệnh:
sudo freshclam
Nếu gặp lỗi 403, có thể do IP của bạn bị rate limit. Hãy đợi khoảng 15 phút rồi thử lại.
Bước 5: Cấu hình Clam Daemon (clamd)
Để clamd hoạt động, chúng ta cần chỉnh sửa file /etc/clamd.d/scan.conf. Hãy mở file bằng vi hoặc nano và thực hiện hai thay đổi:
- Bỏ dấu # ở dòng
LocalSocket /run/clamd.scan/clamd.sock. - Đảm bảo dòng
Exampleđã được comment lại (thêm dấu # vào trước).
Kích hoạt dịch vụ chạy cùng hệ thống:
sudo systemctl enable clamd@scan --now
Kỹ thuật quét mã độc thực tế
Sử dụng clamscan cho thư mục web
Giả sử bạn nghi ngờ mã độc nằm trong thư mục /var/www/html. Hãy dùng lệnh sau để quét sâu và chỉ hiển thị các file có vấn đề:
clamscan -r -i /var/www/html
Giải thích tham số:
-r: Quét xuyên suốt các thư mục con.-i: Chỉ in ra danh sách file bị nhiễm (Infected), giúp bạn dễ theo dõi hơn.
Tự động hóa với Cronjob
Việc quét thủ công rất mất thời gian. Mình thường thiết lập script quét vào 2 giờ sáng mỗi ngày. Tạo file /etc/cron.daily/clamav_scan với nội dung sau:
#!/bin/bash
SCAN_DIR="/home /var/www/html"
LOG_FILE="/var/log/clamav/daily_scan.log"
/usr/bin/clamscan -r -i $SCAN_DIR > $LOG_FILE
Nhớ cấp quyền thực thi: chmod +x /etc/cron.daily/clamav_scan.
Lưu ý về hiệu năng và RAM
ClamAV nổi tiếng là “sát thủ” ngốn RAM. Khi load database, dịch vụ clamd có thể chiếm từ 1.2GB đến 1.5GB RAM. Nếu server của bạn chỉ có 2GB RAM, hệ thống rất dễ rơi vào tình trạng treo do OOM (Out Of Memory).
Kinh nghiệm của mình cho server cấu hình thấp:
- Không chạy
clamdngầm, chỉ dùngclamscankhi cần thiết. - Luôn tạo file Swap tối thiểu 2GB để hỗ trợ bộ nhớ ảo.
- Chỉ quét các thư mục trọng yếu thay vì quét toàn bộ ổ cứng
/.
Ngoài ra, trên CentOS Stream 9, tên dịch vụ là clamd@scan. Nếu bạn copy script từ các hướng dẫn cũ cho CentOS 7, hãy nhớ cập nhật lại tên này.
Lời kết
ClamAV là lớp bảo vệ cực kỳ đáng tin cậy cho máy chủ Linux. Dù không thể ngăn chặn 100% các cuộc tấn công tinh vi, nó vẫn là công cụ lọc mã độc hiệu quả nhất hiện nay. Hãy kết hợp ClamAV với một Firewall vững chắc để giữ cho hệ thống của bạn luôn an toàn.

