こんなにたくさん「警告!」が出ていた!!!!

内容は、「WARNING: Your ClamAV installation is OUTDATED!WARNING: Local version: 0.99.1 Recommended version: 0.99.2」です。

cronによるfreshclamの警告が多発!

cronによるfreshclamの警告が多発!

1時間ごとに、Webサーバとファイルサーバ(Samba)から、freshclam.logに警告が発せられています。1時間毎にウィルス定義ファイルを更新するのでfreshclamが実行され、そのときに警告が出ていました。5月4日から始まっています。

早速、対処に入ります。

【前提条件】

  1. 5月3日までは、正常であった。(警告なし)
  2. clamAVやfreshclam関連の設定ファイルは正しい

<手順>

  1. ログの調査(原因究明)
  2. 関連設定ファイル(confファイル)の調査と修正 
  3. clamavのアップデート(回避策)と確認
  4. 後始末

1.ログの調査(原因究明)

(1)freshclam.logの調査

Webサーバまたはファイルサーバにsshで、リモート接続し、端末で、確認します。

# cat /var/log/freshclam.log
------------------------------------------
ClamAV update process started at Sat May 7 00:10:02 2016
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99.1 Recommended version: 0.99.2
DON'T PANIC! Read http://www.clamav.net/documents/upgrading-clamav
main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
daily.cld is up to date (version: 21516, sigs: 93241, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 277, sigs: 47, f-level: 63, builder: neo)
--------------------------------------

簡単に言えば、「ClamAVが、古かけん、0.99.2がよかばい。あんたんとは、0.99.1やろ。」とのことです。
また、こうも言っています。「パニクらんでよかけん、”http://www.clamav.net/documents/upgrading-clamav”ば、読め。」

さっそく、”http://www.clamav.net/documents/upgrading-clamav”を覗いてみると、、、、ソースからインストールする方法と、yumでインストールする方法が書いてあります。私は、clamav-updateを利用しているのでその対処方法は書かれていません。

ちなみに、「Download」タブがあるので、そこをクリックすると下図のように、0.99.2がダウンロードできるみたいです。

http://www.clamav.net/downloadsから0.99.2がダウンロードできます。

http://www.clamav.net/downloadsから0.99.2がダウンロードできます。

2.関連設定ファイル(confファイル)の調査と修正 

(1)clamav-update.confの調査

clamav-updateを実行して、様子を見ます。

# freshclam --on-outdated-execute="/usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf"
ClamAV update process started at Sat May 7 19:48:35 2016
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99.1 Recommended version: 0.99.2
DON'T PANIC! Read http://www.clamav.net/documents/upgrading-clamav
main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
daily.cld is up to date (version: 21517, sigs: 98748, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 277, sigs: 47, f-level: 63, builder: neo)
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Sat May 7 19:49:39 2016 child exited: 2
Sat May 7 19:49:39 2016 PHASE extract: type method: command #0: failed
Sat May 7 19:49:39 2016 PHASE extract: failed#

ふむ、ふむ、、、「extract: failed(解凍失敗)」って、clamav-0.99.2.tar.gzの解凍に失敗している?もし、そうなら。clamav-0.99.2.tar.gzはどこ?

# updatedb
# locate clamav-0.99.2.tar.gz
#

何も表示されません。(後でわかったこと。clamav-update.confから、#   download to::: $Setting{option}->{dst} = tempdir(CLEANUP => 1);により、ダウンロード・インストール後には、削除される設定のようです。)

clamavのダウンロード元はどこなのだろうか?clamav-update.confで、確認します。

# vi /usr/local/etc/clamav-update.conf
167 # Centro de Computacao Cientifica e Software Livre (Curitiba, Br azil, BR)
168 # http://ufpr.dl.sourceforge.net/project/
169 $Setting{option}->{src}->{template} = 'http://jaist.dl.sourceforge.net/project/${NAME}/${NAME}/${VERSION}/${NAME}-${VERSION}.${EXT}';
170
171 # download to
172 $Setting{option}->{dst} = tempdir(CLEANUP => 1);

169行目付近に、http://jaist.dl.sourceforge.net/project/${NAME}/${NAME}/${VERSION}/${NAME}-${VERSION}.${EXT}とあります。これをそのまま、URLに置き換えると、http://jaist.dl.sourceforge.net/project/clamav/clamav/0.99.2/clamav-0.99.2.tar.gzとなります。ブラウザにこのURLを入力し、確認してみると、

sourceforge.netではclamavは0.99.1のまま。

sourceforge.netではclamavは0.99.1のまま。

このように、sourceforge.netのサイトが表示されました。clamavのバージョンは0.99.1となっています。

ちなみに、clamav-update.conf内で、clamavの最新バージョンのチェックは、下記のように、

72 # latest version
73 # command to get
74 $Setting{version}->{latest}->{command} = [qw(
75 host -t txt current.cvd.clamav.net
76 )];

clamav.netに接続しているようです。実行してみます。

# host -t txt current.cvd.clamav.net
current.cvd.clamav.net descriptive text "0.99.2:57:21518:1462673490:1:63:44586:277"

最新バージョンは、0.99.2ですね。

ためしに、wgetしてみます。

0.99.2で実行。

$ wget http://jaist.dl.sourceforge.net/project/clamav/clamav/0.99.2/clamav-0.99.2.tar.gz
--2016-05-07 14:00:28--  http://jaist.dl.sourceforge.net/project/clamav/clamav/0.99.2/clamav-0.99.2.tar.gz
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net) をDNSに問いあわせています... 150.65.7.130, 2001:df0:2ed:feed::feed
.....
.....
.....
downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2016-05-07 14:00:28 エラー 404: Not Found。

