実行

ナビゲーションをスキップして本文へ

階層ナビゲーション

前後のナビゲーション

概要

この章では clamav-update の実行方法について説明します。

セキュリティ警告

トロイの木馬に注意

以下に説明する clamav-update の実行方法はいずれも root と呼ばれる特権レベルで clamav-update を実行します。root が使用されるときはそれが信頼できるものかどうか検討してください。

例えば、もし私が悪意を持っていてあなたのパスワードを盗もうとしていたらどうすると思いますか? sudo へのパスワード入力で間違いがあって再入力を求めるようなインターフェースでパスワードを入力させるコードを clamav-update に仕込むでしょう。そして入力されたパスワードと実行者のアカウントをどこかに送信するでしょう。そうですトロイの木馬です。

clamav-update がオープンソースプロジェクトであることの理由の一つは信頼性の自己証明のためです。利用者は clamav-update の全ての動作について検討することができます。

DNS 情報すり替えに注意

現在のバージョンでは ClamAV のシグネチャファイルの確認をしていません。DNS 情報が書き換えられて悪意があるサーバに誘導される可能性がありますが、シグネチャによってチェックすることで偽物を見破ることができるでしょう。しかし clamav-update にはその機能がありません。gnupgp が Mac OS X には標準でインストールされていないからです。DNS 情報の書き換えはそうそうあるような攻撃ではありませんが、LAN 内に脆い DNS サーバをたてているときには注意すべきです。プロバイダの DNS を使用していてもその危険がないとは言い切れません。あなたのマシンの DNS クライアントとしての設定が書き換えられて偽物の DNS サーバに問い合わせているかもしれませんし。

したがって、DNS 情報のすり替えの危険と普段のアップデート作業の手間暇を比べて、手間暇を省く方がよいと判断したときに限って使用してください。ライセンス(GPL)にも書いてありますが、このソフトウェアを使用した結果について開発者は責任を負いません。

clamav-update はその設定ファイルによってビルドとインストール、そしてインストール後の処理を全てカスタマイズできます。もしあなたがシグネチャのダウンロードとその確認を毎回しているのでしたら、その手順を設定ファイルに入れることでシグネチャの確認ができます。

ClamXav を使用している場合

コマンドライン実行

clamav-update のアップデート

clamav-update 自体のアップデートチェックと、もし新バージョンがあればそれの自動インストールを行うには、管理者権限があるアカウントで次をターミナル上で実行してください。

sudo /usr/local/clamXav/bin/clamav-update.pl --config /usr/local/clamXav/etc/clamav-update-update.conf

パスワードが尋ねられたらアカウントのパスワードをタイプして改行してください。入力は画面にエコーバックされません。

ClamAV のアップデート

ClamAV のアップデートチェックと、もし新バージョンがあればそれの自動インストールを行うには、管理者権限があるアカウントで次をターミナル上で実行してください。

sudo /usr/local/clamXav/bin/clamav-update.pl

パスワードが尋ねられたらアカウントのパスワードをタイプして改行してください。入力は画面にエコーバックされません。

毎日実行

clamav-update のアップデートと ClamAV のアップデートを毎日行う場合について説明します。もちろん新バージョンがなければアップデートはされません。

periodic を利用します。/etc/daily.local というファイルがなければターミナルで次のようにして作成してください。

sudo touch /etc/daily.local
sudo chown root:wheel /etc/daily.local
sudo chmod 0644 /etc/daily.local

既に /etc/daily.local があっても特に弊害はありません。

そして次のようにして clamav-update の実行の指示を追加します。

sudo cat << EOF >> /etc/daily.local
/usr/local/clamXav/bin/clamav-update.pl --config /usr/local/clamXav/etc/clamav-update-update.conf
/usr/local/clamXav/bin/clamav-update.pl
EOF

テキストエディタで /etc/daily.local を開いて編集してもよいでしょう。

毎週実行

clamav-update のアップデートと ClamAV のアップデートを毎週行う場合について説明します。もちろん新バージョンがなければアップデートはされません。

periodic を利用します。/etc/weekly.local というファイルがなければターミナルで次のようにして作成してください。

sudo touch /etc/weekly.local
sudo chown root:wheel /etc/weekly.local
sudo chmod 0644 /etc/weekly.local

既に /etc/weekly.local があっても特に弊害はありません。

そして次のようにして clamav-update の実行の指示を追加します。

sudo cat << EOF >> /etc/weekly.local
/usr/local/clamXav/bin/clamav-update.pl --config /usr/local/clamXav/etc/clamav-update-update.conf
/usr/local/clamXav/bin/clamav-update.pl
EOF

テキストエディタで /etc/weekly.local を開いて編集してもよいでしょう。

ソースからデフォルトでインストールした場合

この節では Linux を想定しています。定期実行に関しては他の OS やディストリビューションによっては異なるかもしれません。互換性を確認したのは Fedora Core 6 と Debian です。

