ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

01_linux:03_mail:02_postfix_amavisd_clamav

02 Postfix + amavisd + clamav

環境

CentOS 5.4
clamav-0.91.2

①ClamAVインストール

# yum install clamd

設定を修正

# vi /etc/clamd.conf
80 TCPSocket 3310
   ↓ コメントアウト
80 #TCPSocket 3310

170 User clamav
   ↓ コメントアウト
170 #User clamav

Clamav再起動

# service clamd restart

②amavisdインストール

# yum install amavisd-new

設定を修正

# vi /etc/amavisd.conf

14  #@bypass_spam_checks_maps  = (1);  # controls running of anti-spam code
    ↓ スパムチェックは行わない
14  @bypass_spam_checks_maps  = (1);  # controls running of anti-spam code

21 #$mydomain = 'example.com';   # a convenient default for other settings
    ↓ 自分のドメインを入れる
21 $mydomain = 'test.flateight.com';   # a convenient default for other settings

363  #['ClamAV-clamd',
364  #  \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"],
365  #  qr/\bOK$/m, qr/\bFOUND$/m,
366  #  qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
    ↓ コメントアウトを外す
363  ['ClamAV-clamd',
364    \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"],
365    qr/\bOK$/m, qr/\bFOUND$/m,
366    qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],

206   qr'^\.(exe-ms|dll)$',                   # banned file(1) types, rudimentary
    ↓ コメントアウト。exe,dllも送信できるようにする。
206 #  qr'^\.(exe-ms|dll)$',                   # banned file(1) types, rudimentary

添付ファイルがはじかれるので、この部分をコメントアウト

$banned_filename_re = new_RE(

### BLOCKED ANYWHERE
# qr'^UNDECIPHERABLE$',  # is or contains any undecipherable components
  qr'^\.(exe-ms|dll)$',                   # banned file(1) types, rudimentary
# qr'^\.(exe|lha|tnef|cab|dll)$',         # banned file(1) types
・
・
・
);

ウィルスや、スパムの最終的な処理方法 D_BOUNCEにしてあると、受け取ってもらえなくてずっと溜まってしまうので、D_DISCARDにしておく。

 $final_virus_destiny      = D_DISCARD;
 # $final_banned_destiny     = D_BOUNCE;
 # $final_spam_destiny       = D_BOUNCE;
 $final_banned_destiny     = D_DISCARD;
 $final_spam_destiny       = D_DISCARD;
 $final_spam_destiny       = D_PASS;

説明

設定変数 説明
$final_virus_destinyウィルスメールの最終的な処理方法。
$final_banned_destinybanned(禁止された)メールの最終的な処理方法。
$final_spam_destinyスパムメール($sa_kill_level_deflt以上のスコア)の最終的な処理方法。
$final_bad_header_destinyヘッダにASCII以外の文字が含まれているメール(Bad Header)の最終的な処理方法。
設定値 説明
D_DISCARDメールは受信者に配送せず、送信者にも通知しない。
D_BOUNCEメールは受信者には配送されないが、配送されなかったことを送信者に通知する。
ただし、例外的に送信者に通知しないものがある。
D_REJECTメールは受信者には配送されないが、配送されなかったことを送信者に通知する。
D_PASSメールは配送される。

③Postfixの設定

master.cf修正

# vi /etc/postfix/master.cf
smtp-amavis unix -    -    n    -    2  smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes

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

main.cf修正

# vi /etc/postfix/main.cf
content_filter=smtp-amavis:[127.0.0.1]:10024

postfix再起動

# /etc/init.d/postfix restart

MTAの切り替えもやっておく

④Spamassassinと連携する場合

# vi /etc/amavisd.conf
@bypass_spam_checks_maps  = (1);  # controls running of anti-spam code
    ↓ コメントアウトを付ける
#@bypass_spam_checks_maps  = (1);  # controls running of anti-spam code

    ↓スパムを検出した際の通知先を追加。
$spam_admin               = "spamalert\@$mydomain";  # notifications recip.

whitelist_from,blacklistfromが効かない

/etc/mail/spamassassin/local.cfファイルを編集して、spamassassinを再起動しても設定は反映されない。
ずっとなんでだろ?でした。

設定を反映させるには、amavisdの再起動が必要です。

# vi /etc/mail/spamassassin/local.cf

# /etc/init.d/amavisd restart 

X-Spamのヘッダが入らない

スパムやウィルスのフィルタは通っているけど、
メールのヘッダは変更されていない。

どうも@local_domains_mapsにマッチした場合に下の設定が効くらしい。

$sa_tag_level_deflt  = 2.0;  # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.2;  # add 'spam detected' headers at that level

デフォルトだと$mydomainしか入ってないので、
チェックする全てのドメインを記述してあげる。

# vi /etc/amavisd.conf
@local_domains_maps = ( [ ".$mydomain"] );
          ↓
@local_domains_maps = ( [".$mydomain",".ma21.ath.cx",".fl8.jp"] );  # list of all local domains

⑤スパム対策(RBLを利用)

ブラックリストを利用してチェックする。

# vi /etc/postfix/main.cf
------- 一番下に入れる -------
smtpd_client_restrictions = permit_mynetworks,
                            #reject_rbl_client relays.ordb.org,
                            reject_rbl_client spamcop.net,
                            reject_rbl_client dynablock.wirehub.net,
                            reject_rbl_client all.rbl.jp,
                            #reject_rbl_client opm.blitzed.org,
                            #reject_rbl_client relays.ordb.org,
                            #reject_rbl_client relays.visi.com,
                            reject_rbl_client sbl.spamhaus.org,
                            check_client_access hash:/etc/postfix/reject_client,
                            permit

Tips

スパム・ウィルスメールの保管場所

このフォルダ内に保管されます。

# ll /var/virusmails/

spamassassinが起動しない

こんなエラーでspamassassinが起動してくれない。

# /etc/init.d/spamassassin start
spamd を起動中: child process [26884] exited or timed out without signaling production of a PID file: exit 255 at /usr/bin/spamd line 2588.

/var/log/mailログを見てみたら、amavisdのログにsa-updateしろと出ておりました。

# sa-update
# /etc/init.d/spamassassin start

sa-updateしたら、正常に起動しました。

ウィルスメールのテスト

本文に下記を書いたメールを送ってちゃんと検知すればOK

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

スパムメールのテスト

本文に下記を書いたメールを送ってちゃんと検知すればOK

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
01_linux/03_mail/02_postfix_amavisd_clamav.txt · 最終更新: 2016/06/06 12:26 by matsui