しらないうちにAmazonLinuxの標準リポジトリにclamavが追加されていたので使ってみました。
インストール
# yum install clamav clamav-update clamav-scanner-sysvinit
パッケージ名とかがrpmforgeのものと結構違います。。
clamav…スキャンを実行したりするフロントエンドです。
clamav-update…定義ファイルをアップデートするプログラムです(freshclam)。
clamav-scanner-sysvinit…clamdのinitスクリプトです。
ウィルス定義ファイルのアップデート設定
/etc/freshclam.confを以下のように編集します。
# Comment or remove the line below.
Example
↓コメントアウト
# Comment or remove the line below.
#Example
#DatabaseDirectory /var/lib/clamav
↓コメント解除
DatabaseDirectory /var/lib/clamav
#UpdateLogFile /var/log/freshclam.log
↓コメント解除
UpdateLogFile /var/log/freshclam.log
#DatabaseOwner clamupdate
↓コメント解除
DatabaseOwner clamupdate
#DatabaseMirror db.XY.clamav.net
DatabaseMirror db.jp.clamav.net
※db.jp.clamav.netの行を追記。
これで
# freshclam
で定義ファイルのアップデートが出来るようになりますので、cronなどで定期実行させます。
clamdデーモンの起動設定
/etc/clamd.d/scan.confを以下のように編集します。
# Comment or remove the line below.
Example
↓コメントアウト
# Comment or remove the line below.
#Example
#LocalSocket /var/run/clamd.scan/clamd.sock
↓コメント解除
LocalSocket /var/run/clamd.scan/clamd.sock
これでclamdのデーモンが起動できます。
# service clamd.scan start
# chkconfig clamd.scan on
…が、このままだと
# clamdscan ./
ERROR: Can't parse clamd configuration file /etc/clamd.conf
などと出てscanできませんでした。
clamdscanがclamdの設定ファイルが/etc/clamd.confにあることを期待しているみたいですので、以下のようにシンボリックリンクを張って回避します。
# ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
これでいけるとおもいきや、
# clamdscan /root
/root: lstat() failed: Permission denied. ERROR
----------- SCAN SUMMARY -----------
Infected files: 0
Total errors: 1
Time: 0.000 sec (0 m 0 s)
のように、/rootの下は検索ができませんでした。。
clamdはclamscanというユーザで実行されるので、rootで実行させる必要があるみたいです。
/etc/clamd.d/scan.confで
#User clamscan
User root
してclamd.scanをrestartしました。これで/root配下でもどこでもスキャンできるようになります。
よくない感じもしますが。。