Fedora Core には clamav-update という同名のパッケージがあります。これは ClamAV のウィルスデータファイルを自動でアップデートする freshclam と run-part 用のスクリプト clamav-update が含まれていて別物です。ここで解説している clamav-update は ClamAV そのもののアップデートをサポートするスクリプトなので、役割が異なります。Fedora Core の場合は yum で ClamAV 関連のパッケージを更新してください。具体的には次のコマンドラインを定期的に実行すればよいでしょう。

/usr/bin/yum -y clamav clamav-update

ClamAV 関連のパッケージは他にも多数あります。インストールされているパッケージを pup (パッケージマネージャ) で調べて後ろに追加してください。

コマンドライン実行

clamav-update のアップデート

clamav-update 自体のアップデートチェックと、もし新バージョンがあればそれの自動インストールを行うには、root で次を実行してください。

/usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update-update.conf
ClamAV のアップデート

ClamAV のアップデートチェックと、もし新バージョンがあればそれの自動インストールを行うには、root で次を実行してください。

/usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf

定期実行

clamav-update と ClamAV のアップデートを定期的に行う場合について説明します。もちろん新バージョンがなければアップデートはされません。

準備

root で次のようにして定期実行用のシェルスクリプトを /etc/cron.d/ に作成します。

cat << EOF > /etc/cron.d/clamav-update
#!/bin/sh
/usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update-update.conf
/usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf
EOF
chown root:root /etc/cron.d/clamav-update
chmod 0755 /etc/cron.d/clamav-update

頻度の指定

次は実行頻度を指定します。一時間毎から一ヶ月毎が指定できますが、一日毎か一週間毎がちょうどよいでしょう。

一時間毎

root で次のようにします。

ln -s /etc/cron.d/clamav-update /etc/cron.hourly/
一日毎

root で次のようにします。

ln -s /etc/cron.d/clamav-update /etc/cron.daily/
一週間毎

root で次のようにします。

ln -s /etc/cron.d/clamav-update /etc/cron.weekly/
一ヶ月毎

root で次のようにします。

ln -s /etc/cron.d/clamav-update /etc/cron.monthly/

freshclam との連携

ClamAV のウィルスデータベースのアップデータ freshclam は ClamAV 自身がアップデートされると次のような警告をログに出力します。

WARNING: Your ClamAV installation is OUTDATED!

この警告を出力するとき freshclam の設定ファイル freshclam.conf で OnOutdatedExecute ディレクティブを設定しているかコマンドラインオプション --on-outdated-execute を使用していると、freshclam はそこで指定されたコマンドを実行します。この方法はこれを利用します。

この方法を用いると ClamAV が実際にアップデートされたときにだけ clamav-update が実行されるので効率的です。また freshclam でウィルスデータベースを適切な間隔でアップデートしている場合は、あなたが ClamAV 本体のアップデートがされたと気付く前に既に手元のマシンではアップデート済みになっていることでしょう。

ClamXav を使用している場合

ClamXav では全てのローカルユーザが freshclam を実行できるようになっています。一方で clamav-update は root というシステム管理用のアカウントでなければ実行できないようになっています。任意のユーザがシステムに勝手に何かをインストールしては危ないからです。ですから ClamXav の通常の利用ではこの方法をとれません。

当プロジェクトの FreshClamDaemon を利用してください。ClamXav からはウィルスデータベースの更新はできなくなりますが、それ以上にウィルスデータベースを常に最新に保つことができます。 FreshClamDaemon のダウンロードパッケージには freshclam.conf というファイルが添付されています。このファイルを /usr/local/clamXav/etc/freshclam.conf に上書きコピーしてから FreshClamDaemon をインストールすれば freshclam と連携するようになります。

一般的な連携方法

freshclam と clamav-update を連携させて ClamAV を常に最新に保つには freshclam が root 権限で動作する必要があります。そのためには freshclam の設定ファイル freshclam.conf で DatabaseOwner ディレクティブを用いて次のようにします。

# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
DatabaseOwner root

あるいは freshclam のコマンドラインに --user root を付けて実行してもよいでしょう。

そして freshclam が ClamAV 本体のアップデートを検知したら clamav-update が実行されるように freshclam.conf で OnOutdatedExecute ディレクティブを次のように設定します。

# Run command when freshclam reports outdated version.
# In the command string %v will be replaced by the new version number.
# Default: disabled
#OnOutdatedExecute command
OnOutdatedExecute /usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf

あるいは freshclam のコマンドラインに --on-outdated-execute="/usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf" を付けて実行してもよいでしょう。

この例の /usr/local/bin/ の部分は clamav-update.pl をインストールした場所やその ClamAV アップデート用の設定ファイルの場所によって異なります。

マニュアル

clamav-update の本体 clamav-update.pl コマンドには POD によるマニュアルが内蔵されています。次のようにすると参照できます。

ClamXav を使用している場合
/usr/local/clamXav/bin/clamav-update.pl --help
あるいは
perldoc /usr/local/clamXav/bin/clamav-update.pl
ソースからデフォルトでインストールした場合
/usr/local/bin/clamav-update.pl --help
あるいは
perldoc /usr/local/bin/clamav-update.pl