Postfixのぺーじ | ||
− Postfix - AMaViS - Sweep HOWTO | ||
更新: 2005年2月19日 | [English Page] |
ホーム >オリジナルドキュメント >Postfix - AMaViS - Sweep HOWTO
この HOWTO の原文は Shannon Lekas さん (Shannon.lekas-at-flyingmug.com) に提供して頂きました。翻訳の許可もいただきましたので、 私(ike@kobitosan.net)が日本語に翻訳しました。
この文章はかなり荒いものです... そしてインストール後におこなったものです... おそらく見逃したことは何もないと思いますが。 (ここで使う)システムは RedHat 7.3 で、up2date を (kernel アップデートも含めて) 常におこなっています。 私は Sophos sweep をウィルススキャナとして動かしていますが、 以下に示す amavis パッケージは約11種類のスキャナをサポートしています。 このドキュメントは、あなたがすでに postfix を動かしていて、 sophos がインストール済みであることを想定しています。 新しい sophos の IDE ファイルを週に1回またはそれ以上取得するために、 cron から動かすスクリプトで wget コマンドを使うことをお勧めします。 以下は私がインストールする際に必要となったパッケージです。 私はこれらの rpm をホスティングするつもりはありませんが、 CD に入れてあるので、もしホスティングしたい人がいれば、 それらを FTP または E-mail で送ります。 代わりに、以下の正確な名前を単に www.google.com で検索してもよいでしょうし、それらの多くは rpmfind.net やその他のサイトで 見つかるでしょう。
amavisd-postfix-20010714-3rm.i386.rpm perl-Convert-UUlib-0.212-1.noarch.rpm arc-5.21e-4.i386.rpm perl-IO-stringy-2.108-1.i386.rpm perl-MailTools-1.50-1.noarch.rpm db3x-3.2.9-4.i386.rpm perl-MIME-tools-5.411-2.noarch.rpm lha-1.14i-4.2rm.i386.rpm perl-TimeDate-1.10-14.i386.rpm ncompress-4.2.4-1cl.i386.rpm perl-Unix-Syslog-0.98-1.noarch.rpm perl-Archive-Tar-0.22-10.i386.rpm unarj-2.43-10.i386.rpm perl-Archive-Zip-1.00-1.i386.rpm unrar-2.71-1.1rm.i386.rpm perl-Compress-Zlib-1.16-1.i386.rpm xbin-2.3-4.i386.rpm perl-Convert-TNEF-0.17-1.noarch.rpm zoo-2.10-7.i386.rpm
ダウンロードしたら、それらのインストールを始め、それから 最後に amavis rpm をインストールしてください (そうしないと 依存関係のエラーになるでしょう)。
$rpm -Uvh packagename.rpm
注意: 他に必要なパッケージがあれば,それらは全て私が入れ忘れたものです。 問題があって私に連絡をくれたら、私のシステムと比較するために rpm -qa から抜き出したものを送ります (Shannon.lekas-at-flyingmug.com)。 インストールが終わったら up2date が動いていることを確認してください。 Redhat 製の rpm のいくつかが更新されるでしょう。 最後に Amavis の rpm をインストールします。
$rpm -Uvh amavisd-postfix-20010714-3rm.i386.rpm
この時点ではエラーは出ないはずです。 注意: %pre-scriplet error% エラーが出た場合には、簡単な解決法が あります... これを見つけるまでにとても時間がかかりました。 linuxconfig を開き、UID が 77 の全てのユーザの UID を変えてください。 amavis rpm は vscan というユーザを作りますが、UID 77 がすでに 使われていると rpm は失敗します。UID を変更すれば、RPM は問題なく インストールできるでしょう。ここでこのコマンドを実行します。
$Service amavisd start
これは rpm でインストールされたデーモン版の amavis を起動します。 この rpm パッケージはすでにデフォルトシェルが失敗するような vscan ユーザをインストールしていることに注意してください。 これにより、telnet セッションやコンソールにこの ID では 誰もログインできません。
次に amavisd.conf ファイルを変更します。
$vi /etc/amavisd.conf
設定ファイルに次のように書いてあることに気づくでしょう:
# amavisd (snapshot-20010714) was configured for use with: # ALL
これはさまざまなアンチウィルススキャナを動かすのに、amavis を 再コンパイルする必要がないことを意味しています。 前にも述べたように、私は sweep を使っています。 そこで私は HBEV path "/usr/bin/antivirus" のエントリを削除し、 "" に変更しました。
# H+BEDV AntiVir $antivir = "";
そして sophos antivirus バイナリのパスを入れました。
# Sophos Anti Virus (sweep) $sophos = "/usr/local/bin/sweep"; $sophos_ide = "/usr/local/sav";
sophos を他のディレクトリにインストールしたり、IDE ファイルが 別のディレクトリにある場合は、適当に読み替えてください。 ここで重要なのは、使いたいスキャナ以外のすべてのアンチウィルス スキャナのパスが "" となっていることを確認することです。
ここで何が起こっているかを知るために、ロギングを有効にすることを お勧めします。
$DO_SYSLOG = "yes"; # Directory to put log entries (if not using syslog) $LOGDIR = "/var/spool/vscan/amavis"; $LOGFILE = "amavis.log"; # 0: default - startup/exit/failure messages # 1: args passed from client # 2: virus scanner output # 3: server client # 4: decompose parts $log_level = 4;
syslog = yes をセットすることは、amavis のログエントリが /var/log/messages に書かれることを意味します。 サーバに別の ssh セッションを開いて、何が起こっているかを監視する ために次のコマンドを実行するとよいでしょう。
$tail -f /var/log/messages
log_level = 4 を設定すると、非常に詳細なログメッセージを 得ることが出来ます。
これらを変更したら、次のコマンドを実行します。
$service amavisd restart
/var/log/messages を tail すれば、新しいロギングが有効に なっていることがわかるでしょう。
postfix に入りましょう。
メールを postfix から amavis と sweep に渡してやる必要があります。 これがわかるまでに、私は少し時間がかかりました...そしてこの方法は 完璧ではないかもしれませんが動いています...これより良い方法があれば 私にメールで送ってください。
$vi /etc/postfix/main.cf
ファイルの最後に次の行を追加します。
content_filter = vscan:[127.0.0.1]:10025
これはユーザ vscan が localhost の 10025 番でコンテンツフィルタリング することを postfix に伝えます。
保存して終了します。
ここで master.cf ファイルを編集します。
$vi /etc/postfix/master.cf
次の2行をファイルの最後に加えます。
vscan unix - n n - 10 pipe user=vscan argv=/usr/sbin/amavis ${sender} ${recipient} localhost:10025 inet n - n - - smtpd -o content_filter=
保存して終了します。
次のコマンドを実行します:
$postfix reload
postfix は設定を更新し、これで準備が整います。maillog ファイルを tail していれば、リフレッシュされるのがわかるでしょう。
$tail -f /var/log/maillog
自分自身に email を送ると、maillog ファイルにメールを受信したという エントリが見られるでしょう。 それから、amavis 配送にメールが中継されたというエントリが 見られるでしょう。この時点で /var/log/messages ファイルに、 sweep がスキャンし、配送のために postfix にファイルを戻したという エントリが見つかるはずです。
www.eicar.com へ行って テストウィルスをダウンロードし、それを自分自身にメールを送ると、 /var/log/messages ファイル出力にウィルスが見つかったという 行が見つかるでしょう。その時点で警告メールが作られるはずです。
注意すべきこと。私は包括的なボディチェックも同様にサーバで 動かしています。これでウィルススキャナによる不必要な処理を 避けています。私のサーバでは、生の実行ファイル、つまり .exe, .com, .vbs などがメールで送られるのを認めていません。 ボディチェックは入ってきたり出ていくメールがウィルススキャン される前になされます。 そのため、ウィルスが入ってきても単純な実行ファイルであれば、 サーバがこの形式の添付ファイルを認めていないといって、 ボディチェックが蹴り返すことになります。すなわち、ファイルが ウィルススキャナに渡す必要がなく、処理サイクルを浪費しません。
これが役に立つことを願ってます。
Shannon