Linuxで動く便利ツール
脅威が日常化した時代へ備える
  「ClamAV」
北浦 訓行
2008/4/15
  | 
  
 概要
ClamAVは、シグネチャによるパターンマッチング方式を採用した、オープンソースのアンチウイルスソフトウェアです。比較的古くから利用されており、2008年4月15日時点での最新バージョンは0.93となっています。
| 編集部注:4月15日付で公開されたバージョン0.93では、バッファオーバーフローなど複数の深刻な脆弱性が修正されている。この最新バージョンを利用することが望ましい | 
ファイルのウイルススキャンはもちろんのこと、メールゲートウェイでのメールスキャニングにも対応しています。また、アンチウイルスエンジンがシェアードライブラリ化されているため、多くの拡張モジュールが用意されています。
![]()  | 
  
| 画面1 ClamAVのWebサイト | 
 ClamAVのインストール
多くのディストリビューションでは、ClamAVのパッケージが用意されています。従って、以下のようなコマンドでインストールすることができます。
■Fedora
  
  # yum install clamav clamav-update 
     | 
  
■Ubuntu
  
$ sudo apt-get install clamav | 
  
ただし、ディストリビューションによっては、用意されているパッケージが最新版でないことがあります。その場合には、ClamAVのWebサイトから最新版のtarボールをダウンロードして、インストールします。
  $ tar zxf clamav-0.93.tar.gz | 
  
なお、sendmailのメールスキャニング機能(clamav-milter)を有効にする場合は、以下のようにconfigureコマンドの実行時に--enable-milterオプションを付けなければなりません。
$ ./configure --enable-milter | 
  
インストールが完了したら、freshclamコマンドでウイルスデータベース(ウイルスを定義したファイル)を更新します。freshclamコマンドはrootで実行しなければなりません。
  # freshclam | 
  
ClamAVに限らず、アンチウイルスソフトではウイルスデータベースを定期的に更新しなければなりません。Windowsを対象とした市販のアンチウイルスソフトの場合、その作業は自動的に行われますが、ClamAVではユーザーが明示的にその作業を行う必要があります。
ただし、freshclamコマンドには、定期的なウイルスデータベースの更新作業を助けるための機能(デーモンとして実行する)が用意されていますので、それを利用します。具体的には、以下のようにするといいでしょう。
# freshclam -d -c 24 | 
  
-dオプションは、freshclamをデーモンとして実行するためのオプションです。また、-cオプションは、デーモンとして実行されたときに、ウイルスデータベースを更新する回数を指定します。指定できる数字は1〜50で、これは1日に更新する回数となります。上記のように24を指定すると、1時間に1回更新作業を行うことになります。
 freshclamコマンドのオプションについては、freshclamのmanページを参照してください。
  ClamAVによるウイルススキャン
ウイルスデータベースの更新作業が完了したら、一度ウイルスチェックを行ってみましょう。
ClamAVは、ウイルスチェックもコマンドラインで実行します。スキャンのコマンドはclamscanです。clamscanコマンドでは、引数として、ウイルスチェックを行うファイルを指定したり、標準入力のデータをチェックすることが可能です。もちろん、ディレクトリ単位でチェック対象を指定することもできます。
例えば、ホームディレクトリ以下の全ディレクトリを検査して、ウイルスに感染したファイルがあったときはベルを鳴らし、感染ファイルのみを表示するには、以下のコマンドを実行します。
# clamscan -r -i --bell ~ | 
  
また、以下のようにしてメールスプールをスキャンすることもできます。
# clamscan -r /var/spool/mail | 
  
clamscanコマンドでもさまざまなオプションを指定することができます。詳細は、clamscanのmanページを参照してください。
clamscanでウイルスに感染しているファイルが見つかった場合は、そのファイルを削除するか(--remove)、特定のディレクトリに移動させる(--move=DIRECTORY)といいでしょう。
これまでに紹介したとおり、ClamAVはWindows用のアンチウイルスソフトとは違って、すべての作業をコマンドラインで行わなければなりません。これは、システム管理者にとっては融通の利く便利な方法ですが、Windowsユーザーから見ると不親切です。
Linuxを主にクライアントとして使用する場合は、KlamAVというClamAVのGUIフロントエンドを使用するといいでしょう。Fedoraなどでは、パッケージが用意されているため、yumコマンドでインストールすることができます。
![]()  | 
  