失敗しました。

次に、0.99.1で実行します。

$ wget http://jaist.dl.sourceforge.net/project/clamav/clamav/0.99.1/clamav-0.99.1.tar.gz
--2016-05-07 14:01:19--  http://jaist.dl.sourceforge.net/project/clamav/clamav/0.99.1/clamav-0.99.1.tar.gz
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net) をDNSに問いあわせています... 150.65.7.130, 2001:df0:2ed:feed::feed
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 15990867 (15M) [application/x-gzip]
`clamav-0.99.1.tar.gz' に保存中

100%[======================================>] 15,990,867   434KB/s   時間 18s  

2016-05-07 14:01:37 (883 KB/s) - `clamav-0.99.1.tar.gz' へ保存完了 [15990867/15990867]

成功しました。

これで、原因が明らかになりました。

<<結論>>

clamav-update.conf内で、最新版のバージョン情報を、「current.cvd.clamav.net」から取得する設定となっている。最新版は0.99.2である。しかし、実際にダウンロードするサイトは、「jaist.dl.sourceforge.net」からである。最新版は0.99.1である。

この違いにより、clamav-updateを実行すると、上記に示したように

WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99.1 Recommended version: 0.99.2

の警告が出ていたのです。

3.clamavのアップデート(回避策)と確認

(1)clamavのアップデート(回避策)

clamav-update.confの169行目付近にある、URLをclamav.netへ書き換えます。実際には、現在の設定をコメントアウトして追記しました。

# vi /usr/local/etc/clamav-update.conf
167 # Centro de Computacao Cientifica e Software Livre (Curitiba, Br azil, BR)
168 # http://ufpr.dl.sourceforge.net/project/
169 $Setting{option}->{src}->{template} = 'http://www.clamav.net/downloads/production/${NAME}-${VERSION}.${EXT}';←←追記
170 #$Setting{option}->{src}->{template} = 'http://jaist.dl.sourceforge.net/ project/${NAME}/${NAME}/${VERSION}/${NAME}-${VERSION}.${EXT}';←←コメントアウト
171
172 # download to
173 $Setting{option}->{dst} = tempdir(CLEANUP => 1);

保存後、clamav-updateを実行します。

# freshclam --on-outdated-execute="/usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf"
.....
.....
make[2]: ディレクトリ `/tmp/JGSQMNYx9B/clamav-0.99.2' に入ります
 /bin/mkdir -p '/usr/local/bin'
 /usr/bin/install -c clamav-config '/usr/local/bin'
 /bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libclamav.pc '/usr/local/lib/pkgconfig'
make[2]: ディレクトリ `/tmp/JGSQMNYx9B/clamav-0.99.2' から出ます
make[1]: ディレクトリ `/tmp/JGSQMNYx9B/clamav-0.99.2' から出ます
clamd を停止中:                                            [失敗]
clamd を起動中:                                            [  OK  ]
ERROR: /var/log/freshclam.log is locked by another process
ERROR: Problem with internal logger (UpdateLogFile = /var/log/freshclam.log).
Sat May  7 20:55:16 2016 child exited: 62
Sat May  7 20:55:16 2016 PHASE install: type method: command #2: failed
Sat May  7 20:55:16 2016 PHASE install: failed

最後の方に「失敗」や「install failed」と出ました。ちょっと、気になります。

(2)確認

バージョンを確認します。

# clamd -V ←←clamAVのバージョンを確認
ClamAV 0.99.2/21517/Sat May  7 01:42:13 2016

0.99.2となっています。

次に、freshclamを実行します。

# freshclam ←←freshclamの実行
ClamAV update process started at Sat May  7 21:07:14 2016
main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
daily.cld is up to date (version: 21517, sigs: 98748, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 277, sigs: 47, f-level: 63, builder: neo)

警告が消えています。インストールは成功したと判断しました。さらに、eicarのサイトから、テストウィルスを2つダウンロード(wget利用)して、clamasacanを実施してみました。

# clamscan --remove /home/masa
/home/masa/.bash_profile: OK
/home/masa/.bash_history: OK
/home/masa/eicar.com: Eicar-Test-Signature FOUND
/home/masa/eicar.com: Removed.
/home/masa/.bashrc: OK
/home/masa/.bash_logout: OK
/home/masa/eicarcom2.zip: Eicar-Test-Signature FOUND
/home/masa/eicarcom2.zip: Removed.
/home/masa/sysctl.txt: OK
 
----------- SCAN SUMMARY -----------
Known viruses: 4322412
Engine version: 0.99.2
Scanned directories: 1
Scanned files: 7
Infected files: 2
Data scanned: 0.05 MB
Data read: 0.02 MB (ratio 2.00:1)
Time: 30.736 sec (0 m 30 s)

clamavのバージョンが0.99.2で、きちんとテストウィルスが2つ検出され、削除されていました。
これで、clamavが最新版0.99.2にアップデートしたことになります。

4.後始末

後始末です。clamav-update.confでコメントアウトしたダウンロード元のサイトを元に戻し(#を外す)、追記したサイトをコメントアウトします。つまり、デフォルトの状態に戻しておきます。

以上、完了。