So-net無料ブログ作成

ClamAVのウイルス情報の更新エラーへの対応 [Linux]

ClamAV のウイルス情報の更新時に、時々エラーが発生する。
また、この場合にはウイルスチェックでもエラーが発生する。
以下の記述は、備忘録として、この事象への対応方法をまとめたものである。

[ソフトウェアのバージョン]
・clamav 0.99.2
・OS: Debian 8/9、CentOS 6/7

1. 発生事象


(1) ウイルス情報の更新時のエラー


freshclam の実行時に、下記のようなエラーが発生する。

ClamAV update process started at Mon Aug  7 04:00:01 2017
main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: \
sigmgr)
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.local.clamav.net (IP: 120.29.176.126)
Trying host db.local.clamav.net (27.96.54.66)...
Downloading daily-23639.cdiff [100%]
WARNING: [LibClamAV] cli_tgzload: Invalid checksum for file daily.hdb
WARNING: [LibClamAV] Can't load /usr/local/tools/clamav/lib/clamav/\
clamav-a91f125d25aeacd304ebb2e1aeb81814.tmp/\
clamav-677b156a3fc4f33d7fe701aa680c0c20.cld: Malformed database
ERROR: Failed to load new database: Malformed database
WARNING: Database load exited with status 55
ERROR: Failed to load new database
(status=55)


・daily.cld のダウンロードで問題が発生する。
・/usr/local/tools/clamav/lib/clamav は /var/lib/clamav のリンク元である。


(2) ウイルスチェック時のエラー


clamscan の実行時に、下記のようなエラーが発生する。

LibClamAV Error: cli_tgzload: Invalid checksum for file daily.hdb
LibClamAV Error: Can't load /var/lib/clamav/daily.cld: Malformed database
ERROR: Malformed database

----------- SCAN SUMMARY -----------
Known viruses: 523608
Engine version: 0.99.2
Scanned directories: 0
Scanned files: 0
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 0.887 sec (0 m 0 s)
(status=2)


・ウイルス情報の更新時のエラーが原因で発生する。


2. 対処方法

2-1. ウイルス情報の更新時のエラーへの対応


freshclam.conf を編集し、設定を下記のように変更する。

・Debian 8/9 の場合: /etc/clamav/freshclam.conf
・CentOS 6/7 の場合: /etc/frechclam.conf

(1) DatabaseMirror

DatabaseMirror db.jp.clamav.net
DatabaseMirror db.us.clamav.net


ウイルス情報のダウンロード先を指定する。
・db.jp.clamav.net は、db.local.clamav.net の正式名称である。
・db.jp.clamav.net は、database.clamav.net の正式名称である。


(2) CompressLocalDatabase

CompressLocalDatabase yes


ローカル・データベースを圧縮する。
・daily.{cld,cvd} を gzip で圧縮するか指定する。
・本来は daily.cvd となると思うが、daily.cld で保存されることがある。
 (file コマンドの実行結果では、gzipped と表示される。)

(補足)
この設定により、更新時のエラーが発生しなくなったように思われる。


2-2. エラーが発生した時の対応


(1) ウイルス情報の更新時のエラー


(a) ウイルス情報の更新を再実行する。


改善しない場合にのみ、以降の手順を実施する。


(b) エラーに関係するファイルを削除する。

# rm -fr /var/lib/clamav/*.tmp
# rm -f /var/lib/clamav/daily.{cld,cvd}
# rm -f /var/lib/clamav/mirrors.dat


(c) ウイルス情報の更新を再実行する。


(2) ウイルスチェック時のエラー


(a) ウイルス情報の更新が異常終了している場合


ウイルス情報の更新時のエラーへの対応を行う。


(b) ウイルス情報の更新が正常終了している場合


ウイルスチェックを再実行する。


3. 備考


(1) ウイルス情報の更新方法


現在、下記の方針に沿った方法でウイルス情報を更新している。

(a) freshclam コマンドを使用する。

(b) freshclam を cron から定期的に実行する。


freshclam のデーモン・モードは使用しない。


(c) 独自にログファイルを作成する。


4. 追記


freshclam.conf の変更から 15 日目で、ウイルス情報の更新エラーが再発してしまった。
状況の経過は、下記の通りである。

・freshclam が status=55 で終了
 (ERROR: Failed to load new database: Malformed database)
・freshclam を再実行しても結果に変化なし
・/var/lib/clamav/{daily.cld,mirrors.dat} を削除
・freshclam が status=0 で終了

(補足)
上記のように再実行を行うスクリプトを cron から起動すればよいのかも知れない。



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。