| 画面2 ClamAVのGUIフロントエンド「KlamAV」 | 
KlamAVには、ウイルスチェックの日時を指定したり、ClamAV本体やウイルスデータベースの更新作業を行う機能などがあるため、Windowsユーザーでも違和感なくウイルスチェックを行うことができます。
 ClamAVの実力
アンチウイルスソフトの性能評価などを行っているドイツの独立調査機関「AV-Test.org」などの評価では、残念ながらClamAVの性能はあまり高くありません。また、市販のWindows用アンチウイルスソフトと比較すると、ウイルス検出技術などでも見劣りします。しかし、それでもClamAVを導入する意味はあります。
最近では、ウイルスの亜種がどんどん出現して、1社のセキュリティベンダだけですべてのウイルスを捕捉することが難しい状態になっています。また、インターネットの脅威が愉快犯的なウイルスから、被害者に具体的な金銭被害を与えるものに変質しているため、二重三重の防御が必要です。
ClamAVには、SendmailやQmail、Postfix、EximなどのMTAに対応したアドオンモジュールが公開されています。また、samba-vscanというSambaの共有フォルダをスキャンするモジュールもあります。
これらを導入することにより、メールや共有ファイルの感染をチェックすることが可能になります。そして、クライアントでは別のアンチウイルスソフトで二重にチェックすれば、ウイルス感染のリスクを減らすことができるでしょう。
■ @IT関連記事
|  Linux Tipsの関連記事 これまでLinux Tipsに掲載された記事の中から、ClamAV関連のものを紹介します ■LinuxでアンチウイルスソフトClamAVを使うには ■ClamAVによるウイルスチェックを定期実行するには ■Fedora Core 5でリアルタイムスキャンを行うには ■ClamAVのウイルスデータベースを自動更新するには ■アンチウイルスソフトの動作を確認するには ■Linux用のアンチウイルスソフトを使うには  | 
  ||
| Linux Squareプロダクトレビュー | 
| Linux Squareフォーラム 製品情報・レビュー関連記事 | 
| 特集:2007年、Linuxディストリビューションの歩みを振り返る 商用、非商用ともにメジャーバージョンアップが相次いだ2007年。主なディストリビューションを取り上げ、アップデート内容を紹介します  | 
|
| プロダクトレビュー[Ubuntu 7.10 日本語ローカライズド Desktop CD] 海外のみならず日本国内でも人気急上昇中のUbuntu。優れたインターフェイスを備えるとともに、豊富な機能がコンパクトにパッケージされている  | 
|
| 特集:業務で使うデスクトップLinux カタログ 定型業務さえこなせればよいという部門も多い企業環境は、コンシューマ市場以上にLinuxへの移行が容易ともいえる。そこで、6つのLinuxディストリビューションを紹介する  | 
|
| 特集:Linuxで動くリレーショナルデータベース・カタログ データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい  | 
|
| 特集:Windowsで動くXサーバ・カタログ やや特殊な用途に用いられてきたXサーバだが、活用しだいでは普通の管理用途にも有用だ。そこで、Windowsで動作する6本のXサーバを紹介する。選択の参考にしてほしい  | 
|
| 特集:Linuxで動くJavaアプリケーションサーバ・カタログ アプリケーションサーバは、いま最も開発競争が激しいジャンルの1つだ。その中から、Linuxに対応する5つの商用製品を紹介する。製品導入の際の参考にしてほしい  | 
|
| 特集:Linuxで動くWebグループウェア・カタログ Linuxを業務用サーバに採用するケースも増えている。そこで、Linuxをサーバとして利用するWebベースのグループウェアを紹介しよう  | 
|
  | 
  
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。 
 
  | 
 |






