# apt-get install clamav-daemon
# clamdscan --multiscan --verbose --move=/var/log/clama action_setup: Failed to get realpath of /var/log/clama ERROR: Could not connect to clamd on LocalSocket /var/run/clamav/clamd.sock: No such file or directory ----------- SCAN SUMMARY ----------- Infected files: 0 Total errors: 1 Time: 0.000 sec (0 m 0 s) Start Date: 2021:12:26 09:04:45 End Date: 2021:12:26 09:04:45
# apt-get install apparmor-utils
# aa-complain clamd
/etc/apparmor.d/usr.sbin.clamd
# /etc/init.d/clamav-daemon stop # /etc/init.d/apparmor restart # /etc/init.d/clamav-daemon start
# User clamav User root
# /etc/init.d/clamav-daemon restart # /etc/init.d/clamav-daemon status
#!/bin/bash PATH=/usr/bin:/bin TITLE="" TO="To: root\n" SENDMAIL=/usr/sbin/sendmail CLAMDSCAN=/usr/bin/clamdscan #SENDMAIL=echo # EXCLUDES=( /proc /sys /run /dev ); # OPT_EXCLUDES=( $(for e in "${EXCLUDES[@]}"; do echo "--excludes-dir=${e}"; done) ); # OPT_MULTI_THREAD= OPT_MULTI_THREAD=--multiscan VIRUS_MOVE_PATH=/var/log/clamav/virus function err_print { local msg="${@}"; printf "\x1b[31mclamav-run.sh: ${msg}\x1b[0m\n"; } if [ ! -d ${VIRUS_MOVE_PATH} ]; then mkdir -p ${VIRUS_MOVE_PATH}; fi # update definition # freshclam > /dev/null # full scan (multi-thread) # ${CLAMDSCAN} --multiscan --verbose --move=/var/log/clamav/virus / # full scan (single-thread) ${CLAMDSCAN} ${OPT_MULTI_THREAD} --verbose --move=${VIRUS_MOVE_PATH} / STATUS=$?; # report case ${STATUS} in 0 ) err_print "virus not found" TITLE="Subject: ClamAV scan OK" ;; 1 ) err_print "virus found (status = ${STATUS})" TITLE="Subject: ClamAV scan NG" ;; * ) err_print "error occured (status = ${STATUS})" TITLE="Subject: ClamAV scan Error" ;; esac echo -e ${TO}${TITLE} | cat - /var/log/clamav/clamav.log | ${SENDMAIL} -t unset err_print
# crontab -e ----------------------------------------------------- 0 0 * * * /root/bin/clamav-run.sh -----------------------------------------------------
CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
$ uname -a Linux martinu 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux
$ ls /boot/config-6.1.0-13-* /boot/config-6.1.0-13-amd64
$ rg FANOTIFY /boot/config-6.1.0-13-amd64 9380:CONFIG_FANOTIFY=y 9381:CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
$ clamdscan --fdpass --infected <path-to-scan-target>
option | description | remark |
---|---|---|
--fdpass | clamd デーモンの実行ユーザー(clamav)と違うユーザーでスキャンする | |
--infected | ウイルスであった場合のみ標準出力やログに出力 | |
--config-file=<path> | <path> を clamd デーモンにアクセスするための設定ファイルに指定する | デフォルトの設定ファイルを使用する場合は指定不要 (debian の場合は /etc/clamav/clamd.conf) |
--move=<path> | <path> を検出したウイルスファイルの移動先ディレクトリに指定する | |
--log=<path> | <path> をログファイルの場所に指定する | |
<path-to-scan-target> | スキャン対象のパス |