ClamAVウィルスデータベースの提供に興味を持つ人へのガイドライン。
この文書の最新版は、常に
[http://www.clamav.net/doc/mirrors/]
にあります。
これ以降を読む前に、
あなたが最新バージョンを読んでいるかどうかをチェックしてください。
virusdbチームは、活動中の新規ウィルスをチェックし、 ウィルスデータベースを更新しています。
更新は頻繁に行われています。(多くの場合週に3回以上は更新されています) もし、あなたがウィルスデータベースの更新を知らせて欲しいのであれば、 lists.sourceforge.netのclamav-virusdb メーリングリストへ登録してください。
virusdbチームがウィルスデータベースを更新する度に、 メーリングリストへ変更点が投稿されます。
こちら [ http://lists.sourceforge.net/mailman/listinfo/clamav-virusdb ] にclamav-virusdbメーリングリストへの登録方法と、 過去のアーカイブがあります。
もし、virusdbチームへ連絡を取りたいのであれば、 virus-team at clamav.net 宛てにメールを送ってください。
もしあなたがClamAVで検出できない新しいウィルスを発見したら、
virusdbチームへ送ってください。
virusdbチームは送られたウィルスを調査し、
データベースを更新します。
それにより、全てのClamAVユーザが恩恵を蒙る事ができます。
新しいウィルスを報告するには2つの方法があります。
ClamAVのメーリングリストや、 開発者のメールアドレスへは決して送らないでください。
アンチウィルスで最も重要なのは、 (データベースを)更新することです。 ClamAVでは、freshclamという自動的に更新するツールがあります。
freshclamはfreshclam.confのDatabaseMirrorに列挙されたホストへ接続します。 最初に書かれたホストへ接続できない場合は、 10秒後に次に書かれたホストへ接続します(以下同様)
freshclamが新しいデータベースを発見すると、 それをダウンロードし、 (もし実行中であれば)clamdへnotifyを送りデータベースを再読み込みさせます。
注意点としては、ClamAVの動作しているマシンは、 インターネット上のサイトへ80番ポートで直接、または、 プロキシー経由で接続できる必要があります。 透過型プロキシー(トランスペアレントプロキシー)の中には、 キャッシュの問題があるものもある事が知られています。 もしこれらの問題があるのであれば、バグレポートをする前に、 プロキシーの設定を見直してみてください。
ワーム(ウィルス)の増殖を防ぐために、 頻繁にアップデートを行う事が必要です。 ClamAVユーザには10分に一度更新するようfreshclamを設定している人も少なくありません。 (訳注:ClamWinなどは最短の設定で1時間間隔ですし、 アクセスログを見ても10分に一度という設定にしている人ってそれ程いないような感じですが・・・)
指数的なClamAVユーザの増加に伴い、 ウィルスデータベースを提供しているサーバも簡単に過負荷になってしまいます。
ミラーなしで、メインサイトのみで月に100GBにもなっています。 (2003年5月時点)
2004年2月には11ヶ所のミラーが全て月120GBに達しています。 急激なトラフィックの増加に合わせて、 我々は常により多くのミラーを必要としています。
freshclamはデータベースを [http://database.clamav.net/] からダウンロードします。
database.clamav.netはラウンドロビンにより、 データベースミラーへのトラフィックを均等に振り分けます。 ラウンドロビンにより、ミラーリストの変更がリアルタイムに行えますし、 もしミラーが停止、または、更新ができなくなった場合には、 直ちにミラーリストから削除する事ができ、 ユーザの介入は不要です。
2004年3月以降、 ユーザのIPアドレスを見て最も近いミラーへ転送するよう試みています。
下記を参照してください。
いくつかの情報は、Walter Hop(from transip.nl)より提供され、 database.clamav.net.の名前解決に利用されています。
我々のDNSサーバはCNAMEで以下の名前に答える事ができます。
db.europe.clamav.net, db.america.clamav.net, db.asia.clamav.net or db.other.clamav.net.
我々はこの方法が正確ではない事を知った上で、 そのリスクを許容しています。
我々は高速で信頼性の高いミラーを必要としています。 ミラーは以下の条件を提供する必要があります。
ミラーサーバへのシェルアクセスを許されれば、 より感謝します(ただし必須ではありません)。 FTPでのアクセスにはもう対応しません。 virusdbチームは、そのアカウントをデータベースの更新のためだけに使います。
以下の手順に従ってください
(ミラーサーバのIPアドレス) database.clamav.netという行を追加し、http://database.clamav.net/へアクセスする事により、 ミラーの設定が正しくできているかどうかチェックをする事ができます。
<VirtualHost 10.1.2.3> ServerAdmin john@clamav.foo.com DocumentRoot /home/users/clamavdb/public_html ServerName database.clamav.net ServerAlias db.*.clamav.net ServerAlias clamav.foo.com </VirtualHost>HTTP redirect(RedirectPermanent)では不十分です! freshcramはまだリダイレクトをサポートしていません。
# passwd -l clamavdbclamavdbユーザのシェルは/bin/shまたは/bin/bashでなくてはいけません。 そうでなければsshの公開鍵に関連付けられたコマンドが実行できません。 詳しくは authorized_keys_noshell ファイルを見てください。 sshの公開鍵に関連付けられているコマンドは、~/bin/clam-clientsync だけです。 我々は、このスクリプトを実行するだけで、他には何も行いません。
$ gpg --verify authorized_keys_noshell.sig authorized_keys_noshell $ gpg --verify authorized_keys_shell.sig authorized_keys_shell私(訳注:Luca Gibelli)のPGP公開鍵は、 多くのキーサーバにありますし、ClamAVのウェブサイトにもあります。 電話で確認する事もできます。まずは電子メールでコンタクトをしてください。
$ cp authorized_keys_noshell ~/.ssh/authorized_keys我々にシェルアクセスを許してくれるのであれば代わりにauthorized_keys_shellを
$ cp authorized_keys_shell ~clamavdb/.ssh/authorized_keys~clamavdb/.ssh/authorized_keys へコピーしてください。
TO=/home/users/clamavdb/public_html RSYNC_USER=foo RSYNC_PASSWORD=guessme EXCLUDE="--exclude local_*"
これら全ての手順が終了すると、 あなたのサーバのIPアドレスはラウンドロビンレコードに追加され、 ミラーリストページにリストアップされます。
2.4 Statistics Although it's not required, we really appreciate if you can make access statistics of your mirror available to us. They should be available at http://your-mirror-host-name/local_stats/ and they must be protected with login and password. You should use the same login and password you are using in your ~clamavdb/etc/clam-clientsync.conf file. If possible, please tell your statistics generator to ignore requests made by the "ClamAV-MirrorCheck" agent. If you are using Webalizer, you can add the following directive to your conf. file: HideAgent ClamAV-MirrorCheck If you are using AWStats, you can add this one instead: SkipUserAgents="ClamAV-MirrorCheck" Refer to your stats generator's manual for more info. 2.5 Admin's duty * Scheduled downtimes should be announced on the clamav-mirrors mailing-list in advance. * IP address changes should be notified in advance too. * Changes in the ssh host public key of the mirror host should be announced on the clamav-mirrors mailing-list. * It is essential to be able to contact the sysadmin responsible for the mirror server and get a quick response. Whenever a problem with a mirror occurs we need to immediately find out its cause and act consequently. 3 Notes for sigmakers New sigmakers should send their ssh2 public key to luca at clamav.net . Their public key will be added to rsyncX.clamav.net authorized_keys (after being verified). Sigmakers can upload a new database to either rsync1.clamav.net or rsync2.clamav.net using a (scp|sftp|rsync)-only account. The new database won't be available to other people immediately. First, sigmakers have to notify the rsyncX.clamav.net server that a new database is available. Here is the step-by-step procedure to release a new database version and propagate it around the world: 1. Assume your ssh private key is ~/.ssh/id_rsa and you've just built a new daily.cvd. Assume you want to use rsync1.clamav.net 2. In order to upload the new database, you have to run: $ rsync -tcz --stats --progress -e ssh -i ~/.ssh/id_rsa daily.cvd clamupload@rsync1.clamav.net:public_html/ 3. Next, you need to notify rsync1.clamav.net that a new database is available: $ ssh rsync1.clamav.net -i ~/.ssh/id_rsa -l clamavdb sleep 1 4. rsync1.clamav.net will verify the digital signature of the newly uploaded database using sigtool -i. If it finds an error, it will refuse to distribute the database to other mirrors. 5. rsync1.clamav.net will copy the previously uploaded database to its rsync shared directory. 6. rsync1.clamav.net will generate the legacy viruses.db/viruses.db2 databases (together with their respective MD5 checksums) 7. rsync1.clamav.net will notify every mirror that a new database is available 8. Every mirror will rsync its copy of the database from rsync1.clamav.net::clamavdb (only mirrors can access the rsync server at rsync1.clamav.net, it's password protected) As a fallback, every six hours, either rsync1.clamav.net or rsync2.clamav.net force an update on every mirror. If rsync1 can't reach rsync2 or viceversa, the automatic update doesn't take place. This is done to avoid propagating an old database. To avoid conflicts, sigmakers should use rsync1 by default and if it fails, switch to rsync2. Whenever a sigmaker uses rsync2, he should announce it on the clamav-team mailing-list so that every other sigmaker uses rsync2 too, until the issues with rsync1 are over. 4 Mirror status Every mirror is continously monitored to ensure that every ClamAV user gets the latest virus database. Every six hours we upload a file called timestamp on every mirror. Every hour we choose a random mirror and check that timestamp is fresh. If the file is one day old or unavailable, the mirror if marked as "old" and the ClamAV team receive a warning. If the situation persists for two days, the mirror is temporarily removed from the list. You can view the current status of every ClamAV database mirror at [http://www.clamav.net/mirrors.html] .