AmazonLinuxでclamavを使う

しらないうちに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配下でもどこでもスキャンできるようになります。
よくない感じもしますが。。