アーカイブ

‘Linux’ カテゴリーのアーカイブ

アンチウィルスソフト Clam AntiVirusのバージョンアップ

2014 年 12 月 15 日 Comments off

いつもメールでlogwatchの詳細が送られてきますがどうにもclamAVのバージョンが古い!!と怒られています。

--------------------- clam-update Begin ------------------------

The ClamAV update process was started 1 time(s)

Last ClamAV update process started at Thu Dec 11 04:47:19 2014

Last Status:
    WARNING: Your ClamAV installation is OUTDATED!
    WARNING: Local version: 0.98.4 Recommended version: 0.98.5
    DON'T PANIC! Read http://www.clamav.net/support/faq
    main.cld is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
    Downloading daily-19756.cdiff [100%]
    Downloading daily-19757.cdiff [100%]
    Downloading daily-19758.cdiff [100%]
    Downloading daily-19759.cdiff [100%]
    Downloading daily-19760.cdiff [100%]
    Downloading daily-19761.cdiff [100%]
    Downloading daily-19762.cdiff [100%]
    daily.cld updated (version: 19762, sigs: 1287147, f-level: 63, builder: neo)
    Downloading bytecode-243.cdiff [100%]
    bytecode.cld updated (version: 243, sigs: 45, f-level: 63, builder: dgoddard)
    Database updated (3711417 signatures) from db.jp.clamav.net (IP: 203.178.137.175)
    Clamd successfully notified about the update.

The following ERRORS and/or WARNINGS were detected when
running the ClamAV update process.  If these ERRORS and/or
WARNINGS do not show up in the "Last Status" section above,
then their underlying cause has probably been corrected.

WARNINGS:
    Local version: 0.98.4 Recommended version: 0.98.5: 1 Time(s)
    Your ClamAV installation is OUTDATED!: 1 Time(s)

何とかしなきゃと思いつつなかなかバージョンアップまでやっていませんでしたが最近いろいろとバージョンアップしているのでその勢いでやってみました。
clamAVのサイトを見ると0.98.5が最新バージョン
今のバージョンは、0.98.4
さほどの差はないと思いますが毎日のメールでは、OUTDATED!!なんて怒られているのでなんだか気分が悪いですね。
clamAV
ということでremiリポジトリでバージョンの確認

[root@local ~]# yum list --enablerepo=remi clamav
読み込んだプラグイン:downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * base: ftp.jaist.ac.jp
 * extras: ftp.jaist.ac.jp
 * remi: remi.kazukioishi.net
 * updates: ftp.jaist.ac.jp
base                                                 | 3.7 kB     00:00
extras                                               | 3.4 kB     00:00
extras/primary_db                                   |  30 kB     00:00
83 packages excluded due to repository priority protections
インストール済みパッケージ
clamav.x86_64            0.98.4-1.el6.rf                 @rpmforge

remiリポジトリにはないようです。現在は、rpmforgeでインストールされているようです。
しらべてみるとEPELリポジトリに最新があるようです。
早速確認

[root@local ~]# yum list --enablerepo=epel clamav
読み込んだプラグイン:downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
epel/metalink                                            | 4.6 kB     00:00
 * base: ftp.jaist.ac.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.jaist.ac.jp
 * updates: ftp.jaist.ac.jp
epel                                                     | 4.4 kB     00:00
epel/primary_db                                         | 6.4 MB     00:00
122 packages excluded due to repository priority protections
インストール済みパッケージ
clamav.x86_64                      0.98.4-1.el6.rf                  @rpmforge
利用可能なパッケージ
clamav.i686                        0.98.5-1.el6                     epel
clamav.x86_64                      0.98.5-1.el6                     epel

大丈夫そうです。
早速updateします。

[root@local ~]# yum -y update --enablerepo=epel clamav
読み込んだプラグイン:downloadonly, fastestmirror, priorities, security
更新処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.jaist.ac.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.jaist.ac.jp
 * updates: ftp.jaist.ac.jp
122 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package clamav.x86_64 0:0.98.4-1.el6.rf will be 更新
--> 依存性の処理をしています: clamav = 0.98.4-1.el6.rf のパッケージ: clamd-0.98.4-1.el6.rf.x86_64
---> Package clamav.x86_64 0:0.98.5-1.el6 will be an update
--> 依存性の処理をしています: clamav-db = 0.98.5-1.el6 のパッケージ: clamav-0.98.5-1.el6.x86_64
--> トランザクションの確認を実行しています。
---> Package clamav-db.x86_64 0:0.98.4-1.el6.rf will be 更新
---> Package clamav-db.x86_64 0:0.98.5-1.el6 will be an update
---> Package clamd.x86_64 0:0.98.4-1.el6.rf will be 更新
---> Package clamd.x86_64 0:0.98.5-1.el6 will be an update
--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================================
 パッケージ          アーキテクチャ      バージョン                  リポジトリー                容量
