clamavの影響である日突然メールが配信されなくなるの巻

| コメント(0) | トラックバック(0)
毎日決まった時刻に送られてくる自動メルマガがなぜか今日は送られてこない。

おかしいなと思いつつもこういうときに限って日曜日で出かけたりしてる。


帰ってからサーバをチェックしてみるとなんと配送されてないキュー(deferedにたまりっぱなし)が約7000件・・・。


maillogをチェックしようにもどうやらログが膨大になりすぎてなかなか問題の部分が表示されない・・・

ようやく確認できたのが、

LibClamAV Warning: ***********************************************************
LibClamAV Warning: *** This version of the ClamAV engine is outdated. ***
LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq ***
LibClamAV Warning: ***********************************************************
LibClamAV Error: cli_hex2str(): Malformed hexstring: This ClamAV version has reached End of Life! Please upgrade to version 0.95 or later. For more information see www.clamav.net/eol-clamav-094 and www.clamav.net/download (length: 169)
LibClamAV Error: Problem parsing database at line 742
LibClamAV Error: Can't load daily.ndb: Malformed database
LibClamAV Error: cli_tgzload: Can't load daily.ndb
LibClamAV Error: Can't load /usr/XXXXXX/clamav/daily.cld: Malformed database
ERROR: Malformed database

とゆー部分。


最初の4行はいつものことなのでいいんだが、その後になんか見慣れないエラーが。

ここに気づくまでにかなりハマってしまい、amavisの設定ファイルやclamavの設定ファイルをいろいろいじくってみたり、パッケージをインストールしなおしてみたりしてもさっぱり変わらず、ようやくこちらのサイト
http://homepage.mac.com/yuji_okamura/iSawIt/archives/2010/04/entry_2452.html
のおかげで原因ぽいのがわかりました。

つまり簡単に言うと、clamavのバージョンを0.95以上にしないと、ついにファイルのスキャンができなくなりましたってゆーことらしい。

たしかにmaillogの他の部分を見てみると、「clamavのソケットに接続できなくてウイルススキャンに失敗しました」→「配送に失敗しました」みたいな流れがずらっと続いている。
(でもRPMで定期的に更新してんのはamavisの方なんだから、フツーは最初にamavisの方を疑うよなぁ・・・)


ほんでもって例のごとく、clamavの最新パッケージはyumから引っ張れないので以下を参考に、最新版のソースをダウンロードしてアップデートをしたわけです。

http://d.hatena.ne.jp/ooolong/20080102/1199294335
http://yokensaka.com/fedora/index.php?itemid=158

一個目のリンクはどうやら2個目のリンクの対処法を元に書いてあるみたいなんだけど、「yumのclamavパッケージ(依存も含む)を削除しておく」ってゆーのがウチの環境ではいけなかったみたいですね。
yumで削除したらinit.dのリストまでいじくられるわけで、デーモン(サービス)一覧からamavisデーモンまで無くなってしまったわけで・・・

ほんなわけで、再度yumからamavis-new、clamav、clamav-serverなどなど依存関係も含めてまるごとインストールしなおしてinit.dを元に戻した状態で、clamavの最新ソースを入れ直し(configure→make→make install)たらうまく行ったのです。


以上の作業が終わった時点から、溜まってたキューがどんどん送信され始めました。


ただ、GUIでサービス一覧を確認すると、amavisdは復活したけど今まであったclam.amavisdは復活しない。

でもコマンドで、
-----------------------------------

chkconfig --list

-----------------------------------
で確認すると、デーモン一覧にclamd.amavisdが入っている。
どうやらGUIにはパッケージでインストールしたものしか反映されないっぽい。

とりあえず、起動してみる。
-------------------------------------

/etc/init.d/clamd.amavisd start

------------------------------------


よし!起動成功!
ついでにランレベル3から5をONにする。

----------------------------------------

chkconfig clamd.amavisd on

---------------------------------------


デーモンを起動するとmaillogで騒いでた、「clamd.sock」が「/var/spool/amavisd」の中に出現。

これで「clamd.sockが見つかりません」というエラーが解決でき、点と点がつながったわけだ。

あ、そうそう、freshclamの定期実行もデフォルトに戻ってしまうみたいなので、
「/etc/sysconfig/freshclam」を開いて、最後の行をコメントアウトする。

-----------------------------------------------------------------------

FRESHCLAM_DELAY=disabled-warn # REMOVE ME
     ↓
#FRESHCLAM_DELAY=disabled-warn # REMOVE ME

----------------------------------------------------------------------


しかしclamavのおかげで費やした労力は今までも計りしれず、これからもこんな感じでやんなきゃなんねーのかと思うと、他のアンチウィルスソフトを使いたくなってしまうのは私だけではないはず。



トラックバック(0)

トラックバックURL: http://www.igreks.jp/blog/mt-tb.cgi/831

コメントする