
Ubuntu日本語フォーラム

ログインしていません。
はじめまして、こんにちは。本日初投稿となりますcanonと申します。みなさん、よろしくお願いします。
昨日、新しいパソコンに「Ubuntu 8.10」をインストールし、アップデートした後で、セキュリティー対策に「ClamAV」と「KlamAV」をインストールしました。しかしKlamAVでの自動アップデートができません。(アップデートをしようとすると「Update Process died unexpectedly! Did you kill it manually?」というエラーが出ました)また、KlamAVでの手動アップデートもできない状態です(しようとすると、「Config file error.」というエラーが出ます)。
しかし端末で「sudo freshclam」と入力すると、このようにうまくアップデートができます。
(KlamAVでアップデートができていない環境で、「sudo freshclam」と打ったときの結果)
ClamAV update process started at Thu Feb 26 18:00:51 2009
main.cld is up to date (version: 50, sigs: 500667, f-level: 38, builder: sven)
daily.cld is up to date (version: 9048, sigs: 13826, f-level: 38, builder: ccordes)
グーグルで調べたり、フォーラムの過去ログなどを調べてみても該当するものはあまりなく、英語のフォーラムなどを機械翻訳してみたりしてもよく分かりませんでした。また、ClamAVのデーモン「clamav-freshclam」とぶつかっているのでないかと思い停止してやってみたり、「clamd.conf」や「freshclam.conf」をいじったり、設定を初期化したり、ウイルスデータベースのディレクトリを変えても変わりませんでした。
なお、KlamAVからのスキャンはできました。テストウイルスもしっかり検知しています。
ClamTKも以前試していましたが、少し使い勝手が悪くてやめました。
KlamAV側から自動アップデートを行うには、一体どのような設定やアクションを行えばよいでしょうか。
以上、よろしくお願いします。
最後の編集者: canon (2009-02-26 18:23:06)
オフライン
kanon による投稿:
しかしKlamAVでの自動アップデートができません。(アップデートをしようとすると「Update Process died unexpectedly! Did you kill it manually?」というエラーが出ました)また、KlamAVでの手動アップデートもできない状態です(しようとすると、「Config file error.」というエラーが出ます)。
当現象、私の環境でも再現しました。
少し話が逸れますが、以下、読んでくださいね。
まず言いたいのは、klamav側で手動・自動アップデートを行う必要はない、ということです。
ubuntuで提供されるclamavパッケージについては、デフォルト設定のままにしておけばよいです。
freshclamが-dオプション付で起動->常駐->定時チェックして、/var/lib/clamav内のファイルを最新状態に管理してくれるので、klamavでわざわざウィルス定義データベースを独自に作成管理し、手動・自動アップデートを行う必要性は全くない、と思うのです。
そして、klamavに関しては、ウィルス定義データベースはclamavが管理してくれている/var/lib/clamav内のファイルを利用するように設定し、ウィルススキャンだけのフロントエンドとして利用するのがよいかと思います。
klamav側で独自にウィルス定義データベースを管理し手動・自動アップデートを行いたい理由がよく分かりませんが、どうしても行いたいならば、以下を読んでください。
読むと分かると思いますが、自分でclamavをソースビルドしない限り実現できなさそうなので、そこまでしてやる意義はないでしょう。
2009/03/03追記 [--config-fileオプション の謎]については、私の勘違いでした。投稿#7をご覧ください。
[1) --config-fileオプション の謎]
ubuntuで提供されるclamavパッケージでは、どういうわけか、freshclamの設定ファイルを --config-fileオプションで上手く指定できないようなのです。
ただし、--config-file=/etc/clamav/freshclam.conf はOKです。
そして、これまたよく分からないのですが、clamavの公式HPから最新ソースファイルを落とし適当にビルドしてみたら、--config-fileオプションが使えます。
以下、ubuntuのclamavで --config-fileが何故か使えない例を具体例で示します。
$ sudo freshclam
○ 正常にアップデートできる
$ sudo freshclam --config-file=/etc/clamav/freshclam.conf
○ 正常にアップデートできる
$ cp /etc/clamav/freshclam.conf /tmp
$ sudo chmod 777 /tmp/freshclam.conf
$ sudo freshclam --config-file=/tmp/freshclam.conf
ERROR: Can't parse the config file /tmp/freshclam.conf
× アップデートに失敗する
最後のコマンドにstraceをかましてみると
$ sudo strace freshclam --config-file=/tmp/freshclam.conf 2>&1 | grep freshclam.conf
open("/tmp/freshclam.conf", O_RDONLY) = -1 EACCES (Permission denied)
write(2, "ERROR: Can\'t parse the config fi"..., 55ERROR: Can't parse the config file /tmp/freshclam.conf
となり、よく分かりませんが、Permission deniedとなっています。
777でも読めないなんてものすごく不思議な感じはしますが、何故かよく分かりません。
[2)klamavから実行されるコマンドラインについて]
次にklamavの話をします。
klamavから手動アップデートの際は、一時的な設定ファイルをテンポラリファイルに吐き、--config-fileオプションでそのテンポラリファイルを指定しつつ、freshclamを実行しています。
しかし、上記で述べたように、--config-fileオプションが使えないので、klamavからのfreshclam起動に失敗します。
2009/03/03追記 [--config-fileオプションは使えます。私の勘違いでした。投稿#7をご覧ください。
その時klamavから実行されるコマンドラインは次のようなものです。
freshclam --stdout --user 実行ユーザ --datadir=ウィルス定義データベースのフォルダ --config-file=テンポラリファイルのパス
テンポラリファイルに書き出される内容は次のようなものです。
DatabaseMirror database.clamav.net
DNSDatabaseInfo current.cvd.clamav.net
Foreground True
なお、klamavを
$ gksudo klamav
のようにroot権限で起動しても特に変化はなかったです。
---
参考までに「Config file error」というのは、klamavからfreshclamを起動してfreshclamが「ERROR: Can't parse the config file」でコケた場合に、klamav側が代わりに出すメッセージです。
「Update Process died unexpectedly! Did you kill it manually?」というのは、「Update Virus Database Automatically」がONの場合に、klamavからfreshclamを起動して上記と同じようにfreshclamがコケた場合に、そのようなメッセージを出すようになっています。
# そのメッセージが言わんとしてることがよく分かりませんが。
なお、これらのklamavの動きについては、全てソースコードを追って見て確認しています。
こんな事は開発した人か、そうでなければソースコードを見なければ分からなかったりします。
最後の編集者: STGSAGWAN (2009-03-03 22:12:07)
その謎の「777でも読めない」はAppArmorが誤爆してたりしますか?
https://bugs.launchpad.net/ubuntu/+source/klamav/+bug/310737
# /var/log/messagesに討ち死にした形跡が残っているのではないかと。
もしまだ再現できるようなら、dpkg -l | egrep 'klam|clam' の結果を添えてLPに「It still exists in (versions)」とかいう形でコメントして頂けると大変に助かります。
オフライン
canonです。
STGSAGWANさん、hitoさん、レスありがとうございます。
STGSAGWANさんへ
STGSAGWAN による投稿:
まず言いたいのは、klamav側で手動・自動アップデートを行う必要はない、ということです。
ubuntuで提供されるclamavパッケージについては、デフォルト設定のままにしておけばよいです。
freshclam が-dオプション付で起動->常駐->定時チェックして、/var/lib/clamav内のファイルを最新状態に管理してくれるので、 klamavでわざわざウィルス定義データベースを独自に作成管理し、手動・自動アップデートを行う必要性は全くない、と思うのです。
そして、klamavに関しては、ウィルス定義データベースはclamavが管理してくれている/var/lib/clamav内のファイルを利用するように設定し、ウィルススキャンだけのフロントエンドとして利用するのがよいかと思います。
そうですか。確かにそうですよね。KlamAVでアップデートしなくてもfreshclamデーモンがしっかりアップデートしてくれてますし、Klamavはウイルススキャンだけのフロントエンドとして使用すればよいわけですね。いや実はGUIで自動アップデートがしたくて、KlamAVをインストールして設定しようとしていたわけなんです。(ClamTKではできなかったので)でも今思えば、自動アップデート設定をCUIで行っても、別にかわりありませんよね。
「GUIでアップデート」するために、わざわさソースコードを取ってきてビルドするまでこだわっていないので、ここは「KlamAVをウイルススキャンのフロントエンド」として置きたいと思います。アドバイスありがとうございました。
hitoさんへ
hito による投稿:
その謎の「777でも読めない」はAppArmorが誤爆してたりしますか?
https://bugs.launchpad.net/ubuntu/+source/klamav/+bug/310737
こちらのURLも拝見しました。バグ登録されていたんですね・・・・・・。知りませんでした。
また詳しく調べてみようと思います。
あともう一つ質問です。(別トピックでたてたほうがよいのでしょうか?)
clamavやchkrootkitやrkhunterをcron等で定期的にスキャンし、ウイルス・ルートキットが見つかったときにメールにて通知したい設定を行うとき、メールの配信にメールサーバーを立てないといけないのでしょうか。どうしてもサーバーは立てたくありません。(セキュリティー関連で自信がないからです)
サーバーを一切立てずにメール通知設定を行うことは不可能でしょうか。いろいろ調べて見ましたがよく分かりませんでした。
オフライン
メールサーバーのセキュリティに作業コストをかけられない場合、「自分自身からのみ」メール送付を許す、という形でメールサーバーの設定を行うのが一般的です。
簡単にやるのであれば、
$ sudo apt-get install postfix
すると設定のためのウインドウが開きますので、ここで「ローカルのみ」を選択してください。これで自動的に自分自身からのみメール送信が可能な設定が行えます。
本当にローカルからのみ受け付けているかを確認するには、
$ sudo lsof -i |grep master
としてみてください。masterというのはpostfixの主になるプロセスで、これがlocalhostからの接続のみ受け付けている(下記参照)なら問題ないです。
master 19653 root 11u IPv4 87588996 TCP localhost:smtp (LISTEN)
master 19653 root 12u IPv6 87588998 TCP ip6-localhost:smtp (LISTEN)
ただ、厳しめのメールサーバーに送る場合は(「こちら」側の25が空いてないので)拒否される可能性もありますし、ISP側のOP25Bなどで外部への接続ができない場合はこれではメールが送れない可能性もあります。
オフライン
hitoさん、早速の返信ありがとうございます。なるほど、postfixで「ローカルのみ」の設定ですか。気づきませんでした。
hito による投稿:
ただ、厳しめのメールサーバーに送る場合は(「こちら」側の25が空いてないので)拒否される可能性もありますし、ISP側のOP25Bなどで外部への接続ができない場合はこれではメールが送れない可能性もあります。
そうなんです。こっちのプロバイダは確かそのような方針をとっていて、25番ポートから送れないようになっているのです。それでメールをメーラー(サンダーバードなど)で送信する時には、25番ポートを使わずに、別のポート(587とか)で送信しなければいけないのです。
たしか中継用メールサーバーへ中継するように設定すれば可能と書いてありましたが・・・・・・。
やはり「ローカル」の設定でも、ルーターのポート開放設定は必要なのでしょうか? 当方はフレッツ光なので、ルーターではなくCTUですが・・・・・・。
まだ「postfix」をインストールしていないので、もし必要であれば諦めようかとおもいます。
オフライン
hito による投稿:
その謎の「777でも読めない」はAppArmorが誤爆してたりしますか?
https://bugs.launchpad.net/ubuntu/+source/klamav/+bug/310737
# /var/log/messagesに討ち死にした形跡が残っているのではないかと。
前出のアップデートに失敗するケースを再度実行してみました。
$ sudo freshclam --config-file=/tmp/freshclam.conf
ERROR: Can't parse the config file /tmp/freshclam.conf
この直後に
$ tail -n 1 /var/log/messages
Mar 3 20:35:54 myserver1 kernel: [ 4954.501931] type=1503 audit(1236080154.830:9): operation="inode_permission" requested_mask="::r" denied_mask="::r" fsuid=0 name="/tmp/freshclam.conf" pid=13096 profile="/usr/bin/freshclam"
$ gksudo gedit /etc/apparmor.d/usr.bin.freshclam
閉じる中括弧の直前に、
/tmp/** rw,
を1行追加
apparmorを再起動
$ sudo /etc/init.d/apparmor restart
もう一度トライ
$ sudo freshclam --config-file=/tmp/freshclam.conf
ClamAV update process started at Tue Mar 3 20:54:14 2009
main.cld is up to date (version: 50, sigs: 500667, f-level: 38, builder: sven)
daily.cvd is up to date (version: 9065, sigs: 13972, f-level: 38, builder: arnaud)
これでアップデートに成功しました。
$ gksudo klamav
でklamavを立ちあげてマニュアルでアップデートも成功しました。
hito による投稿:
もしまだ再現できるようなら、dpkg -l | egrep 'klam|clam' の結果を添えてLPに「It still exists in (versions)」とかいう形でコメントして頂けると大変に助かります。
一応書いておきました。
https://bugs.launchpad.net/ubuntu/+source/klamav/+bug/310737/comments/2
# LPって後から書き込みを編集できないのですか?
# 英文法の一部を間違えてしまった。恥ずかしい。
あと書き:
まさか、AppArmorが関係しているとは思いもよりませんでした。
# 私は未だにAppArmorのことはよく分かっていませんが。
clamavが公式HPのソースビルドだと上手くいくのは、ソースビルドだからではなく、ソースビルドだと通常 freshclamavが /usr/local/bin/freshclamにインストールされるから、AppArmorの管理下でない、という事ですね。
ということで、[--config-fileオプション の謎]については、私の勘違いでした。
canonさん、hitoさん
勉強になりました。ありがとうございました。
最後の編集者: STGSAGWAN (2009-03-03 22:13:31)
遅れてすいません。STGSAGWANさん、返信ありがとうございます。
実を言いますと、canonも「AppArmor」が原因だったとはビックリです。canonの記憶では常駐保護モジュール「dazuko」を組み込むときにコンフリクトするとかなんとかで、その名前は聞いたことがあるのですが・・・・・・。(Ubuntuをインストールする前、Ubuntuで常駐保護ができないか調べていたときに、このフォーラムのあるトピックで得た情報です)
いろいろとお世話になり、またその詳細な原因や解決法が分かってほっとしましたし、勉強にもなりました。本当に有難うございました。
今後ともよろしくおねがいします。
オフライン