=============================================================================================================
更新:
clamav             x86_64                 0.98.5-1.el6               epel                       1.3 M
依存性関連での更新をします。:
clamav-db          x86_64                 0.98.5-1.el6                epel                      92 M
 clamd             x86_64                 0.98.5-1.el6                epel                      160 k

トランザクションの要約
============================================================================================================
アップグレード       3 パッケージ

総ダウンロード容量: 93 M
パッケージをダウンロードしています:
(1/3): clamav-0.98.5-1.el6.x86_64.rpm               | 1.3 MB     00:00
(2/3): clamav-db-0.98.5-1.el6.x86_64.rpm            |  92 MB     00:09
(3/3): clamd-0.98.5-1.el6.x86_64.rpm                | 160 kB     00:00
--------------------------------------------------------------------------------------------------------
合計                                           9.5 MB/s |  93 MB     00:09
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  更新                    : clamav-db-0.98.5-1.el6.x86_64                  1/6
  更新                    : clamav-0.98.5-1.el6.x86_64                     2/6
warning: /etc/freshclam.conf created as /etc/freshclam.conf.rpmnew
  更新                    : clamd-0.98.5-1.el6.x86_64                      3/6
warning: /etc/clamd.conf created as /etc/clamd.conf.rpmnew
  整理中                  : clamd-0.98.4-1.el6.rf.x86_64                    4/6
  整理中                  : clamav-0.98.4-1.el6.rf.x86_64                   5/6
  整理中                  : clamav-db-0.98.4-1.el6.rf.x86_64                6/6
  Verifying               : clamav-db-0.98.5-1.el6.x86_64                   1/6
  Verifying               : clamd-0.98.5-1.el6.x86_64                       2/6
  Verifying               : clamav-0.98.5-1.el6.x86_64                      3/6
  Verifying               : clamav-db-0.98.4-1.el6.rf.x86_64                4/6
  Verifying               : clamd-0.98.4-1.el6.rf.x86_64                    5/6
  Verifying               : clamav-0.98.4-1.el6.rf.x86_64                   6/6

更新:
  clamav.x86_64 0:0.98.5-1.el6

依存性を更新しました:
  clamav-db.x86_64 0:0.98.5-1.el6                 clamd.x86_64 0:0.98.5-1.el6
完了しました!

アップデート完了!!
早速バージョン確認
frechclamもやってみます。

[root@local ~]# clamd --version
ClamAV 0.98.5/19766/Fri Dec 12 02:41:30 2014
[root@www16071ue ~]# freshclam
ClamAV update process started at Fri Dec 12 22:09:56 2014
main.cld is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
Downloading daily-19767.cdiff [100%]
Downloading daily-19768.cdiff [100%]
Downloading daily-19769.cdiff [100%]
Downloading daily-19770.cdiff [100%]
daily.cld updated (version: 19770, sigs: 1288228, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 243, sigs: 45, f-level: 63, builder: dgoddard)
Database updated (3712498 signatures) from db.jp.clamav.net (IP: 120.29.176.126)
Clamd successfully notified about the update.

バージョンも最新になりました。そしてfreshclamしても怒られなくなりました。

意外にもあっさりと更新できました。
上記のログを見て気づいたのですが以下のファイルが書き換わってます。
warning: /etc/freshclam.conf created as /etc/freshclam.conf.rpmnew
warning: /etc/clamd.conf created as /etc/clamd.conf.rpmnew

freshclam.confを比較すると
旧ファイル DatabaseDirectory /var/lib/clamav → 新ファイル DatabaseDirectory /var/clamav
旧ファイル DatabaseOwner clam → 新ファイル DatabaseOwner clamav
となっていましたがDatabaseDirectoryは、変更した場所に新たにユーザclamav、グループclamavでディレクトリが出来上がってましたので問題なかったです。
新ファイル

[root@local var]# ls -la /var/clamav
合計 240488
drwxr-xr-x   2 clamav clamav      4096 12月 15 03:12 2014 .
drwxr-xr-x. 22 root   root        4096 10月 11 07:05 2014 ..
-rw-r--r--   1 clamav clamav    373760 12月 11 04:47 2014 bytecode.cld
-rw-r--r--   1 clamav clamav  82396160 12月 15 03:12 2014 daily.cld
-rw-r--r--   1 clamav clamav 163468288 10月 11 04:05 2014 main.cld
-rw-------   1 clamav clamav       312 12月 15 03:12 2014 mirrors.dat

