linuxサーバーによく使われている無償版のアンチウイルスソフト ClamAVをインストールします。
以前はrepoforgeからインストールしていましたが最近は更新されていないみたいだし、epelからの方がなにかと便利なので、こちらを使います。

epelリポジトリを有効にます。
# yum install epel-release

通常はepelリポジトリを有効にしないように設定ファイルを修正します
# vi /etc/yum.repos.d/epel.repo
enabled=1

enabled=0

ClamAVをepelリポジトリからインストールします。
# yum install --enablerepo=epel clamav clamav-server clamav-server-systemd clamav-update clamav-scanner

ログを記録するディレクトリを作ります。
# mkdir  /var/log/clamav
# chmod 766  /var/log/clamav

一応、ウイルス定義ファイル更新設定ファイルのオリジナルを保存しておきます。
# cp /etc/freshclam.conf  /etc/freshclam.conf.org

ウイルス定義ファイル更新設定ファイルを編集します。
# vi /etc/freshclam.conf
---------------------------------------
#Example  Exsampleが有効だと動かないのでコメントアウトします

#UpdateLogFile /var/log/freshclam.log ログファイルの場所

UpdateLogFile  /var/log/clamav/freshclam.log

#LogFileMaxSize 2M ログファイルの最大サイズ設定

LogFileMaxSize 5M

#LogTime yes タイムスタンプを記録

LogTime yes

#LogRotate yes ローテーションをする

LogRotate yes

#DatabaseOwner clamupdate データベース所有者の指定

DatabaseOwner root

#NotifyClamd /path/to/clamd.conf 更新通知のための設定ファイル指定

NotifyClamd  /etc/clamd.d/scan.conf

定義ファイルの自動更新ファイル(clamav-update)が有ることを確認します
# cat /etc/cron.d/clamav-update
## Adjust this line...
MAILTO=root (MAILTO="" にするとメイル報告が送られないようにできます)
## It is ok to execute it as root; freshclam drops privileges and becomes
## user 'clamupdate' as soon as possible
0  */3 * * * root /usr/share/clamav/freshclam-sleep

一応、オリジナルのClam AntiVirus設定ファイルを保存しておきます。
# cp  /etc/clamd.d/scan.conf  /etc/clamd.d/scan.conf.org

Clam AntiVirus設定ファイルを編集します
# vi /etc/clamd.d/scan.conf
----------------------------------------
#Example (コメントアウトしてあることを確認)

#LogFile /var/log/clamd.scan

LogFile /var/log/clamav/clamd.log

#LogFileMaxSize 2M

LogFileMaxSize 5M

#LogTime yes

LogTime yes

#LogRotate yes

LogRotate yes

#LocalSocket /run/clamd.scan/clamd.sock

LocalSocket /var/run/clamd.scan/clamd.sock

#FixStaleSocket yes 異常終了時にソケットを削除する指定

FixStaleSocket yes

#ExcludePath ^/proc/ スキャンしないディレクトリを指定
#ExcludePath ^/sys/

ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/

User clamscan

User root

ウイルス定義ファイルを最新化します
# freshclam 

clamdをスタートします。
# systemctl start clamd@scan

clamdが自動起動するように設定します。
# systemctl enable clamd@scan

疑似ウイルスファイルが検出できるかテストします。
テスト用疑似ウイルスファイルを/rootにダウンロードします
# cd /root
# wget http://www.eicar.org/download/eicar.com

手動で/rootディレクトリをスキャンしてみます
この時にオプションで--remove をつけるとウィルスを発見したときに自動的に削除します。
# clamdscan -c /etc/clamd.d/scan.conf  /root

/root/eicar.com: Win.Test.EICAR_HDB-1 FOUND
----------- SCAN SUMMARY -----------
Infected files: 1   <---検出されました
Time: 13.666 sec (0 m 13 s)
Start Date: 2021:02:26 16:19:47
End Date:   2021:02:26 16:20:00

検出確認できたので疑似ウイルスファイル(eicar.com)を削除します。
# rm /root/eicar.com

指定時刻にウイルススキャンをするためには、動作時刻のランダム化をしないモジュール(cronie-noanacron)をインストールします。
・現在の設定を確認(何も設定されていません)
#  cat /etc/crontab 

・動作時刻のランダム化をしないモジュール(cronie-noanacron)をインストール
#  yum install cronie-noanacron

・動作時刻のランダム化をしているモジュール(cronie-anacron)をアンインストール
#  yum remove cronie-anacron

・実行時刻の設定
# vi  /etc/cron.d/dailyjobs
-------------------------------
# run-parts (ここ以下に記述されています)
15 3 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
45 3 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
10 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly

指定時刻にウイルススキャンをするためのスクリプトを設定します。
# vi /etc/cron.daily/clamdscan.sh
-------------------------------
#!/bin/sh
clamdscan -c /etc/clamd.d/scan.conf --remove /home /usr/local /usr/src /tmp /var /data

# chmod 755 /etc/cron.daily/clamdscan.sh


最終更新日時: 2023年 10月 13日(金曜日) 10:45