ClamAV でのウィルス定義ファイルのアップデートエラー

Linux で利用できるフリーのアンチウイルスソフト ClamAV で下のようなエラーをログに残して、ウィルス定義ファイルのアップデートが時々失敗していることがあります。


Mar 3 03:47:23 test freshclam[17356]: getfile: daily-19996.cdiff not found on remote server (IP: 203.178.137.175)
Mar 3 03:47:23 test freshclam[17356]: getpatch: Can't download daily-19996.cdiff from db.jp.clamav.net



ウィルス定義ファイルのダウンロード先のサーバへの接続が失敗しているようです。
サーバは /etc/freshclam.conf の DatabaseMirror 行で指定します。

CentOS6 のデフォルトでは下記のようになっています。
(注:後でこの行を修正します)

/etc/freshclam.conf

DatabaseMirror db.jp.clamav.net
DatabaseMirror db.local.clamav.net


DatabaseMirror を複数書いていると、先頭のサーバから順にアクセスします。
サーバへの接続に失敗すると、次のサーバへアクセスします。
アクセスは、DatabaseMirror 毎に MaxAttempts の回数リトライします。


さて、上記 CentOS6 のデフォルトのサーバ指定ですが、サーバを2つ指定しているにも関わらず、ウィルス定義ファイルのアップデートが時々失敗していました。


db.jp.clamav.net , db.local.clamav.net は DNSラウンドロビンで複数サーバからどれかが割りあたります。
nslookup db.jp.clamav.net , nslookup db.local.clamav.net コマンドを実行して見ると、両方とも下記になっていました。


120.29.176.126
203.178.137.175
203.212.42.128
218.44.253.75
219.94.128.99
27.96.54.66


これでは、db.jp.clamav.net での接続に失敗した場合、続けて db.local.clamav.net にアクセスしても、6分の1の確率で同じサーバにアクセスして失敗してしまいます。
また、いずれも日本のサーバなので cronで一斉にサーバにアップデートに行く等、ある時間帯にアクセスが集中する為に、サーバへのアクセスが失敗するのではないかと考えました。

そこで、DatabaseMirror 行で指定するサーバの1つは、アクセスが集中する時間帯をずらせるように、海外のものを指定してみました。
次のように db.us.clamav.net を指定します。


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


これでしばらく様子を見て、結果をこのブログでお知らせします。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 2

なるほど(納得、参考になった、ヘー)
面白い

この記事へのコメント

ぷ~
2018年05月20日 09:13
同じエラー出ました。結果知りたいです。
2018年05月20日 20:40
以前のことのなので前後のログは残っていません・・が、現在は問題なく動いています。

エラーは連続して発生していなければ問題ありません。
あるサーバでエラーが出ても、別のサーバでリトライし、そちらで成功するので。

ちょっと確証はありませんが、本記事執筆時点と現在では挙動が違うようで、db.jp.clamav.net で定義されている複数のサーバに、リトライごとにどれかに接続しなおしているようです。

この記事へのトラックバック