ClamSMTPのインストール

○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
# rpm -ivh ../RPMS/i386/clamsmtp-1.10-1.i386.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 ←追加

# The address clamd is listening on
ClamAddress: /var/run/clamav/clamd.sock
 ↓
ClamAddress: /var/run/clamav/clamd.socket ←変更

# A header to add to all scanned email
Header: X-Virus-Scanned: ClamAV using ClamSMTP ←コメント解除

# Directory for temporary files
TempDirectory: /tmp ←コメント解除
 :
# Whether or not to keep virus files
#Quarantine: off
Quarantine: on ←追加
 :
# User to switch to
#User: clamav
User: 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 ';
$TO = 'virusalert';
$MAILER = '/usr/sbin/sendmail -t';
$LINE = "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-n";

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

$body = < 以下のメールからウィルス($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 = ;
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