ユーザ用ツール

サイト用ツール


01_linux:03_mail:02_postfix_amavisd_clamav

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
01_linux:03_mail:02_postfix_amavisd_clamav [2015/11/24 07:47] matsui01_linux:03_mail:02_postfix_amavisd_clamav [2016/06/06 03:26] (現在) – [postfix再起動] matsui
行 1: 行 1:
 +====== 02 Postfix + amavisd + clamav ======
  
 +
 +===== 環境 =====
 +CentOS 5.4
 +clamav-0.91.2
 +
 +===== ①ClamAVインストール =====
 +<code>
 +# yum install clamd
 +</code>
 +
 +==== 設定を修正 ====
 +
 +<code>
 +# vi /etc/clamd.conf
 +80 TCPSocket 3310
 +   ↓ コメントアウト
 +80 #TCPSocket 3310
 +
 +170 User clamav
 +   ↓ コメントアウト
 +170 #User clamav
 +</code>
 +
 +==== Clamav再起動 ====
 +<code>
 +# service clamd restart
 +</code>
 +
 +===== ②amavisdインストール =====
 +<code>
 +# yum install amavisd-new
 +</code>
 +
 +==== 設定を修正 ====
 +
 +<code>
 +# 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
 +</code>
 +
 +=== 添付ファイルがはじかれるので、この部分をコメントアウト ===
 +<code>
 +$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
 +
 +
 +
 +);
 +</code>
 +
 +=== ウィルスや、スパムの最終的な処理方法 D_BOUNCEにしてあると、受け取ってもらえなくてずっと溜まってしまうので、D_DISCARDにしておく。 ===
 +
 +<code>
 + $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;
 +</code>
 +
 +=== 説明 ===
 +
 +^  設定変数  ^  説明  ^
 +|$final_virus_destiny|ウィルスメールの最終的な処理方法。|
 +|$final_banned_destiny|banned(禁止された)メールの最終的な処理方法。|
 +|$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修正 ====
 +
 +<code>
 +# 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
 +</code>
 +
 +==== main.cf修正 ====
 +
 +<code>
 +# vi /etc/postfix/main.cf
 +content_filter=smtp-amavis:[127.0.0.1]:10024
 +</code>
 +
 +==== postfix再起動 ====
 +
 +<code>
 +# /etc/init.d/postfix restart
 +</code>
 +
 +
 +==== MTAの切り替えもやっておく ====
 +
 +
 +[[01_linux:03_mail:10_mtaの切り替え]]
 +===== ④Spamassassinと連携する場合 =====
 +
 +<code>
 +# 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.
 +</code>
 +
 +==== whitelist_from,blacklistfromが効かない ====
 +/etc/mail/spamassassin/local.cfファイルを編集して、spamassassinを再起動しても設定は反映されない。
 +ずっとなんでだろ?でした。
 +
 +<color red>設定を反映させるには、amavisdの再起動が必要です。</color>
 +<code>
 +# vi /etc/mail/spamassassin/local.cf
 +
 +# /etc/init.d/amavisd restart 
 +</code>
 +
 +==== X-Spamのヘッダが入らない ====
 +
 +スパムやウィルスのフィルタは通っているけど、
 +メールのヘッダは変更されていない。
 +
 +どうも@local_domains_mapsにマッチした場合に下の設定が効くらしい。
 +<code>
 +$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
 +</code>
 +
 +デフォルトだと$mydomainしか入ってないので、
 +チェックする全てのドメインを記述してあげる。
 +
 +<code>
 +# vi /etc/amavisd.conf
 +@local_domains_maps = ( [ ".$mydomain"] );
 +          ↓
 +@local_domains_maps = ( [".$mydomain",".ma21.ath.cx",".fl8.jp"] );  # list of all local domains
 +</code>
 +
 +
 +
 +===== ⑤スパム対策(RBLを利用) =====
 +ブラックリストを利用してチェックする。
 +
 +<code>
 +# 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
 +</code>
 +
 +
 +===== Tips =====
 +
 +==== スパム・ウィルスメールの保管場所 ====
 +
 +このフォルダ内に保管されます。
 +<code>
 +# ll /var/virusmails/
 +</code>
 +
 +==== spamassassinが起動しない ====
 +
 +こんなエラーでspamassassinが起動してくれない。
 +<code>
 +# /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.
 +</code>
 +
 +/var/log/mailログを見てみたら、amavisdのログにsa-updateしろと出ておりました。
 +
 +<code>
 +# sa-update
 +# /etc/init.d/spamassassin start
 +</code>
 +
 +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
 +
 +{{tag>postfix amavisd clamav spamassassin}}