メールサーバで行うウイルス対策:実用qmailサーバ運用・管理術(8)(3/3 ページ)
メールによるウイルスの問題はますます深刻になってきている。一方、クライアントレベルでの対策では管理者の目が十分に行き渡らないという欠点がある。クライアント数が多い場合などは、メールサーバで一元的にウイルス対策を行うのが効果的だ。
インストールと実行
ここでは実績やおのおのの相性から、アンチウイルスソフトとして「Sophos Anti-Virus」、qmailに仕掛けるトリガソフトに「Qmail-Scanner」を利用します。
最近ではWindowsプラットフォームで名をはせたメーカーもLinux対応製品をリリースしていますが、Sophosは比較的古くからLinuxへの関心が高く、また日本語サイト(http://www.sophos.co.jp/)も充実しています。Qmail-Scannerはqmailにパッチを当てる必要があるものの、インストール自体は比較的容易で、既存システムへの組み込みも最小限の手間で行えます(注)。前回までで紹介したPOP Before SMTPやvpopmailなどが導入されている場合でも、特に大きな変更を行う必要はありません。
Sophos Anti-Virusのインストール
まずは、アンチウイルスソフトであるSophos Anti-Virusをインストールします。評価版(http://www.sophos.co.jp/downloads/products/)をダウンロードする際には氏名やメールアドレスなどの記入が必要ですが、無償評価期間中でもテクニカルサポートが受けられるので、手間を惜しまずに入力しましょう。
Linux用のファイルには、libc5対応版とlibc6対応版があります。ここ1年以内に発表されたディストリビューションであれば、まず間違いなくlibc6対応ですが、/lib/libc.so.*ファイルのバージョンでも確認できます。/lib/libc.so.6ファイルが存在する場合はlibc6対応版、/lib/libc.so.5ファイルが存在する場合はlibc5対応版をダウンロードします(編注)。
ここではlibc6対応版を例に作業を進めますが、libc5対応版を利用される場合は、ファイル名を置き換えるだけで同じように作業できます。
まず、適当な作業ディレクトリにファイルをダウンロードして展開します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
次に、スーパーユーザーでユーザー「sweep」を新規に作成し、インストール用スクリプトを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
これで、/usr/local/sav/と/usr/local/bin/に、それぞれウイルス定義ファイルと検知コマンド「sweep」がインストールされます。
ウイルススキャンの実行
試しにウイルススキャンを行ってみましょう。各ユーザーのホームディレクトリをスキャンする場合は、次のようにスキャン対象のファイルやディレクトリを引数に指定します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
もしこここでウイルスが検知されれば、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
のようにメッセージが表示されるので、「sweep -remove 感染ファイル名」でウイルスの除去を行う必要があります。スキャニングの際に感染ファイルの駆除まで行う場合は、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
のように、「-di」オプションを指定します。そのほかにも、すべてのファイルのスキャンを行う「-all」オプションやzipファイル中のファイルを対象にする「-zip」など、メールメッセージのウイルススキャンだけではもったいないほど多彩なオプションを備えています。詳しくは「man sweep」を実行するか、Sophos Anti-Virusのオンラインドキュメント(http://www.sophos.co.jp/support/docs/#unix)を参照してください。
定期的なウイルススキャンと同じくらい重要な作業が、ウイルスを検知するためのパターンファイルのアップデートです。Sophos Anti-Virusでは、「最新のウイルスID(IDE ファイル)のダウンロード」(http://www.sophos.co.jp/downloads/ide/index.html#ide)で各種定義ファイルを入手できます。zipファイルを入手した場合は、ファイルを解凍して/usr/local/savディレクトリに展開します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
これで、最新の定義ファイルを利用することができます。
Qmail-Scannerのインストール
ウイルススキャンコマンドであるsweepを呼び出すためのトリガ「Qmail-Scanner」をqmailに組み込みます。インストールには次のものが必要です。
- maildrop-1.3.8に含まれるreformime
- Perl 5.005_03+
- Perlモジュール Time::HiRes
- Perl module DB_File(大抵のディストリビューションではインストールされています)
- qmailへのパッチ
では、順番に見ていきましょう。
●reformime
http://download.sourceforge.net/courier/から、maildrop-1.3.8.tar.gzをダウンロードして展開・インストールします。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
●Time::HiResモジュール
次に、Perlにモジュールを追加します。/usr/bin/suidperlのオーナーとパーミッションを確認して、次のようになっていることを確認します(日付やファイルサイズは一例です)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
もし上記のようになっていない場合は修正しておきます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
次に、Time::HiResモジュールをhttp://www.cpan.org/modules/by-module/Time/からダウンロードして展開します。2002年4月現在の最新版はTime-HiRes-01.20.tar.gzです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
インストールを続けます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
●qmailへのパッチ
Qmail-Scannerをトリガにするには、環境変数「QMAILQUEUE」を解釈できるようにqmailにパッチを適用する必要があります。QMAILQUEUEを解釈することで、qmailの送受信プロセスのたびにQmail-Scannerを実行できるようになります。Qmail-Scannerに限らず、ほかのトリガプロセスで「qmail-queue」を置き換える場合、環境変数にそのプロセスを登録するだけで、さまざまなトリガプロセスを実装できるというわけです。
http://www.qmail.org/qmailqueue-patchをダウンロードして、qmailをインストールした際に展開したソースディレクトリでパッチを当てます。すでにソースディレクトリを削除している場合は、本連載の第1回を参照してください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ここで、動作中のqmailを停止させる必要があります。rcスクリプトを使って停止させた後、インストール作業を続けます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
●Qmail-Scanner
準備が整ったところで、Qmail-Scanner本体のインストールを行います。http://prdownloads.sourceforge.net/qmail-scanner/から最新版であるqmail-scanner-1.10.tgz(2002年4月現在)を作業ディレクトリにダウンロードして展開します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Qmail-Scannerは、1.03以降から日本語などの各ロケールにも対応し、ウイルス検出時のメッセージなどを日本語化できるようになっています。日本語を組み込むには、インストール時に環境変数LANGに「ja_JP.EUC」を設定します。最近のLinuxディストリビューションでは、一般ユーザーのLANGはすでに設定されていることがほとんどですが、rootでは「C」になっていることが多いため、手動で設定します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
となっていない場合は、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
を行います。「ja_JP.ujis」が設定されている場合も、あらためて「ja_JP.EUC」を設定してください。
環境変数が正しく設定できたら、インストールを続行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
この際、先ほどインストールしたSophos Anti-Virusのsweepコマンドがウイルススキャナとして正しく組み込まれているか確認します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
特にエラーもなく完了すれば終了ですが、場合によっては「stdarg.phが組み込めない」というエラーが出るかもしれません。その際は、次のようにしてstdarg.phファイルを作成します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
インストールが完了すると、/var/spool/qmailscanディレクトリに設定ファイルやスキャン履歴ログ、/var/qmail/bin/ディレクトリにqmail-scanner-queue.plが作成されます。
ウイルススキャンの準備
まず、qmail起動時に環境変数QMAILQUEUEに/var/qmail/bin/qmail-scanner-queue.plが設定されるように、rc起動スクリプトを変更します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
起動スクリプトの場所は各自の環境に合わせます。また、ここでは第1回で紹介したrcスクリプトに変更を加えていますが、POP Before SMTPやvpopmailを導入したrc起動スクリプトでも、同じように環境変数QMAILQUEUEを加えるだけでメール送受信時にウイルススキャンが実施されます
次に、検索対象を設定します。すべてのメッセージを展開してウイルススキャンを行うのは効率が悪いため、特定のファイル名や拡張子の添付ファイルを受け取らないようにできます。batやcomなどの拡張子のファイルを受け取り拒否するには、/var/spool/qmailscan/quarantine-attachments.txtに次の2行を加えます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
編集後は、次のようにコマンドを入力し、検索用データベースを更新します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ここで追加した以外にも、もっと多くのファイルをウイルス検知の対象にすることが望まれます。次のファイルを参考に、必要なものを追加しましょう。
http://www.y-min.or.jp/~nob/qmail/quarantine-attachments.txt
ウイルススキャンの確認
では、テストを行います。先ほど修正したrc起動スクリプトでqmailを起動します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
次に、qmail-scannerに付属するテストコマンドを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
これで、管理者あてにウイルスに感染している旨のメッセージが届けば成功です。また、ログの方も確認します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
まとめと次回予告
少し前まで、サーバでのウイルス検知は管理者の越権行為であると非難されるようなこともありましたが、最近では逆にアンチウイルスソフトをインストールすることが常識になりつつあります。また、ウイルス対策が施せないメールサーバでは会社で購入稟議が通らないこともしばしばです。フリーで構築されたものではウイルスなどのセキュリティへの対策が遅れているという、お偉方の偏見もこれで解決されることでしょう。まずは皆さんの手元のサーバで、お試し版を評価してその実力を確認してみてください。
次回はいよいよ大詰めです。実際の管理に役立つと思われるTipsをご紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.