amavisd-newからClamSMTPへ

先日より、当自宅メールサーバー(Postfix)の送受信ウィルスチェックとして、ClamAV+amavisd-newという環境で動かしていましたが、このamavisd-newのメールフィルタを入れることで、外部からSMTPサーバーとして当サーバーを使った場合や、自サーバーでのPHPやcgiからのメールの送信が約15秒程度遅延しておりました。

実際の使用において別に15秒くらい「ええじゃないかの大乱舞」だったわけですがどうも気に入らないので、ホストの名前解決に時間がかかってるかとホスト名を変えたりホストの名前解決順を変えたり色々試行錯誤しても解決しませんでした。
amavisd-newのフィルタを外せば即時送信されるので、amavisd-newが怪しく、この際ということで調べたら出てきたClamSMTPというフィルタを使用してみることにしました。

以下、自分用の覚書

ClamAVのインストール・設定と、freshclamの設定も終わっているものとする。
サーバーOSはCentOS5.0
  1. clamsmtpのSRPMを入手
    # wget http://www.inet.lt/clamsmtp/clamsmtp-1.9-1.src.rpmLink 
  2. clamsmtpのRPMをビルド
    # cd /usr/src/redhat/SPECS
    # rpmbuild -bb --clean clamsmtp.spec
  3. clamsmtpのRPMをインストール
    # cd ../RPMS/i386
    # rpm -ivh clamsmtp-1.9-1.i386.rpm
  4. clamsmtp.confの編集
    # vi /etc/clamsmtp.conf
    OutAddress: 10026 ← コメントアウトを削除
    Listen: 127.0.0.1:10025 ← コメントアウトを削除
    Header: X-Virus-Scanned: ClamAV ← コメントアウトを削除して編集
  5. ClamSMTPの起動
    # /etc/init.d/clamsmtpd start
  6. ClamSMTPをサービスに追加
    # chkconfig --add clamsmtpd
  7. ClamSMTPを自動起動に追加
    # chkconfig clamsmtpd on
  8. Postfixの設定を変更(amavisd-new→ClamSMTPD)
    # vi /etc/postfix/master.cf
    以下を全てコメントアウトまたは削除
    127.0.0.1:10025 inet n - n - - smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=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
    以下を追加
    scan unix - - n - 16 smtp
    -o smtp_send_xforward_command=yes
    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 smtpd_helo_restrictions=
    -o smtpd_client_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks_style=host
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8
    # vi /etc/postfix/main.cf
    content_filter=smtp-amavis:[127.0.0.1]:10024
    下記へ変更 ↓
    content_filter=scan:127.0.0.1:10025
  9. Postfix再起動
    # /etc/rc.d/init.d/postfix restart

後は、一通り動作確認。
・自サーバーから自アカウントへ発信
・自サーバーから外部ISP等のメールへ発信
して、メールヘッダに
X-Virus-Scanned: ClamAV
と表記があればOK

念のために、無害のウィルスLink を添付してメールが届かなければOK
(/etc/clamsmtp.conf内のVirusAction:でウィルスがあった場合の受信者への通知を行うスクリプトを作って通知するようにしてもいいですが、僕の場合は通知しないようにしています)

で、一応最後にamavisd-newを削除。
# yum -y remove amavisd-new

結果的に、メール送信にウィルスチェックを行っても遅延は発生しないようになり、1~2秒程度で受信者へ届くようになりましたとさ

めでたしめでたし

 クリックしてね! ブログランキング・にほんブログ村へ 


— posted by ちらみ at 20:22   commentComment [0]  pingTrackBack [0]

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

(**!) ;v) f(--;

     

[X] [Top ↑]

T: Y: ALL: