ClamSMTP 1.10

(最終更新日時:2011-01-17 05:48:13)
アンチウィルスソフト Clam AntiVirus をSMTPメールサーバー Postfix と連携させるためのフィルター ClamSMTP をインストールします。

clamsmtp-1.8.tar.gz による構築情報は、 http://www.system-act.com/archives/mail/clamsmtp.html に移動しました。
参照の状況により予告なく削除いたします。ご了承ください。
なお、今後 ClamSMTP の tar による構築情報の更新予定はありません。

インストール

ソースRPMを取得しインストールします。
公式サイト : http://memberwebs.com/stef/software/clamsmtp/
# cd /usr/src/redhat/SRPMS
# wget http://www.inet.lt/clamsmtp/clamsmtp-1.10-1.src.rpm
# rpmbuild --rebuild clamsmtp-1.10-1.src.rpm
# yum -y --nogpgcheck localinstall ../RPMS/x86_64/clamsmtp-1.10-1.x86_64.rpm
# rm -f clamsmtp-1.10-1.src.rpm

設定

設定ファイルを編集します。
# vi /etc/clamsmtpd.conf

       :
# Address to listen on (defaults to all local addresses on port 10025)
#Listen: 0.0.0.0:10025
Listen: 127.0.0.1:10025                                  localhostのポートで待機します
       :
# A header to add to all scanned email
#Header: X-Virus-Scanned: ClamAV using ClamSMTP
Header: X-Virus-Scanned: ClamAV using ClamSMTP           メールヘッダを追加します

# Directory for temporary files
#TempDirectory: /tmp
TempDirectory: /tmp                                      作業用ディレクトリを指定します
       :
# Whether or not to keep virus files
#Quarantine: off
Quarantine: on                                           ヘッダ情報を通知するため、メールを一時的に残します
       :
# User to switch to
#User: clamav
User: clamav                                             clamav ユーザで実行します
       :
#VirusAction: /path/to/some/script.sh
VirusAction: /usr/local/etc/email_virus_action.sh        ウィルス検出時の実行スクリプトです
       :
ウィルス検出時の実行スクリプトを作成します。
# vi /usr/local/etc/email_virus_action.sh

#!/usr/bin/perl
#
# ClamSMTP Virus検出時の実行Script
#
# 2008/07/16 System House ACT

use Encode qw(from_to);

$FROM   = 'ClamSMTP <clamsmtp>';
$TO     = 'virusalert';
$MAILER = '/usr/sbin/sendmail -t';
$LINE   = "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n";

$hdr = <<EOM;
From: $FROM
To: $TO
Subject: ウィルスメール受信通知($ENV{VIRUS})
EOM

$body = <<EOM;
以下のメールからウィルス($ENV{VIRUS})が検出されました。
メールおよびウィルスはメールサーバが削除しました。

発信元:$ENV{SENDER}

宛先  :$ENV{RECIPIENTS}

メールのヘッダ情報:
EOM

open(F, "|$MAILER") || die "$MAILER: $!";
  Encode::from_to($hdr,  'utf8', 'iso-2022-jp');
  Encode::from_to($body, 'utf8', 'iso-2022-jp');
  print F $hdr;
  print F $body;
  open(H, "formail -X '' < $ENV{EMAIL} |") || die;
    @hdrinf = <H>;
  close(H);
  print F $LINE;
  foreach (@hdrinf) { print F "$_"; }
  print F $LINE;
close(F);

unlink($ENV{EMAIL});

# chmod 755 /usr/local/etc/email_virus_action.sh

# メールのヘッダ情報を抽出するため procmail 付属の formail を使用していますので、
# procmail をインストールします。
# yum -y install procmail

起動

自動起動スクリプトを取得し、起動します。
# cd /etc/rc.d/init.d
# wget http://memberwebs.com/stef/software/clamsmtp/contrib/clamsmtpd
# chmod 755 /etc/rc.d/init.d/clamsmtpd
# chkconfig clamsmtpd on
# service clamsmtpd start
a System House to build an Accounting system by the Computer Technology