旧ファイル

[root@local lib]# ls -la /var/lib/clamav
合計 94192
drwxr-xr-x   2  clam clam     4096 11月 19 21:25 2014 .
drwxr-xr-x. 27  root root     4096 12月 12 22:09 2014 ..
-rw-r--r--   1  clam  clam 31722542 11月 19 20:58 2014 daily.cvd
-rw-r--r--   1  clam  clam 64720632  9月 27 08:14 2013 main.cvd

古いディレクトリは、削除してもいいと思います。またユーザも/etc/passwdで確認すると新たにclamavもありましたが使わないclamは、userdelすればよいかと思います。もしclamavが無い場合は、useraddコマンドで新規に追加してください。

そしてclamd.confを比較するとfreshclamと同様
旧ファイル DatabaseDirectory /var/lib/clamav → 新ファイル DatabaseDirectory /var/clamav
旧ファイル User clam → 新ファイル #User clamav
こちらも同じようにディレクトリが変更してます。これは、そのままでOK
(通常は、root権限で動作させるのでコメントアウトさせるようです。ということで #User clamavのままでいいようです。)

あとは、/etc/init.d/clamd をrestartすればいいと思います。

[root@local]# /etc/init.d/clamd restart
Stopping Clam AntiVirus Daemon:                            [  OK  ]
Starting Clam AntiVirus Daemon: ERROR: LOCAL: Socket file /var/run/clamav/clamd.sock
  could not be bound: Permission denied
ERROR: Can't unlink the socket file /var/run/clamav/clamd.sock
                                                           [失敗]

どうも/var/run/clamavをみるとユーザグループがclamになっているのでユーザをclamavに変更

[root@local var]# cd  /var/run/clamav/
[root@local clamav]# ls -la
合計 8
drwxr-xr-x   2 clam clam 4096 12月 12 22:55 2014 .
drwxr-xr-x. 20 root root 4096 12月 12 22:09 2014 ..
[root@local clamav]# cd ..
[root@local run]# ls -la clamav
drwxr-xr-x   2 clam      clam      4096 12月 12 22:55 2014 clamav
[root@local run]# chown clamav. clamav
[root@local run]# /etc/init.d/clamd restart
Stopping Clam AntiVirus Daemon:                            [失敗]
Starting Clam AntiVirus Daemon:                            [  OK  ]

clamd起動OKとなりました。
そのほか上記で変更したログの場所やディレクトリの場所、cronで回していればシェルなどのユーザ、グループを確認して
clam → clamavに変更する。
私は、/etc/cron.dailyにfreshclam,virusscanというシェル名で作っているので変更あれば修正します。
下記を変更しました。(なお、CentOSで自宅サーバー構築を参考にさせていただいてます。)

/etc/cron.daily/freshclam

#!/bin/sh

### A simple update script for the clamav virus database.
### This could as well be replaced by a SysV script.

### fix log file if needed
LOG_FILE="/var/log/clamav/freshclam.log"
if [ ! -f "$LOG_FILE" ]; then
    touch "$LOG_FILE"
    chmod 644 "$LOG_FILE"
    chown clamav.clamav "$LOG_FILE"
fi

/usr/bin/freshclam \
    --quiet \
# "/var/lib/clamav" を"/var/clamav" に変更する 
    --datadir="/var/clamav" \     
    --log="$LOG_FILE"

/etc/cron.daily/virusscan

#!/bin/bash

PATH=/usr/bin:/bin

# clamd update リポジトリをepelでupdateしているので --enablerepo=epelを追記
yum -y update --enablerepo=epel clamd /dev/null 2>&1

# excludeopt setup
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
    for i in `cat $excludelist`
    do
        if [ $(echo "$i"|grep \/$) ]; then
            i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
            excludeopt="${excludeopt} --exclude-dir=^$i"
        else
            excludeopt="${excludeopt} --exclude=^$i"
        fi
    done
fi

# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \

# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

最初からclamavで設定していれば変更するところはないと思います。
あとは、メールでくるlogwatchなどで正常に運用されているか後ほど確認すればOKです。

——————— clam-update Begin ————————

The ClamAV update process was started 1 time(s)

Last ClamAV update process started at Sun Dec 14 05:00:59 2014

Last Status:
main.cld is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
Downloading daily-19773.cdiff [100%]
daily.cld updated (version: 19773, sigs: 1288386, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 243, sigs: 45, f-level: 63, builder: dgoddard)
Database updated (3712656 signatures) from db.jp.clamav.net (IP: 218.44.253.75)
Clamd successfully notified about the update.

———————- clam-update End ————————-