|
14-6.amavis-newからclamsmtpへ |
2007年12月7日 | 2008年 2月7日 改訂 |
12月にperlのアップデートで起動しなくなったamavis-newに変わり、clamsmtpというソフトを導入し、切り替えることにしました。 |
amavisd動かなくなる
アップデートそのものは問題なく完了。念のため再起動。
いつもは緑の[OK]がづらづら並ぶが一個[FAILED]が...
何かと見るとamavisdが起動に失敗!!!。
やばいと思って再度再起動してみたが結果は同じ。
試しにメールの送受信を行ってみたがやはり送受信はできず、メールは消えてしまう。
夜も遅かったのでとりあえずpostfixのmain.cfとmaster.cfからamavisdの設定を外して再起動。ウイルスチェックはやらないがメールの送受信はできる状態にしておいて、寝た。
次の日、いろいろいじってみたがどうしても起動できず。
moduleが足りないとかなんたらかんたら言っている。原因わからず。
12月はとにかく忙しいので、もうそのまま。最近ウィルスメールが来たこともないし...
ウイルスチェッカー取り外し
content_filter = smtp-amavis:[127.0.0.1]:10024
の行を取り除きます。
またmaster.cfから Amavis Virus Scanner Setting の部分を取り除きます。
(実際はまた同じようなことを書くかもしれないので#でコメントアウトしただけ。)
#service postfix reload でウイルスチェックなしでpostfixを起動させておきます。
消えたメールの復活
#postsuper -r ALL
これでamavis-newへのcontent_filter情報を取り除いてウイルスチェックなしで再配送します。
amavisはやめて同様のソフトのclamsmtpを使うことにします。
clamsmtpインストール
http://www.nk2.org/d/postfix.html あたりを参考にさせていただきました。
ソースファイルの入手先
http://www.inet.lt/clamsmtp/
http://memberwebs.com/stef/software/clamsmtp/
今回 http://www.inet.lt/clamsmtp/ より clamsmtp-1.9-1.src.rpm をダウンロードしました。
ダウンロードしたファイルをrpm/SRPMSに置いてソースをインストールします。
$cd rpm/SRPMS
$rpm -ivh clamsmtp-1.9-1.src.rpm
引き続きRebuild
$cd ../SPECS
$rpmbuild -ba clamsmtp.spec
1分ほどでコンパイル完了。
rpm/RPMS/i386/clamsmtp-1.9-1.i386.rpm ができました。
#rpm -ivh clamsmtp-1.9-1.rpm
これも一瞬で完了です。
amavis-newアンインストール
インストールに使用したソースのディレクトリで
#amavisd_install.sh del
もしソースを捨ててしまっていたら、amavisd_install.shには次のように書いてありますので、これを手動で実行すればいいわけです。
if [ "$1" = "del" ] ; then
rm -f /usr/sbin/amavisd && echo "OK: rm -f /usr/sbin/amavisd"
rm -f /etc/amavisd.conf && echo "OK: rm -f /etc/amavisd.conf"
rm -f /etc/rc.d/init.d/amavisd && echo "OK: rm -f /etc/rc.d/init.d/amavisd"
rm -f /var/amavis/notify_virus_admin.txt && echo "OK: rm -f /var/amavis/notify_virus_admin.txt"
rm -f /var/amavis/notify_virus_recips.txt && echo "OK: rm -f /var/amavis/notify_virus_recips.txt"
rm -f /var/amavis/notify_virus_sender.txt && echo "OK: rm -f /var/amavis/notify_virus_sender.txt"
fi
clamsmtp+postfix設定
変えたところ
OutAddress: 127.0.0.1:10026
Listen: 127.0.0.1:10025
ClamAddress: /var/run/clamav/clamd
Header: X-Virus-Scanned: Clamav using ClamSMTP
TempDirectory: /var/tmp/clamsmtp
Quarantine: on
User: clamav
VirusAction: /usr/local/bin/virusalert.sh
ClamAddressの/var/run/clamavディレクトリを作成しUser clamavの書込権限を与えておきます。clamsmtpdはここにソケットとpidファイルをつくります。
ウィルスメールを隔離するためのディレクトリ /var/tmp/clamsmtp をつくり、clamavに書込権限を与えておきます。
/usr/local/bin/virusalert.sh をつくり、以下を書き込んで実行許可を与えておきます。
上記参考サイトのを参考にさせていただきました。
# This is virus alert message of clamsmtp
FROM="Clam AntiVirus
TO="virusalert"
MAILER="/usr/sbin/sendmail -it"
SUBJECT=`/bin/echo "ウィルスが検出されました" | /usr/bin/nkf -jMB`
$MAILER <<EOM
From: $FROM
To: $TO
Subject: =?ISO-2022-JP?B?$SUBJECT?=
A virus ($VIRUS) was found.
The mail has been quarantined as: $EMAIL
[From]: $SENDER
[To]: $RECIPIENTS
EOM
exit 0
/etc/postfix/aliases に警告メールを受ける管理者を定義しておきます。
virusalert: xxxxx@xxxxx.xxx
/etc/postfix/main.conf に
#ClamSMTP Virus Scannerの設定
content_filter = virus-scan:127.0.0.1:10025
/etc/postfix/master.conf に
# postfixからclamsmtpへ
virus-scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
#clamsmtpよりpostfixへ
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
amavis-newの設定にclamsmtpの設定を追加したので余計なのもあるかもしれません。
確認
メールは送られず、管理者(aliasesで定義したvirusalert)宛以下のような警告メールがきます。
[件名]: ウィルスが検出されました
A virus (Eicar-Test-Signature) was found.
The mail has been quarantined as: /var/tmp/clamsmtp/virus.xxxx
[From]: xxxx@xxxx.xx
[To]: xxxx@xxxx.xx
...OKです。