KHOO
おお、ついに Leopard 版の導入エントリ来ましたね。実はしばらく前にシステムが不安定になったときに Leopard をクリーンインストールしてから、ClamAV を外してたんですよ。再設定が面倒くさくて(^^;

これであっちこっちウロウロ調べなくてもなんとか導入できそうです。週末にでもじっくり腰を据えてやってみます。
 隅本証平
自分には難しかったので、全部理解するのはあきらめることになると思いましたが、とりあえず、 clamd.conf の「PDF の解析を有効にする。」を、いただきました。

いつも、どうもありがとうございます。
 あつし
まだ読んでませんがこれで最新版にアップデートしてなおかついままでより強固な設定に出来ます。ただ、私の場合中途半端に実行しているので余計難儀しちゃうかも。。。
 まっきー
先日、リビルド品のintel mac を入手し、ClamAVの設定に困っていたのでとても助かります。ありがとうございます。

いま順を追って進めていますが、
1.説明が欲しいかなぁと思ったのは、
Swox_AB.gpg をどう扱うかがないことです。読み込ませるのでしょうが、記述がなく焦りました。

2.ミスタイプを見つけちゃいました。
{clamd の設定}の設定の最後にある
sudu -H mkdir -p /var/ClamdOmitScan/tmp

sudo -H mkdir -p /var/ClamdOmitScan/tmp
(u→o)ですね。動作せず一瞬焦りました。

次は、質問です。
FreshClamDaemon をインストールしようとしましたが、失敗しましたと表示され、「run postinstall script for FreshClamDaemon。ソフトウェアの製造元に問い合わせて下さい」となってしまいました。

ここまで、試行錯誤して進めた過程で何かやらかしたんでしょうか…。
 まっきー
追記です。
ログを見ました。すると
ERROR: Problem with internal logger (UpdateLogFile = /usr/local/clamXav/share/clamav/freshclam.log).
ERROR: Can't open /usr/local/clamXav/share/clamav/freshclam.log in append mode (check permissions!).
とありました。パーミッションのエラーとありますが、どういう設定だと正しいのでしょう。この一連の流れの中にターミナルからfreshclam.logのパーミッション設定はないと思うのですが…。
 OKAMURA
まっきーさん:
ありがとうございます。助かります。
1 は書き忘れていました。早速書いてアップロードします。2 も直しておきます。

そして質問のところですが、それに私もはまりました。あれれといいながらやったことを書いていませんでした。これも追加してアップロードします。
 OKAMURA
まっきーさん:
あ、いや質問の部分は書いてあります。
「ClamAV の設定」のサブセクション「freshclam の設定」の一番最後の部分です。これはウィルスデータベースと一緒にログファイルのオーナーも変わる操作なので、これに含まれています。これでは駄目でしたか?

【追記】
ああ、なんか freshclam が意図通りになってないですね。root のまま稼働させているつもりだったのですが、clamav ユーザがプロセスのオーナーになっています。ちょっと考えてからこの部分は手直しします。
 OKAMURA
freshclam.conf の設定の問題ではなく Leopard 上での freshclam の動作の問題のような気配があります。Linux 上でほぼ同じ設定で freshclam が root で動作しているからです。

困った。

【追記】
原因がわかりました。freshclam に問題はありませんでした。手順を手直しして再度アップロードします。
 OKAMURA
まっきーさんの質問に対応する記事の修正が終わりました。これからアップロードします。記事の編集日時(Edited on と書いてある)が「2008年04月22日 02時46分」以降になったら反映されています。

既に実施しかけた人は FreshClamDaemon のインストールの部分で止まっているはずです。その前に行うことで追加したのは次の箇所です。
・「ClamAV のインストール」セクションの手順 2 の後半
 OKAMURA
それ以外に増えたところは次の箇所です。
・「システム起動項目のインストール」セクションの手順 9

まっきーさんの質問ではなく指摘による変更箇所は次のとおりです。
・「gmp のインストール」セクションの手順 2 を挿入
・「ClamAV の設定」セクションの「clamd の設定」サブセクションの手順 3 を修正
 まっきー
OKAMURAさん
早速の対応ありがとうございます。

改めて『「freshclam の設定」の一番最後の部分』
chown -R root:admin /usr/local/clamXav/share/clamav を実行すると
chown: /usr/local/clamXav/share/clamav/daily.cvd: Operation not permitted
chown: /usr/local/clamXav/share/clamav/freshclam.log: Operation not permitted
chown: /usr/local/clamXav/share/clamav/main.cvd: Operation not permitted
chown: /usr/local/clamXav/share/clamav: Operation not permitted
となり、私の環境ではここで躓いているようです。さて、何をしてしまったのでしょう。
お手数おかけしますが、教えていただけると感謝です。
 OKAMURA
まっきーさん:
あ、すみません sudo を先頭に付けるのを忘れていました。
 t0mori
おお、素晴らしいまとめ。clamev-updateを最大限利用しているのがさすがです。
 まっきー
OKAMURAさん

無事完了しました。ありがとうございます。

しかし、logに気になるコメントがあります。
clamav.logには
 Clamd was NOT notified: Can't connect to clamd through /var/clamav/clamd.socket

freshclam.logにも
 WARNING: Clamd was NOT notified: Can't connect to clamd through /var/clamav/clamd.socket

両者ともclamd.socketに問題有りと言ってますよね?何故なんでしょう。

このことに限らず、本件全体の私のコメントを読むと、UNIXのコマンドをある程度知っていれば、先に教えていただいたsudoの欠如をはじめ、いろんな事を聞かずともに気づくのだろうと思いました。自分のスキルがOS9の頃のままで、OSXを生かし切れていないことを感じます。

ほんとに助かってます。ありがとうございます。
 OKAMURA
t0mori さん:
clamav-update をインストーラとして使うところがミソかな。機械的な最新版のバージョン確認方法とそのダウンロード方法があれば大抵は clamav-update が使えますからね。

まっきーさん:
ああ、またまたありがとうございます。間違って別のマシンの設定から clamd の設定を一部コピーしていました。
ClamAV の設定」の「clamd の設定」にある「ソケットファイルを指定する。」が間違っていました。今元を訂正しました。Edit on が「2008年04月22日 10時26分」以降になっていればアップロード完了しています。
 まっきー
OKAMURAさん

教えて君で申しわけありません。growlがClamXavSentryのクラッシュを何度も表示します。

system.logには
 ClamXavSentry[3173]: can't connect to clamd
とあります。
ClamXav-scan.logを見ると
 connect(): No such file or directory
 WARNING: Can't connect to clamd.
 connect(): No such file or directory
 ClamXavSentry[3173:7283] can't connect to clamd
 Error, can't connect to clamd through /tmp/clamd.
 currentSubPaths length: 3
とあります。
/etc/ を見るとclamdというfileもdirectoryもありませんでした。手順の何かを見落としたのでしょうか…。上記の方法を一つずつ確認しましたが見つけられませんでした。申しわけありません。教えて下さい。
 OKAMURA
まっきーさん:
今のバージョンの ClamXavSentry は結構不安定でよくエラーを出します。私のところでもときどき /tmp/clamd (デフォルトの clamd ソケット)に接続しようとしますが、それの設定は皆無なので、clamd.conf をちゃんと読めないことがあるとしか考えられません。
ClamXav のフォーラムでも多数 ClamXavSentry の不具合が報告されているようです。

clamd と接続できないときは clamscan を用いて監視をするように ClamXavSentry はなっています。
 まっきー
OKAMURAさん

ほんとにお手数おかけしました。事情が分かれば安心です。
「教えて君」に懲りず、これからも有益な情報提供をお願いいたします。ありがとうございました。
 OKAMURA
まっきーさん:
色々実験してそのログがなぜ出るかわかりました。その /tmp/clamd と書いてある行は間違いです。

ClamXavSentry が監視フォルダで検知したファイルをスキャンしようとしたときに、そのファイルが既になくなっている場合にそのメッセージが出されます。/tmp/clamd が書いてある行は ClamXavSentry が独自に出したメッセージです。ClamXavSentry が使用している clamdscan は、ソースを調べるとそういうメッセージを出しません。ですから作者さんが /tmp/clamd に決め打ちしてそういうメッセージを出すように作ったのだと思います。
 まっきー
OKAMURAさん

追試、検証していただきありがとうございます。私なりにご指摘のことを元に考えました。
ClamXavSentry の異常を知らせる場合はダウンロード時がほとんどです。そのこととOKAMURAさんご指摘の
>ClamXavSentry が監視フォルダで検知したファイルをスキャンしようとしたときに、そのファイルが既になくなっている場合にそのメッセージが出されます。
が関与していると思うのです。
ダウンロード先を監視対照にしている場合、Safariはダウンロード中は*.downloadという名称でダウンロードし、完了時に名称を本来のものに戻します。FireFoxも*.partと拡張子?の名称こそ違っていても、ダウンロード時のレジューム対策として別名で一端保存しています。
しかし、ダウンロード完了時にはどちらもテンポラルな*.download、*.partがなくなります。するとClamXavSentry のアラートが出るようです。
この推測が正しければ、ダウンロード先こそ監視したいのにエラーが出る、この仕様は何とかして欲しいと思うのですが…。
OKAMURA さんに言っても仕方ないですけれど。

本当にありがとうございました。
 OKAMURA
まっきーさん:
ClamXavSentry のアイデア上その状態はどうしようもないのですが、目的に照らして芳しくないのは私も以前から気になっていました。

Firefox 2.X.X をお使いでしたら、「SafeDownload」で検索するとよいソリューションを見つけられます。
 會澤
遅ればせながら、clamav-updateを導入させていただきました。

GnuPG は別のところに(Finkのswフォルダ)にインストールされちゃっているので現在、confを編集中です。

病気療養中でずっと自宅にいるので、昼間にダ〜ッとやってしまいましたが、一からやろうとするとなかなか大変でした。
 OKAMURA
會澤さん:
ここに書いただけでも結構な分量な上に、ここではあっちのドキュメントに書いてあることをやれとだけ書いてある部分もいくつかあるので時間かかりますよね。

早く元気になりますように。
 t0mori
一ヶ所タイポ発見しました。
「clamavのインストール」の章、最初のコード表記

>/usr/local/clamXav/etc/clamaav-update.conf

/usr/local/clamXav/etc/clamav-update.conf
ですよね。
 OKAMURA
t0mori さん:
twitter でのメッセージを見て、きっと何か突っ込んでくれているに違いないと思って見に来ました。
早速訂正しておきます。
 gattya
gmp のインストールでつまづいています。
2,のSwox_AB.gpg をインポートする。ができません。ターミナルウインドウにsudo -H gpg --import Swox_AB.gpgと入力しても、sudo: gpg: command not foundとメッセージが出てしまいます。どうしたらいいでしょうか?
 OKAMURA
gattya さん:
GnuPG が既にインストールしてあるとすると、/usr/local/bin がコマンド置き場として設定されていないものと思われます。

ターミナルを開いて、
echo 'PATH=/usr/local/bin:$PATH' >> ~/.profile
とタイプして改行し、一旦ターミナルを閉じて、もう一度開けば大丈夫だと思います。
 OKAMURA
gattya さん:
済みません。フォーラムに掲載していた GnuGP のインストール用 conf ファイルが間違っていました。「GnuPG のインストール」のところから再開してみてください。
 gattya
早速のお返事ありがとうございます。GnuPG のインストールから再開しました。
1,2は実行できましたが、
3,GnuPG を自動でダウンロード&ビルド&インストールする。
sudo -H /usr/local/clamXav/bin/clamav-update.pl --force --config=/etc/clamav-update.d/GnuPG- update.conf のコマンドを入力しましたら、以下のようなエラーがでてきました。
Can't exec "gpg": No such file or directory at /usr/local/clamXav/bin/clamav-update.pl line 368.
Tue Feb 10 21:23:37 2009 fail to execute
Tue Feb 10 21:23:37 2009 PHASE download: type method: command #2: failed
Tue Feb 10 21:23:37 2009 PHASE download: failed
どのように対処したらいいでしょうか?
すみません、何度もお尋ねするばかりで。
 OKAMURA
gattya さん:
ああ、済みません。書き忘れていました。
現時点の GnuPG-update.conf でしたら 143 行目から 151 行目までの
@{$Phase{download}->{method}}, (
    …
);
の各行の先頭に # を入れてください。

ここは GnuPG を使ってダウンロードしたものが偽物でないかどうかを検査するところです。まだ GnuPG が入っていないのですからこのままだとできないというわけです。

GnuPG がインストールできたら、入れた # を取り除いて元に戻してください。
 gattya
何度もありがとうございます。#をいれて実行しましたら、以下のような表示がでて実行できません。
config.log をみましたが同じような内容が途中までで切れていました。以下コピーします。これはconfig.logではなく、ターミナルウインドウ上での結果です。長くてすみません。途中省略しました。
checking whether email keyserver support is requested... no
checking whether keyserver exec-path is enabled... yes
checking whether the included zlib is requested... no
checking for the size of the key and uid cache... 4096
checking whether use of capabilities is requested... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make sets $(MAKE)... (cached) no
checking whether build environment is sane... yes
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
Wed Feb 11 11:50:11 2009 child exited: 1
Wed Feb 11 11:50:11 2009 PHASE build: type method: command #0: failed
Wed Feb 11 11:50:11 2009 PHASE build: failed
Can't exec "make": No such file or directory at /usr/local/clamXav/bin/clamav-update.pl line 368.
Wed Feb 11 11:50:11 2009 fail to execute
Wed Feb 11 11:50:11 2009 PHASE build: type rollback: command #0: failed
ここの部分がエラーの表示だと思うのですが、configure: error: no acceptable C compiler found in $PATH
コンパイラーへのパスが通ってないということでしょうか?念のためコメントアウトした部分をコピーします。
# push @{$Phase{download}->{method}}, (
# [qw(curl --silent --location -o),
# "$Setting{option}->{dst}/$Setting{option}->{name}-$LatestVersion.$Setting{option}->{ext}.sig",
# "$Setting{option}->{src}/$Setting{option}->{name}-$LatestVersion.$Setting{option}->{ext}.sig",
# ],
# [qw(gpg --verify),
# "$Setting{option}->{dst}/$Setting{option}->{name}-$LatestVersion.$Setting{option}->{ext}.sig",
# ],
# );
本当に何度もご迷惑をおかけしてすみません。
 OKAMURA
gattya さん:
むっ!
それは C 言語のコンパイラがインストールされていないということです。Mac OS X のインストール DVD に入っている Xcode Tools をインストールしてください。Xcode Tools は ADC(Apple Developpers Connection) メンバーだったら最新版を ADC のサイトからダウンロードすることもできます。

インストールすると gcc というコマンドがシステムに元々ある基本の UNIX コマンドと同じところ(/usr/bin)の下にできます。ここにパスが通っていないのはちょっと考え難いので、上のように推測しました。
 MIXMAC
こちらの解説を参考に、というよりまんま手順通り作業を進めインストールしました
iMac 2.16GHz Intel Core 2 Duo 20 インチ MA589J/A OS 10.5.6 環境で使い手は、初心者です。

なので、すべての設定が完璧に反映されているのかが、よく理解できていません。

一応、テストウイルスをダウンロードすると isolated フォルダには隔離されます。
かなり深い断層のフォルダに置いてもすぐ感知して隔離してくれます。

気になる点は、上記の方で、まっきーさんが書かれてる clamd.socketに問題という部分、
freshclam.logにも
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/clamav/clamd.socket

自分の環境では、freshclam.logを見ると
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/ClamdOmitScan/clamd.socket
と表示されます。

「clamd の設定」にある「ソケットファイルを指定する。」はOKAMURAさんによって訂正された
LocalSocket /var/ClamdOmitScan/ clamd.socket で編集してます。

ClamdOmitScan フォルダの中には、clamd.socket がありますが、どう対処すればいいのかわかりません。

お手数かけますが対処法を教えてもらえないでしょうか。

それと作業手順の中でちょと解らない部分があったのでお聞きします。
それは、gmp のインストールのSwox_AB.gpg として保存する と言うところで自分は、Swox_AB.gpgを
デスクトップに保存してそのあとターミナルで sudo -H gpg --import Swox_AB.gpg としました。
エラー表示がでなかったと思うのでそのまま進めましたが今思うと、きちんとインポートされていたのか
デスクトップに保存でよいのか、残ったこの Swox_AB.gpg はデスクトップに置いとくのか削除してもよいものなのか
それともどこかのフォルダの中に保存するのか、よく解っていません。

長々と書いた上に、初心者すぎる質問で申し訳ないのですがどうぞ宜しくお願いします。
 OKAMURA
> 自分の環境では、freshclam.logを見ると
> WARNING: Clamd was NOT notified: Can't connect to clamd through /var/ClamdOmitScan/clamd.socket
> と表示されます。
(中略)
> ClamdOmitScan フォルダの中には、clamd.socket がありますが、
適切に詳しく書いていただいたので現象はよくわかりました。念を入れて現象を確認するためにアプリケーションフォルダの中のユーティリティフォルダにあるアクティビティモニタで「すべてのプロセス」を表示させたときに clamd という名前のプロセスがあるかどうかを調べてみてください。恐らくないと思います。

あと、その原因を探るための情報があると具体的な対処方法をアドバイスできるかと思います。そこでアプリケーションフォルダの中のユーティリティフォルダにあるコンソールアプリで次のようなログを探してみてください。
・/var/log/clamav.log で clamd のログに何かエラーっぽいものがあるかどうか
・/Library/Logs/CrashRepoter フォルダに clamd_日時_マシン名.crash というログファイルがあるかどうか(多分無いと思う)

どちらも該当するログがない場合は次をチェックすることになります。
・clamd が起動するようになっていない
→ ClamAntiVirusDaemon をインストールしたかどうかチェック
・freshclam のプロセスのオーナーが root ではない
→ FreshClamDaemon をインストールしたかどうかチェック
・clamd のプロセスのオーナーが root ではない
→ ClamAntiVirusDaemon インストール後に再起動

次に Swox_AB.gpg の件です。

ちょっと説明が不親切でしたね、済みません。保存場所はデスクトップで構いません。ターミナルを開いて
sudo -H gpg --import
までタイプした後、スペースを一つ開けて、保存した Swox_AB.gpg をターミナルの画面にドラッグ&ドロップするとよいです。ドラッグ&ドロップしない場合は、cd コマンドでターミナルの作業場所を保存場所(デスクトップ)にしなければなりません。インポートが終わったら Swox_AB.gpg は削除して構いません。
 MIXMAC
OKAMURA さん:
早速のご返信ありがとうございます。

> 次に Swox_AB.gpg の件です。
> ちょっと説明が不親切でしたね、済みません。保存場所はデスクトップで構いません。ターミナルを開いて
> sudo -H gpg --import
> までタイプした後、スペースを一つ開けて、保存した Swox_AB.gpg をターミナルの画面にドラッグ&ドロップするとよいです。ドラッグ&ドロップしない場合は、cd コマンドでターミナルの作業場所を保存場所(デスクトップ)にしなければなりません。インポートが終わったら Swox_AB.gpg は削除して構いません。

普通は、ここまで詳しく書いていただくようなことではないんだと思いますが、OKAMURA さんに直接解説していただくと不慣れな作業をしていても安心できます。
ありがとうございます。

問題の件ですがご指摘の通り、アクティビティモニタには clamd という名前のプロセスは、ありませんでした。

> あと、その原因を探るための情報があると具体的な対処方法をアドバイスできるかと思います。そこでアプリケーションフォルダの中のユーティリティフォルダにあるコンソールアプリで次のようなログを探してみてください。
> ・/var/log/clamav.log で clamd のログに何かエラーっぽいものがあるかどうか
> ・/Library/Logs/CrashRepoter フォルダに clamd_日時_マシン名.crash というログファイルがあるかどうか(多分無いと思う)

これも、clamd のログには(自分なりに見てですが)エラーっぽいものは見つからず、clamd_日時_マシン名.crash というログファイルも
ありませんでした。

> どちらも該当するログがない場合は次をチェックすることになります。
> ・clamd が起動するようになっていない
> → ClamAntiVirusDaemon をインストールしたかどうかチェック

ClamAntiVirusDaemon インストールしてます。
/etc/clamav-update.d/ に置かれた ClamAntiVirusDaemon-update.conf ファイルに require '/etc/clamav-update.d/common.conf'; の一行も
加えてあります。

> ・freshclam のプロセスのオーナーが root ではない
> → FreshClamDaemon をインストールしたかどうかチェック

FreshClamDaemon インストールしてます。
/etc/clamav-update.d/ に置かれた FreshClamDaemon-update.conf ファイルに require '/etc/clamav-update.d/common.conf'; の一行も
加えてあります。

> ・clamd のプロセスのオーナーが root ではない
> → ClamAntiVirusDaemon インストール後に再起動

コンピュータを再起動するという意味ですかね?
ClamAntiVirusDaemon インストール後に何度もコンピュータは再起動していますが?
プロセスのオーナーが root ではないという意味は、FreshClamDaemon ClamAntiVirusDaemon をインストールしていないからだという意味に
受け取ったのですが、インストールしてあってもオーナーが root になってない場合があるのですかね?
その場合は、どこを見ていじればよいか自分では解りません。
ClamAV インストール解説を読み返しながら自分のやった作業手順を見直したのですが抜けてるものはないと思います。(気づけない部分があるのだと思います。)

これでは、原因が解らないかもしれませんが必要な情報を言っていただければ出来るだけ詳しく書くつもりです。
初心者質問すぎるうえに見えない環境相手で大変だとは思いますが宜しくお願いします。
 OKAMURA
MIXMAC さん:
最初に今の状態を説明しますね。

ClamXav のフォルダ監視機能を担う ClamXavSentry というアプリはもし可能であれば clamd という ClamAV の常駐プログラムにスキャンを依頼します。これには ClamAV の clamdscan というプログラムを使用します。駄目なら依頼しないタイプのスキャンを ClamAV の clamscan というプログラムを使ってします。

この依頼するタイプの clamdscan が使われていません。このため少し効率が悪くなっています。

clamdscan が使われない理由は次の二つが考えられます。
A. clamd が起動されていない。
B. clamd とやり取りをするためのソケットファイルというものにアクセスできない。

前回は A と予想しながらもこのどちらの理由かまでははっきりしなかったので、幾つかチェックしてもらいました。この結果
> アクティビティモニタには clamd という名前のプロセスは、ありませんでした
とのことなので A の理由だとはっきりしました。


さて、それではなぜ clamd が起動されていないかということになりますよね。

ClamAntiVirusDaemon がインストールされているので可能性は次が考えられます。
1. clamd の設定ファイル /usr/local/clamXav/etc/clamd.conf に問題があって起動できない。
2. それには問題が無いが、ソケットファイルが置かれるディレクトリが存在しない。

最初のコメントで
> テストウイルスをダウンロードすると isolated フォルダには隔離されます
とおっしゃっているので、2 ではなく 1 だと考えて間違いなさそうです。そうすると「ClamAV の設定」の中の「clamd の設定」に書いた clamd.conf の編集内容にそもそも間違いがあったか、実施するときに何か抜けがあったり書き間違いがあったかのどちらかという可能性が濃厚です。

私の手許の Mac で運用している clamd.conf とオリジナルの clamd.conf を比べてみましたが、そこに書いた以外は特にやりたいカスタマイズしか違いがないので記事に書いてあることは間違いはなさそうに思えます。そこで「ClamAV の設定」の中の「clamd の設定」に書いたことをもう一度チェックしてみてください。

もしはっきりしないのでしたらメールに添付して送ってくださってもよいですよ。私へのメールは記事の下の方(コメントが始まる前)の「Posted by」に続くリンクから出せます。
- 表示されません
Gravatar にサインアップするとメールアドレスの入力でアバターアイコンを表示できます。
コメントの入力ヘルプ,

(S(P)