
Mac用アンチウィルスソフトClamXavの使い方や設定のまとめと、ウィルス検索エンジンのClamAVを活用して、もう少し機能を強化する設定方です。ウィルス定義ファイルの更新とスケジュールスキャンの回数を、.plistファイル(launchd)を使って1日に何度も実行させるようにします。
ClamXavの使い方はよく見かけるのですが、ClamAVを活かすとなると…だったので、ついでに書いてみました。あまり参考にならないと思いますが、私が使っているClam Xavの環境設定も晒してます。
ClamXavの使い方と設定のまとめ:目次
ClamXavの基本的なこと
ClamXavの環境設定
ClamAVを使って機能を強化
この記事で使ったplistファイル
↑ は別サイト(github)へのリンクです。
この記事はOS X 10.7.3 Lionと、ClamXav 2.2.2を使った内容になります。
ClamXavとは…
ClamXav(とClamXavSentry)は「ClamAVのGUIフロントエンド」であって、正確にはアンチウィルスソフトではありません。ClamAVというコマンドで操作するアンチウィルスソフトを操作するアプリです。図にすると下のような感じになるでしょうか。
ClamAVは単体でも使う事ができますが、ClamXavの方は単体では機能しません。そのため初回起動時には下のような警告が表示されます。
このClamAVがどんなものかと言うと…
Clam AntiVirus (クラム・アンチウイルス。略称Clam AV)とは、オープンソース(GPL)で提供されているクロスプラットフォームのアンチウイルスソフトウェアである。
当初UNIX用として開発され、その後AIX、BSD、HP-UX、Linux、OpenVMS、MacOS X、OSFとSolarisに移植されている。Windowsにも、現在では「ClamAV for Windows」「ClamWin」「MoonSecureAV」など、多くの派生版が移植されている。
主な利用目的は、メールサーバにおけるサーバサイドのE-mailウイルススキャンである。常駐保護機能は持たない(「ClamAV for Windows」や、「MoonSecureAV」などの派生版では持つものもある)が、デーモン化やcronサービスにより自動実行させる利用方法が一般的である。
MacOS X 版の ClamXav では ClamXav Sentry を常駐させる事ができ、任意のフォルダなどを監視させる事が可能である。また、MacOS X Server 10.4 Tiger 以降には ClamAV が標準で含まれている。
Clam AntiVirus - Wikipediaより抜粋。
上にあるように、ClamAVは「メールサーバーでメールをスキャンするアンチウィルスソフト」です。市販のものと比べると性能は劣ると思います。
「それでは困る」という方にはSophos Anti-Virus for Macをおすすめします。無料で使えるMac用のアンチウィルスソフトの中では、一番良いんじゃないかと思います。
元が市販ソフトなので当然なのですが、Sophosは監視がきつい上に細かい設定ができないので私は常用してません。数ヶ月に一度インストールしてフルスキャン → アンインストール。普段はClamXavのみ。と、使い分けています。
インストール
Mac App Store(以後MAS)と公式サイトの両方から入手できますが、MAS版はライセンスの関係で ClamXav Sentry(常駐監視してくれる機能)が実装されてません。
Sentryが無い以外にも細かいところが変更されているらしいです。MAS版は使った事がないのでよく分かりませんが…。
使うなら規制のかかっていない公式サイトのをおすすめします。
公式サイトからダウンロードした.dmgファイルを開き…
ClamXav.appをアプリケーションフォルダに入れればインストール終了です。
10.7、10.6は、インストール後にログインし直すか再起動します。するとコンテクストメニュー(右クリック)に「ClamXavでスキャン」という項目が追加されます。
10.5の場合は二段目(?)にある「ScanWithClamXav.plugin」を手動で入れます。
アンインストール
ClamXav Sentryが起動している場合は終了します。また、ログイン時に起動する設定にしている場合は、それを無効にします。
次にClamXavのインストールに用いるディスクイメージ(無い場合はダウンロードする。最新版でも可)を開き、その中にある「ClamAV Engin REMOVER.app」を起動します。
このアプリが、ウィルス検索エンジン(ClamAVのこと)とスケジュール設定を削除してくれます。後はClamXav.appをゴミ箱に捨てて終了です。
ClamXavの基本的な使い方
使い方はシンプルで、ClamXavを起動して下のようにスキャンしたいディレクトリを指定してスキャンします。
右クリックから直接スキャンすることもできます。
その他のアイコンは以下のようになっています。
ClamXav Sentryで常駐保護
ClamXav Sentryを起動させるとメニューバーに常駐し、ClamXavの環境設定内で指定したフォルダを監視してくれます。
このSentryは、ClamXavの環境設定でログイン時に自動起動させることができます。
ClamXavSentryを起動させるにはClamXavを起動しなくていけません。毎回これでは面倒なので、エイリアスを作成しておくと便利です。
ClamXavSentryの本体は/Applications/ClamXav.app/Contents/Resourcesの中にあります。
ClamXavの環境設定
ClamXavの各種設定は、ツールバーの「環境設定」から設定することができます。
一般設定
ClamXavの基本的な設定です。
項目 | 説明 |
---|---|
ウィルス検出時に警告音を鳴らす | ウィルスを検出した際に音を鳴らして知らせてくれます。 |
スキャン完了をサウンドで通知 | スキャンが完了したら音を鳴らして知らせてくれます。 |
メールの内容をスキャン | メールの内容をスキャンして、添付ファイルなどに埋め込まれているウィルスを検出します。※ |
起動時にウィルス定義を更新 | ClamXav起動時にパターンファイル(ウイルスの検出に用いる定義ファイル)を更新します。 |
起動時にClamXavのアップデートを確認 | ClamXav起動時にアップデートの有無を自動でチェックします。 |
匿名システムプロファイル情報を送信 | 現在使っているシステムの概要を開発元に送信します。 |
※: この機能を有効にしただけではメールはスキャンされません。後述するSentryの設定にて、メールが保存されるフォルダを監視対象に設定しておく必要があります。
また、感染したファイルを隔離する設定を有効にしている場合は、Mail.appなどが誤作動を起こす可能性があります。手動で削除することをおすすめします。
他にメールをサーバーに保存する設定を有効にしている場合も注意してください。
設定方や使っているメールサービスによりますが、いつまでも警告が表示され続けてしまうことがあります。Mac上でメールを削除しても次回Mail.app起動時にサーバーから再びダウンロードしてしまうからです。
そうなった場合は、ブラウザからメールサービスにログインして、メールサービス上で削除してください。
隔離設定
ClamXavが見つけた感染ファイルを隔離するか否かと、隔離しておくフォルダを設定します。
項目 | 説明 |
---|---|
感染ファイルを隔離 |
ClamXavが見つけた感染ファイルを、自動で隔離するかどうかの設定です。ここを有効にしても、ClamXavSentryで見つけたものは隔離されません。
私の場合はですが「ClamXavで直にスキャン=いまいち信用できないファイル」なので隔離してます。 |
隔離フォルダを設定… | ClamXavとClamXavSentryの両方で見つけた感染ファイルを隔離しておくフォルダを設定します。 |
隔離フォルダを開く | 「隔離フォルダを設定」で設定したフォルダを開きます。 |
除外設定
スキャンしたくないファイルやディレクトリを設定します。
除外してる項目 | 説明 |
---|---|
*/[^/]+.(ova|vmdk|vbox|vmware) | VMWareやVirtualBoxで使う仮想OSのファイルを除外してます。数十GBの巨大なファイルですし、各OSにも一応アンチウィルスソフトを入れているので必要ないかと。 |
~/Pictures/iPhoto Library | iPhotoライブラリにはデジカメで撮った画像しか入れてませんし、ここを監視してるとデジカメを接続した際にMacが重くなる場合もあるので除外してます。デジカメ内のデータは一切整理してないんで…。 |
ここに設定した項目は、必要に応じて以下のようにチェックをいれます。
フォルダやファイルを登録する際には下のようにドロップして設定できます。わざわざパスを入力する必要はありません。
正規表現でのパターン設定については、Qve [design communication]さんのMac のウイルスセキュリティという記事を参考にさせていただきました。
ログ設定
ログを記録するか否かの設定です。
項目 | 説明 |
---|---|
スキャンの結果をログに記録 | ClamXavとClamXav Sentry、両方のスキャン結果をログファイルに残す設定です。 |
更新の結果をログに記録 |
ウィルス定義ファイルの更新結果をログファイルに残す設定です。
ここにはClamXavのエラーが出力されることもあるので残すようにしてます。 |
スケジュール設定
指定した日時にウィルス定義(パターンファイル)の更新と、登録したディレクトリをスキャンさせる設定です。
項目 | 説明 |
---|---|
ウィルス定義の更新 |
パターンファイルを自動で更新します。 平日・週末・毎日・特定の曜日の、任意の時間に実行させることができます。 私は後述する方法で1時間毎に実施させているので無効にしてますが、普通は有効にしておくべき設定です。 |
スキャン |
指定したフォルダの定時スキャンを実施します。これも平日・週末・毎日・特定の曜日の、任意の時間に実行させることができます。 上と同じ理由で無効にしています。 |
ClamXav Sentry 設定
監視するフォルダや、隔離/削除と自動起動の有無を設定できます。
右の「サブフォルダ」を有効にすると、指定したディレクトリ以下の階層をスキャンしてくれます。無効にするとトップディレクトリのみのスキャンになり、指定したディレクトリの中にフォルダがあっても中身はスキャンされません。
監視している場所 | 説明 |
---|---|
/bin | コマンドが入っている場所です。ここのUNIX実行ファイルに何かされると割と危険なので念のため監視してます。 |
/usr | /usr/binと/usr/local/binを監視させるために設定してます。理由は上と同じです。 |
/private/tmp |
各種ソフトが一時的にファイルを置く場所です。アプリ等のインストーラーがファイルを展開することもあるので、何か仕込まれていてもインストール途中で発見させるために設定してます。
しかし、インストールするソフトによってはClamAVが勢いよく反応して、重くなることもあるので注意です。 |
/private/var/folders | キャッシュを監視するために設定してます。搭載メモリ4GB以下の環境でここを監視すると、ちょっと厳しいかもしれません。(体験談) |
~ |
ホーム以下全てのファイルを監視するようにしています。
~/Musicに音楽ファイルを大量に置いていたり、動画像を編集される方で、~/Movieや~/Picturesに大きいファイルを置いているような環境ではオススメしません。 私は内蔵HDDにファイルを置かず、外付けやサーバーに置くようにしてるので設定してます。 |
/Volumes/HD… | 外付けHDDです。コピーするときは、自動(?)で作成される「デスクトップ」というフォルダに一度置いてるので、そこだけ監視してます。 |
項目 | 説明 |
---|---|
外部ディスクをスキャン | Sambaなどで共有しているネットワークボリュームや、USB接続のストレージ等をマウントした際にスキャンします。容量が大きいとMacが重くなるので注意してください。 |
ログイン時にClamXav Sentryを起動 |
ログイン時にSentryを自動起動させる設定です。
私は自作アプリで遅延起動させているので無効にしてますが、普通は有効にしておくべき設定です。 |
感染ファイルを隔離 |
Sentryが見つけた感染ファイルを「隔離設定」で設定したフォルダに隔離する設定です。
ファイルによっては、隔離されたことでシステムやアプリが不具合を起こすこともあるので無効にしてます。 |
感染ファイルを削除 | Sentryが見つけた感染ファイルを削除します。これも上と同じ理由で無効にしてます。 |
詳細設定
普通のユーザーにはあまり関係ない特別な設定項目です。
項目 | 説明 |
---|---|
スキャン終了時にサマリーを表示しない | ClamXavでスキャンを実施した際に表示されるサマリー(概要)を表示しないようにする設定です。 |
追加コマンドライン引数 |
ClamXavでのスキャンには、ClamAVのclamscanというコマンドが使われているのですが、そのコマンドで使用することができるオプションを設定することができます。
使いそうなオプションはClamXavの環境設定内で設定できてしまうので、ここを使う事はないと思います。 何を設定できるか詳しく知りたい方は、$ man clamscanを参照してください。 |
freshclam ログファイルのパス | パターンファイルの更新時に記録されるログファイルの場所です。※ |
ClamAV のパス | ClamAVがインストールされているパスです。※ |
※:ここのパスは自動で設定されるようなので、手動で設定しても元に戻ってしまいます。もしかしたら、ソースからビルドして入れた場合は手動で変更する必要があるかもしれません。
動作テスト
一通り設定が済んだらテスト用の無害なウィルスを使って動作テストをします。何でもいいのでエディタを開き、以下をコピペしてプレーンテキスト形式で保存します。
エディタに上の内容をコピーし…
プレーンテキスト(標準テキスト)形式で保存。
Sentryがちゃんと機能していれば保存した途端に反応してくれます。
これはEICARテストファイルというもので、アンチウィルスソフトの動作点検に用いるものです。元々無害ですし、実行してもMacではエラーになって機能しません。
ウィルス検索エンジン(ClamAV)を入れ換えて最新版にする
この記事を書いている時点でClamAV 0.97.4がリリースされていますが、ClamXavの方は0.97.2のままです。気になる人は自分で最新版に入れ換えます。
最新のClamAVをインストール
まず最初に、ClamXavやClamXavSentryを終了します。
次に、現在使っているウィルス検索エンジンをリネームして、ClamXavが参照できないようにします。
検索エンジンの本体がある/usr/localに移動します。
移動したらリネームします。私はClamAVのバージョンを追加した名前にしてますが、名前は何でも構いません。
リネームしたら新しいClamAVをインストールします。私はHomebrewを使っているので下のコマンドになります。
設定ファイルを移植
デフォルトでは設定ファイルが使えないようになっています。このままではClamAVが起動せず、ClamXavも機能しません。ファイルを変更…するのは面倒なので、先ほどリネームした旧検索エンジンから設定ファイルをコピーします。
ファイルをコピーしたらfreshclam.confを一部変更します。
118行目付近にあるNotifyClamdのパスを/usr/local/etc/clamd.confに変更します。
変更し終えたらClamXavを起動し、「環境設定」→「詳細」を見るとパスが変わっていると思います。
Sentryを起動させ、警告が表示されないことを確認します。
↓ 何か失敗してると下のような警告が表示されます。
無事起動できたら、適当なファイルをスキャンしてサマリーを見てください。検索エンジンのバージョンが上がっていれば成功です。
※:HomebrewのClamAVは、この記事を書いている時点で0.97.3です。フォーミュラを編集して0.97.4を入れてます。
これ以降の記事ではHomebrewでClamAVを入れている環境が前提での内容になります。ClamXavバンドルのClamAVを使っている方は/usr/localとなっているパスの部分を/usr/local/clamXavに置き換えてください。
パターンファイルの更新を1日○回に増やす
ClamXavで使われるパターンファイルはほぼ毎日、多いときは日に数回更新されることもあります。しかしClamXavでは一日一回までしか更新をチェックすることができません。
これでは常に最新の状態に保つことができませんので、一日に何度もチェックできるようにします。
更新をチェックする freshclam をデーモンとして自動起動させる
更新の有無をチェックするfreshclamに-dオプションをつけて実行すると、デーモンとして起動して更新の有無を自動でチェックしてくれます。
~/Library/LaunchAgentsに$ freshclam -dというコマンドを実行させる.plistファイルを作成し、Macにログインした際に自動で実行させるようにします。
まず~/Library/LaunchAgentsに移動します。
次に.plistファイルの作成と編集です。
開いたファイルに下記を記入します。11行目のfreshclamのパスは環境に合わせて変更してください。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <false/> <key>Label</key> <string>net.clamav.freshclam</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/freshclam</string> <string>-d</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceDescription</key> <string>ClamAV Freshclam</string> </dict> </plist>
net.clamav.freshclam.plist · GitHub
上のplistをXcodeで開くとこんな感じです。
ファイルを作成した後、下記を実行すればログイン時に自動で起動してくれます。
デフォルトでは1日12回=2時間毎にチェックしてくれます。回数を変更したい場合はfreshclam.confで設定を変更します。
freshclam.confで更新をチェックする回数を設定する
下記を実行してfreshclam.confを開きます。
100行目付近にあるChecksの数値が1日に更新をチェックする回数です。私は24回=1時間毎にチェックさせてます。
1440にすれば1分毎に。144にすれば10分毎にチェックするようになります。
スケジュールスキャンを○秒、○時間おきに実施させる
パターンファイルの更新と同様に、ClamXavでは一日一回しかスケジュールスキャンを実施できません。これも.plistを作成して回数を増やすことができます。
~/Library/LaunchAgentsに移動します。
次に.plistファイルの作成と編集です。
開いたファイルに下記を記入します。15~17行目のスキャンするディレクトリのパスと、19行目のログファイルのパスは、使用環境に合わせて変更してください。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <false/> <key>Label</key> <string>net.clamav.clamdscan</string> <key>LowPriorityIO</key> <true/> <key>ProgramArguments</key> <array> <string>/usr/local/bin/clamdscan</string> <string>-m</string> <string>/Users/kikaigyo/Downloads</string> <string>/Users/kikaigyo/Desktop</string> <string>/Users/kikaigyo/Music</string> <string>-l</string> <string>/Users/kikaigyo/Library/Logs/clamXav-scan.log</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceDescription</key> <string>Run clamdscan every N seconds</string> <key>StartInterval</key> <integer>60</integer> <key>UserName</key> <string>root</string> </dict> </plist>
net.clamav.clamdscan.plist · GitHub
上は例として~/Downloads~/Desktop~/Musicの3カ所を60秒ごとにスキャンする設定です。26行目の数字でスキャンを実行する間隔を秒単位で設定します。900なら15分、1800なら30分です。
Xcodeで開くとこんな感じです。
1時間おきに実行したい場合は3600を設定してもいいのですが、22~23行目を下のような設定に置き換える方法もあります。
<dict> <key>Minute</key> <integer>30</integer> </dict>
上は〇〇時30分になるとスキャン=1時間ごとにスキャンする設定です。
この<dict></dict>の間にはMinute以外に、Hour、Day、Weekday、Monthを設定することができます。
<dict> <key>Minute</key> <integer>30</integer> <key>Hour</key> <integer>12</integer> <key>Weekday</key> <integer>5</integer> </dict>
Weekdayは0~7の間で設定し、0と7はどちらも日曜になります。上は毎週金曜日の12時30分に(もしかしたら24時30分にも)スキャンする設定です。
これらの設定値を使うより、ClamXavのスケジュール設定で済ました方が簡単なので使うことは無いと思います。一応できるということで。
ファイルを作成したら下記を実行して設定を有効にします。
ClamAVでも常駐保護
ClamXav Sentryがやってくれる常駐保護をClamAVにも実施させる方法です。ClamAV一本で頑張りたい人向けになるでしょうか。普通は必要ないです。
Clamdを自動起動させる
ClamAVに常駐監視させるには、clamdというデーモンを起動する必要があります。これをログイン時に自動起動させる.plistを最初に作成します。
注意: ClamXavSentryもclamdを使って監視しているので、Sentryを起動するとclamdが自動で起ち上がるようになってます。ClamAVのみの環境で必要な設定です。
~/Library/LaunchAgentsに移動します。
.plistファイルの作成。
開いたファイルに下記を記入します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <false/> <key>Label</key> <string>net.clamav.clamd</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/clamd</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceDescription</key> <string>ClamAV Clamd</string> </dict> </plist>
net.clamav.clamd.plist · GitHub
Xcodeで開くとこんな感じです。
作成したら下記を実行してファイルを有効にします。
Clamdscanでフォルダを監視させる
指定したフォルダ内でファイルの変更/追加があったらclamdscanでスキャンさせる.plistを作成します。
~/Library/LaunchAgentsに移動します。
.plistファイルの作成。
開いたファイルに下記を記入します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <false/> <key>Label</key> <string>net.clamd.wfol</string> <key>LowPriorityIO</key> <true/> <key>ProgramArguments</key> <array> <string>/usr/local/bin/clamdscan</string> <string>-m</string> <string>/Users/kikaigyo/Downloads</string> <string>/Users/kikaigyo/Desktop</string> <string>/Users/kikaigyo/Music</string> <string>-l</string> <string>/Users/kikaigyo/Library/Logs/clamXav-scan.log</string> </array> <key>RunAtLoad</key> <false/> <key>ServiceDescription</key> <string>Run clamdscan if ~/Downloads was modified</string> <key>UserName</key> <string>root</string> <key>WatchPaths</key> <array> <string>/Users/kikaigyo/Downloads</string> <string>/Users/kikaigyo/Desktop</string> <string>/Users/kikaigyo/Musics</string> </array> </dict> </plist>
15~17行目と29~31行目に監視したいフォルダのパスを入れます。19行目のログファイルのパスは環境に合わせて変更してください。上は例として3カ所監視してますが、増やしたい場合は、その都度パスを追加します。
Xcodeで開くとこんな感じです。
作成したら下記を実行してファイルを有効にします。
plistについてはwww.mac.phというサイトの方が作成されたBuilding basic security for Mac OS X (Server)を参考にしました。
参考Link:
スポンサード リンク