ClamAV là antivirus mã nguồn mở. Nó dùng để phát hiện virus, trojan, và malware. Chủ yếu dùng trên nền tảng Linux để quét thư mục người dùng truy cập qua FTP hoặc Samba, thư mục website, hoặc email trên mail server (là agent MTA).
Trong bài này, chúng tôi sẽ chỉ cách cài đặt, cấu hình và sử dụng ClamAV trên máy chủ chạy CentOS hoặc RHEL Linux.
Cài đặt ClamAV trên CentOS/RHEL
ClamAV không có trong kho Linux cơ bản, nên bạn cần dùng kho EPEL để cài trên máy chủ:
# yum install epel-release -y
Sau khi cài kho, tiến hành cài gói ClamAV. Dùng trình quản lý gói yum (hoặc dnf trên CentOS 8):
# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

Cấu hình cơ bản của ClamAV trên Linux
Để thiết lập cấu hình ClamAV riêng, xóa cấu hình mặc định trong /etc/clam.d/scan.conf.
# sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
Sau đó mở file cấu hình:
# nano /etc/clamd.d/scan.conf
Và bỏ comment dòng sau:
LocalSocket /run/clamd.scan/clamd.sock
Bạn cũng có thể bỏ comment các dòng cài đặt bạn cần. Ví dụ, bật logging hoặc cấu hình số kết nối tối đa.
File /etc/clamd.d/scan.conf chứa mô tả khá chi tiết tất cả cài đặt.
Để cập nhật cơ sở dữ liệu chữ ký virus cho ClamAV, dùng freshclam. Backup file cấu hình hiện tại:
# cp /etc/freshclam.conf /etc/freshclam.conf.bak
Sau đó chạy lệnh:
# sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
Và cập nhật định nghĩa antivirus:
# freshclam

Trong quá trình cập nhật, bạn có thể thấy lỗi nếu không tải được cập nhật. Freshclam sẽ tự tìm mirror để tải cập nhật thành công.
Để freshclam tự động kiểm tra cập nhật, chạy với tham số -d:
# freshclam -d— như vậy, nó sẽ kiểm tra cập nhật mỗi 2 giờ.
Để chạy dễ dàng hơn, tạo file service cho freshclam:
# nano /usr/lib/systemd/system/freshclam.serviceVà thêm nội dung:
[Unit] Description = freshclam After = network.target [Service] Type = forking ExecStart = /usr/bin/freshclam -d -c 4 Restart = on-failure PrivateTmp = true RestartSec = 10sec [Install] WantedBy=multi-user.targetReload daemon systemd:
# systemctl daemon-reloadSau đó chạy service và thêm vào khởi động:
# systemctl start freshclam.service # systemctl enable freshclam.service # systemctl status freshclam.service
Giống như bạn làm cho freshclam, tạo service cho ClamAV. File cấu hình đã tồn tại, nhưng bạn phải đổi tên:
# mv /usr/lib/systemd/system/clamd\@.service /usr/lib/systemd/system/clamd.serviceĐể thuận tiện, chúng ta xóa
\@.Cũng thay đổi cấu hình trong file:
[Unit] Description = clamd scanner daemon After = syslog.target nss-lookup.target network.target [Service] Type = forking ExecStart = /usr/sbin/clamd -c /etc/clamd.d/scan.conf # Reload the database ExecReload=/bin/kill -USR2 $MAINPID Restart = on-failure TimeoutStartSec=420 [Install] WantedBy = multi-user.targetSau đó chạy dịch vụ antivirus hoặc bật nó:
# systemctl start clamd.service # systemctl enable clamd.service
Cách quét virus với ClamAV?
Sau khi cấu hình dịch vụ ClamAV, bạn có thể quét bất kỳ thư mục máy chủ nào để tìm virus (chế độ scanner). Để quét thư mục chỉ định tìm virus, dùng lệnh:
# clamscan --infected --remove --recursive /var/www/
Với tham số này, antivirus sẽ xóa ngay file bị nhiễm. Nếu muốn chuyển file đáng ngờ đến thư mục riêng, chạy quét với tham số --move:
# clamscan --infected --recursive --move=/tmp/clamscan /var/wwwLệnh này sẽ quét toàn bộ nội dung thư mục chỉ định và chuyển file đáng ngờ đến /tmp/clamscan.
Như ta thấy, file bị nhiễm đã được chuyển đến thư mục chỉ định:
Bạn cũng có thể thêm tham số --log=/var/log/clamscan.log để ghi tất cả thông tin quá trình quét vào file log chỉ định:
Nếu muốn loại trừ một số thư mục khỏi quét, dùng tham số --exclude-dir:
# clamscan -i --recursive --move=/tmp/clamscan --log=/var/log/clamscan.log --exclude-dir="/var/www/administrator" /var/wwwĐể quét virus định kỳ, bạn có thể cấu hình cron job với cài đặt bạn muốn.
Có giao diện đồ họa cho ClamAV gọi là ClamTk.





