[opensuse-ja] clamdscan で lstat() failed, ERROR
野宮です. # また,あちらへPOSTしてしまいました.^^;; ともあれ, clamav + bogofilter + fetchmail + procmail でメールの取り込みをしています. clamav の Virus Database を更新すべく,freshscan を実行しましたところ,0.94 は Outdated したので,0.94.1 に Update するように!,とのことでしたので, Factory から clamav 0.94.1 を Yast2 経由でインストールしました(0.94.0 を削 除した上で,です). clamav 運用上の設定をし,テストとして, $ clamdscan -m 38 を実行しますと, /home/masaru/var/Mail/virus/38: lstat() failed. ERROR というエラーが返って来ます.因みに, $ clamscan 39 を実行しますと, 38: Email.Phishing.DblDom-116 FOUND ----------- SCAN SUMMARY ----------- Known viruses: 458604 Engine version: 0.94.1 Scanned directories: 0 Scanned files: 1 Infected files: 1 Data scanned: 0.00 MB Time: 1.991 sec (0 m 1 s) という結果が返って来ます. 何故.clamdscan では上記のようなエラーが出るのか,Google で色々調べてみまし たが,結果,何も解らず.... そこで,これまで問題が無かった clamav 0.94.0 に戻しましたが,同じ現象が発生 するようになり,今一度,clamav 0.94.1 を入れ,現在に至っています. とは言うものの,.procmailrc での設定,つまり, # -------------------------------------- # ClamAntivirus で、Virus をはじく # -------------------------------------- :0 HB * ! ? clamdscan -m --quiet - virus/. はちゃんと効いており,テストにウイルス・メールを添付したものを自分宛に送付 しますと,ちゃんと virus フォルダーに投げ込んで呉れてはいます. なら良いんでは,と仰るかも知れませんが,何とも気持ちが悪いので,コマンドで の clamdscan 実行時のエラーを吐かないようにしたいと思っています. その為のアドヴァイスをお願いしたく,宜しくお願いします. --- 野宮 賢 mail-to: nomiya @ galaxy.dti.ne.jp 「先端技術の開発は、優れた頭脳を持つ人間が集中しないと成功しない。 しかし、技術開発と、それが何をもたらすかを考えることは別だ。 一人の人間に二つは望めない。」 -- M. Crichton -- -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 松本です。 野宮 賢 / NOMIYA Masaru さんは書きました:
$ clamdscan -m 38
を実行しますと,
/home/masaru/var/Mail/virus/38: lstat() failed. ERROR
というエラーが返って来ます.
"lstat() failed" ということなので、単にパーミッションの問題ということで はないですか? # rcclamd status Checking for Clam AntiVirus daemon unused # exit $ mkdir test $ touch test/test.txt $ clamdscan -m test/ connect(): No such file or directory WARNING: Can't connect to clamd. $ clamscan -m test/ test/test.txt: Empty file - ----------- SCAN SUMMARY ----------- Known viruses: 458604 Engine version: 0.94 Scanned directories: 1 Scanned files: 0 Infected files: 0 Data scanned: 0.00 MB Time: 3.529 sec (0 m 3 s) …という感じで、clamdscan は clamd が動いていないと実行できないのに対し、 clamscan はユーザ権限で実行できます。 ちゃんとソース覗いていないんで当てずっぽうだったりしますが、clamdscan の 場合は clamd を呼び出して - つまり、vscan ユーザ権限で - スキャンを実行 しているので当該ファイルを読み込めないのに対し、clamscan の場合はコマン ド実行ユーザの権限でスキャンしているから読み込めている、と。 # そんなことは既に確認した上でのポストだったらすいません。(^ ^;) - -- □●□ _/_/_/ To be Happy! _/_/_/ □□● _/_/ Satoru Matsumoto _/_/ ●●● _/ helios_reds@gmx.net _/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkkYVY4ACgkQXnHIfHE6+z2AfwCfZ27u9HSwt9sfnVIkWdSYKE+M M3YAn3DHi58h7FDd4U1T45QiuN3oAE6v =hVZA -----END PGP SIGNATURE----- -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
野宮です.
In the Message;
Subject : Re: [opensuse-ja] clamdscan で lstat() failed, ERROR
Message-ID : <4918558F.5070302@gmx.net>
Date & Time: Tue, 11 Nov 2008 00:38:55 +0900
[松本さん] == Satoru Matsumoto
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 松本です。 野宮 賢 / NOMIYA Masaru さんは書きました:
小生>> /home/masaru/var/Mail/virus/38: lstat() failed. ERROR 小生>> 小生>> というエラーが返って来ます.
松本さん> "lstat() failed" ということなので、単にパーミッションの問題ということで 松本さん> はないですか?
小生もそう思いました.
ところが,
-rwxr-xr-x 1 root root 80648 2008-11-09 06:50 /usr/sbin/clamd
-rwxr-xr-x 1 root root 53744 2008-11-09 06:50 /usr/bin/clamdscan -rwxr-xr-x 1 root root 53904 2008-11-09 06:50 /usr/bin/clamscan
と問題無いように思えます.
いえ、そういうことではありません。実行ファイルの所有者が問題なのではな く、プロセスの所有者が誰なのか、ということです。 # ps aux なり top なりで clamd プロセスの実行ユーザを見てみてください。 clamdscan を実行しているのはユーザでも、clamdscan コマンドにより clamd を呼び出し、実際にスキャンしているのは clamd デーモン、つまり、vscan ユーザ権限でスキャンしているので、スキャンする対象のファイル/ディレクト リ(最初に野宮さんが挙げた例だと /home/masaru/var/Mail/virus/38 )のパー ミッションが、ユーザ vscan で読み込めるようになっていますか?ということ です。 # 通常、/home/USER 以下は、root を除く他のユーザ権限では # 入ること & 読み書きができないはずですよね。
松本さん> # rcclamd status 松本さん> Checking for Clam AntiVirus daemon unused
小生の場合は,
# rcclamd status Checking for Clam AntiVirus daemon running
となります.
松本さん> $ clamdscan -m test/ 松本さん> connect(): No such file or directory 松本さん> WARNING: Can't connect to clamd.
これは,
# /etc/init.d/clamd start # chkconfig clamd on
が欠落している為です.
えーっと。(^ ^;) これは、clamd デーモンが動いていないと clamdscan が実行できないというこ と、及び、clamscan であれば clamd デーモンが動いていなくても実行できます よ、ということを説明していただけなので、*わざと* clamd を止めておいた状 態での挙動を見せてたんですが…(笑)。
松本さん> ちゃんとソース覗いていないんで当てずっぽうだったりしますが、clamdscan の 松本さん> 場合は clamd を呼び出して - つまり、vscan ユーザ権限で - スキャンを実行 松本さん> しているので当該ファイルを読み込めないのに対し、clamscan の場合はコマン 松本さん> ド実行ユーザの権限でスキャンしているから読み込めている、と。
はい,clamdscan が clamd を呼べないのだと思っています. が,何故,procmail 上では問題なく動作するのか..... (_ _?
いえ、clamd が走っていれば、clamdscan コマンドで clamd を呼び出すことは できています。問題は「スキャンする対象のファイル/ディレクトリ」が、clamd プロセスの所有者である vscan ユーザ権限で読み取り(Virus を見つけたときに 削除/隔離することにするなら当然書き込み権限も必要でしょう)できる状態に なってますか?ということです。 - -- □●□ _/_/_/ To be Happy! _/_/_/ □□● _/_/ Satoru Matsumoto _/_/ ●●● _/ helios_reds@gmx.net _/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkkYZ68ACgkQXnHIfHE6+z2qhwCfcvL8cxVqFO8IeahhFZANiV7h N8sAn1qdQQFNMeIoCJ3wqlvbuf0AOsp5 =Z0rz -----END PGP SIGNATURE----- -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
野宮です.
大変なことに.... (ToT)
In the Message;
Subject : Re: [opensuse-ja] clamdscan で lstat() failed, ERROR
Message-ID : <491867B0.4020302@gmx.net>
Date & Time: Tue, 11 Nov 2008 01:56:16 +0900
[松本さん] == Satoru Matsumoto
松本です。 野宮 賢 / NOMIYA Masaru さんは書きました:
松本さん> clamdscan を実行しているのはユーザでも、clamdscan コマンドにより clamd 松本さん> を呼び出し、実際にスキャンしているのは clamd デーモン、つまり、vscan 松本さん> ユーザ権限でスキャンしているので、スキャンする対象のファイル/ディレクト 松本さん> リ(最初に野宮さんが挙げた例だと /home/masaru/var/Mail/virus/38 )のパー 松本さん> ミッションが、ユーザ vscan で読み込めるようになっていますか?ということ 松本さん> です。
松本さん> # 通常、/home/USER 以下は、root を除く他のユーザ権限では 松本さん> # 入ること & 読み書きができないはずですよね。
なるほど。 これは、vscan に permission を与えるということでしょうか?
一番簡単かつ害のなさそうな切り分け方法は、エラーが出たファイルをたとえば /tmp 以下にコピーしてきて、パーミッションをいろいろ変えて clamdscan を実 行してスキャンし、結果を比較してみることでしょうか。 また、これはセキュリティ上問題があるので実運用では推奨できませんが、テス トとして一時的に clamd を root 権限で走らせ # /etc/clamd.conf 内の User vscan となっているところを # User root に変更すればいいのかな…? その状態でどうなるか見てみる、ということでも切り分けはできると思います。 …ただ、clamdscan を使って clamd を呼び出しスキャンさせる…というのは、野 宮さんが構成しているようにメール受信などランダムに発生するイベントをトリ ガーにしてスキャンしたいという目的のためなら合理的ですが、手動で(あるい は cron などで定期的に) $HOME などをスキャンしたい、ということなら clamscan を使えばいいんじゃないか(…というか、その方が合理的)と思います。 …ちなみに、件の "lstat() failed" エラー、clamav と amavisd-new を連携さ せているパターンでしばしば見られるようで、解決方法はやはり、clamd プロセ ス所有ユーザを amavisd プロセス所有ユーザの属するグループに加える、とい うことになるみたいですね。 [...snip]
0.94.0 では何もしなくて良かったものですから.....
0.94.0 ? 念のため確認ですが、上記は openSUSE 吊るしのものでしたか? openSUSE 11.0 standard 環境で Update をかけていると現時点では clamav-0.94-0.1 となって いて、"clamscan -V" の結果は ClamAV 0.94/8605 …となります。末尾の ".0" というのが間違いでないのなら、もしかして自分で ソースからコンパイルしてきたものを使っていた…なんてことはないでしょうか? また、Factory から入れたという clamav は http://download.opensuse.org/factory/repo/oss/suse/ 以下にある clamav-0.94.1-1.2.*.rpm (2008/11/11 現在)でしょうか? http://download.opensuse.org/factory/repo/src-oss/suse/src/ 以下を覗いてみると、その clamav に対応する src.rpm が見当たらなく、それ がちょっと引っかかってたりするんですが…。 # どんなパッチが当たっているのか確認してみようと思ったのですが # src.rpm がなかったので確認することもできませんでした。 OBS で clamav の 0.94.1 をビルドしている人がいたんで https://build.opensuse.org/package/show?package=clamav&project=home%3Apeternixon そこから clamav-0.94.1-2.1.src.rpm を持ってきてリビルドしてバイナリを作 り、挙動が変わるのかどうかテストしてみようかな、とも考えたのですが、 build require で sendmail、sendmail-devel などを要求され、sendmail を入 れようとしたら「…なら postfix をアンインストールする」と言われてしまった ので、結局リビルドは諦めてしまいました…。
ところで、今大変困った状況にあります。
kdm からログインしますと、デスクトップが現れるのに非常に時間が掛り、デスク トップが現れても端末を使えずにいます。 .bashrc をちょっと書換えて再起動しただけですが、どうやって問題の所在を見付 ければ良いのでしょうか? Emacs上で観てもデーモンは走っていないのですが....
Emacs の SHELL モードには入れても、たとえばそこから "xterm &" などとして もターミナル・エミュレータが立ち上がってくれない(…つまり、ログイン・シェ ルが始まらない)、ということでしょうか? だとしたら、やはりその
.bashrc をちょっと書換えて …の部分が影響している可能性が高いのではないでしょうか。
これもやはり切り分けが必要で、まずはノーマルな .bashrc に戻してどうなる のか確認してみるのが最初に確認すべきことだと思いますよ。 -- □●□ _/_/_/ To be Happy! _/_/_/ □□● _/_/ Satoru Matsumoto _/_/ ●●● _/ helios_reds@gmx.net _/ -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
野宮です.
In the Message;
Subject : Re: [opensuse-ja] clamdscan で lstat() failed, ERROR
Message-ID : <4918E964.3070006@gmx.net>
Date & Time: Tue, 11 Nov 2008 11:09:40 +0900
[松本さん] == Satoru Matsumoto
participants (2)
-
Satoru Matsumoto
-
野宮 賢 / NOMIYA Masaru