Lưu ý: Cần có quyền truy cập cấp root, nếu không bạn sẽ không thể thực hiện các lệnh bên dưới
Đăng nhập với quyền root và nhập các lệnh sau. Điều này sẽ bao gồm ClamAV trong cấu hình CustomBuild và biên dịch ClamAV:
# cd /usr/local/directadmin/custombuild ./build update ./build set clamav yes ./build set clamav_exim yes ./build set exim yes ./build set eximconf yes ./build set eximconf_release 4.5 ./build clamav ./build exim ./build exim_conf
Trong trường hợp bạn gặp lỗi sau khi thử khởi động ClamAV:
[root@server ~]# /etc/init.d/clamd start Starting clamd: LibClamAV Error: cli_loaddb(): No supported database files found in /usr/share/clamav ERROR: Can't open file or directory [FAILED]
hoặc một lỗi liên quan khác:
LibClamAV Error: cl_load(): Can't get status of /usr/share/clamav
Lỗi này đơn giản là cơ sở dữ liệu virus không thể được tìm thấy. Bạn có thể xây dựng lại cơ sở dữ liệu bằng cách sử dụng:
cd /usr/share mkdir -p clamav chown clamav:clamav clamav freshclam -v
Chỉnh sửa exim.conf và thêm vào sau "primary_hostname =":
av_scanner = clamd:127.0.0.1 3310
Bỏ qua bước trên nếu bạn đang chạy CustomBuild 2.0, vì nó bổ sung điều này cho bạn trong tệp sau: /etc/exim.clamav.load.conf
Trong exim.conf tìm "check_message:", và sao chép trên dòng tiếp theo các chỉ thị ClamAV bên dưới:
deny message = This message contains malformed MIME ($demime_reason) demime = * condition = ${if >{$demime_errorlevel}{2}{1}{0}} deny message = This message contains a virus or other harmful content ($malware_name) demime = * malware = */defer_ok deny message = This message contains an attachment of a type which we do not accept (.$found_extension) demime = bat:com:pif:prf:scr:vbs warn message = X-Antivirus-Scanner: Clean mail though you should still use an Antivirus
Khởi động lại exim:
/etc/init.d/exim restart
Bắt đầu ClamAV daemon lần đầu tiên
service clamd start (stop / restart)
Kiểm tra xem Clamd có chạy không:
netstat -tap | grep clamd
Mà sẽ cho một đầu ra tương tự như thế này:
tcp 0 0 localhost.local:dyna-access *:* LISTEN 4405/clamd
Đôi khi, cơ sở dữ liệu virus ClamAV bị hỏng sau khi cập nhật. Điều này ngăn daemon ClamAV chạy. Kịch bản tùy chọn bên dưới đảm bảo rằng:
Đầu tiên, tạo một tập tin thử nghiệm giả. Đây là một tệp trống mà clamd sẽ sử dụng để quét trong quá trình kiểm tra:
cd /usr/local/directadmin/scripts/custom echo "" > clamav.txt
Tạo một tập tin với tên "clamdcheck". Tập tin này sẽ chứa tập lệnh shell được sử dụng để kiểm tra ClamAV. Sử dụng: nano
hoặc vi clamdcheck
. Tập tin này nên được đặt trong /usr/local/directadmin/scripts/custom
directory. Thêm tập lệnh bên dưới và lưu tệp khi hoàn tất:
#!/bin/sh # path to an empty dummy test file testfile="/usr/local/directadmin/scripts/custom/clamav.txt" # path to the clamav database files without the ending "/" dbfolder="/usr/share/clamav" # path to the clamdscan executable scan="/usr/bin/clamdscan" # path to the freshclam executable freshdb="/usr/bin/freshclam" # number of times the script tries to kick start clamd trial=10 # email of server administrator email="user@domain.com" # server hostname (no modification needed) myhost=$(hostname) # email alert subject on failure subject="Clamd on ${myhost} is down!" # email alert body message on failure message="Clamd on ${myhost} is down!" output=$($scan $testfile | grep "SCAN SUMMARY") if [ -z "$output" ]; then echo "Clamd is not running!" echo "Now trying to start clamd..." for (( i=1; i<=$trial; i++ )) do echo "Trial $i..." /sbin/service clamd restart output=$($scan $testfile | grep "SCAN SUMMARY") if [ -n "$output" ]; then break else sleep 3 fi done if [ -z "$output" ]; then echo "Clamd is still not running!" echo "Now trying to refresh clamav database..." rm -Rf $dbfolder/* $freshdb /sbin/service clamd restart output=$($scan $testfile | grep "SCAN SUMMARY") if [ -z "$output" ]; then echo "Clamd is still not running!" echo "$message" | mail -s "$subject" "$email" echo "Giving up... email alert has been sent to administrator." else echo "Clamd is running now!" fi else echo "Clamd is running now!" fi else echo "Clamd is running!" fi
Đảm bảo rằng các đường dẫn là chính xác và bạn đã đặt địa chỉ e-mail chính xác của mình để cảnh báo trong trường in đậm.
Đừng quên kiểm tra:
chmod 755 clamdcheck
Cron là một trình nền lập lịch biểu sẽ chạy các chương trình và tập lệnh vào các thời điểm hoặc khoảng thời gian tùy ý. Chúng tôi cần thiết lập một Cronjob để đảm bảo tập lệnh của chúng tôi chạy theo một khoảng thời gian định kỳ (đừng đặt nó quá thường xuyên vì một quy trình Freshclam hoàn chỉnh sẽ mất một thời gian để hoàn thành):
crontab -e
Điều này sẽ đưa bạn vào trình soạn thảo mặc định của bạn. Thêm cronjob:
15,45 * * * * /usr/local/directadmin/scripts/custom/clamdcheck > /dev/null 2>&1
Sử dụng các cài đặt này cứ sau nửa giờ thì cronjob chạy. Đảm bảo lưu tệp và thoát
Để hiển thị tất cả các cronjobs:
crontab -l
Bạn có thể thêm một cronjob khác để cập nhật CSDL virus tự động:
crontab -e
Mã dưới đây đặt ví dụ cronjob để thực thi hàng ngày, vào lúc 5 giờ 38 phút sáng:
38 05 * * * sudo freshclam
Để kiểm tra tất cả các tệp trên máy tính, hiển thị tên của từng tệp:
clamscan -r /
Để kiểm tra tất cả các tệp trên máy tính, nhưng chỉ hiển thị các tệp bị nhiễm và rung chuông khi tìm thấy:
clamscan -r --bell -i /
Để kiểm tra các tập tin trong tất cả các thư mục nhà của người dùng:
clamscan -r /home
Để kiểm tra các tệp trong thư mục nhà USER và di chuyển các tệp bị nhiễm sang thư mục khác:
clamscan -r --move=/home/USER/VIRUS /home/USER
Để kiểm tra các tệp trong thư mục chính của USER và xóa các tệp bị nhiễm (CẢNH BÁO: Các tệp đã biến mất.):
clamscan -r --remove /home/USER
sẽ quét thư mục nhà của người dùng và xuất kết quả ra tệp đã chỉ định. Tùy chọn -i được sử dụng để chỉ báo cáo các tệp bị nhiễm.
clamscan -ril /var/log/clamscan.log /home
Khi sử dụng --exclude setting bạn có thể loại trừ các thư mục con khỏi quá trình quét.
clamscan --exclude=maildirectory -i -r /home
Khi sử dụng --remove chuyển đổi bạn có thể loại bỏ các tập tin bị nhiễm bệnh.
clamscan -ril /var/log/clamscan.log --remove /home
Khi chạy quét chiều dài, rất thuận tiện để khởi động screen session. Một screen session có thể được khởi động lại trong trường hợp bạn mất kết nối SSH, do lỗi kết nối hoặc hết thời gian của phiên.
Để bắt đầu screen session, hãy nhập screen, theo sau là lệnh clamscan mà bạn yêu cầu (xem phần tùy chọn quét để biết cú pháp chính xác):
screen [clamscan...]
Bạn có thể tách ra và đính kèm phiên màn hình. Trong trường hợp bạn bị mất kết nối, bạn sử dụng các lệnh sau để kết nối lại.
Liệt kê các phiên màn hình có sẵn.
screen -ls
Bây giờ bạn có thể đính kèm bằng cách sử dụng sau đây.
screen -r sessionname
hoặc
screen -rx
Bạn sẽ nhận được kết quả quét vào cuối. Chỉ các tập tin bị nhiễm sẽ được liệt kê. Bạn có thể tìm thấy các tập tin trong tập tin /var/log/clamscan.log. (grep từ FOUND) Bạn có thể xóa hoặc sửa các tệp này theo cách thủ công hoặc nếu không thì chạy lệnh bên dưới sẽ xóa vĩnh viễn tất cả các tệp bị nhiễm trong hệ thống của bạn (Đảm bảo chạy trong phiên màn hình)
clamscan --help
-h, --help Print help information and exit. -V, --version Print version number and exit. -v, --verbose Be verbose. -l FILE, --log=FILE Save scan report to FILE. -f FILE, --file-list=FILE Scan files listed line by line in FILE. -r, --recursive Scan directories recursively. All the subdirectories in the given directory will be scanned. These options can be used multiple times. -i, --infected Only print infected files. --remove[=yes/no(*)] Remove infected files. Be careful. --move=DIRECTORY Move infected files into DIRECTORY. Directory must be writable for the '' user or unprivileged user running clamscan. --copy=DIRECTORY Copy infected files into DIRECTORY. Directory must be writable for the '' user or unprivileged user running clamscan.
Bạn có khả năng sử dụng cơ sở dữ liệu malware/virus được biên dịch từ bên thứ 3 để mở rộng cơ sở dữ liệu quét của ClamAV. Một số nguồn bổ sung đáng tin cậy từ
Thêm các dòng cơ sở dữ liệu sau vào /etc/freshclam.conf
ở dưới cùng của tập tin:
#Malware Experts DatabaseCustomURL http://cdn.malware.expert/malware.expert.ndb DatabaseCustomURL http://cdn.malware.expert/malware.expert.hdb DatabaseCustomURL http://cdn.malware.expert/malware.expert.ldb DatabaseCustomURL http://cdn.malware.expert/malware.expert.fp #Linux Malware Detect DatabaseCustomURL http://www.rfxn.com/downloads/rfxn.ndb DatabaseCustomURL http://www.rfxn.com/downloads/rfxn.hdb #interserver.net DatabaseCustomURL http://sigs.interserver.net/interserver256.hdb DatabaseCustomURL http://sigs.interserver.net/interservertopline.db DatabaseCustomURL http://sigs.interserver.net/shell.ldb DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
malware.expert.ndb
is a Generic Hex pattern PHP malware, which can cause false positive alarms, because there are generic eval, base64 and other hex pattern signatures (very low false positive rate). We want to scan all .php files and check the false positives manually for malware. If some signature causes to you problems, you can whitelist them. It may contain false positive alerts due to normal PHP code having legit use for specific PHP patterns i.e. eval/base64. You may need to manually inspect files that are reported as malware.
malware.expert.hdb
is statics MD5 pattern for files, and there are no false positive.
malware.expert.ldb
is LDB signatures(read more), which use multi-words search for malware in files.
malware.expert.fp
is whitelisted, what we found is that cause false positive malware.
interserver256.hdb
100% known malware sha256 format
interservertopline.db
inserts into files, manual cleaning HEX
shell.ldb
99.9% known malware using logical signatures
whitelist.fp
MD5 checksums of false positives or common files