前陣子把郵件轉送機制做起來之後
接著要應付的就是垃圾信的問題
先前有試過把SpamAssassin和Amavis掛上
但好像不是那麼容易搞定 (這兩個套件好像很依賴 CPAN 的模組?)
所以就想說先暫時用 header_checks 和 body_checks 頂一下
在參考一些資料之後就開始實作了
但最後的結果卻是出乎我的意料
目前遭遇的問題如下:
目前的郵件系統架構如下:
main.cf檔部份內容
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_rbl_client relays.ordb.org,
reject_rbl_client dsn.rfs-ignorant.org,
reject_rbl_client spam.ecenter.idv.tw
#check_client_access regexp:/etc/postfix/client_checks
smtpd_sender_restrictions = permit_mynetworks,
#check_sender_access regexp:/etc/postfix/sender_access,
reject_non_fqdn_sender,
#reject_unknown_reverse_client_hostname,
reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
header_checks = regexp:/etc/postfix/header_checks
body_checks = regexp:/etc/postfix/body_checks
header_checks的部份內容:
/^From:.*Free Sample/ REDIRECT 垃圾郵件暫存信箱
/^From:.*Enlargement/ REDIRECT 垃圾郵件暫存信箱
/^From:.*Penis Growth/ REDIRECT 垃圾郵件暫存信箱
...............(略)
/^Subject:.*Free Sample/ REDIRECT 垃圾郵件暫存信箱
/^Subject:.*Enlargement/ REDIRECT 垃圾郵件暫存信箱
/^Subject:.*Penis Growth/ REDIRECT 垃圾郵件暫存信箱
...............(略)
以下是 /var/log/maillog 的片段:
Aug 7 21:07:49 proxy postfix/smtpd[26021]: connect from mail-wy0-f179.google.com[74.125.82.179]
Aug 7 21:07:51 proxy postfix/smtpd[26021]: 264D5CE5A7: client=mail-wy0-f179.google.com[74.125.82.179]
Aug 7 21:07:51 proxy postfix/cleanup[26032]: 264D5CE5A7: redirect: header Received: from mail-wy0-f179.google.com (mail-wy0-f179.google.com [74.125.82.179])??by proxy.公司的網域名稱 (Postfix) with ESMTP id 264D5CE5A7??for <我在公司用的信箱>; Sun, 7 Aug 2011 21:07 from mail-wy0-f179.google.com[74.125.82.179]; from=<我的私人信箱> to=<我在公司用的信箱> proto=ESMTP helo=<mail-wy0-f179.google.com>: 垃圾郵件暫存信箱
Aug 7 21:07:51 proxy postfix/cleanup[26032]: 264D5CE5A7: message-id=<CACCNw29cZBQSZ6z4Z2o+9oyvGZtsDkRK5XuTk=EwKcHqgq4jPQ@mail.gmail.com>
Aug 7 21:07:51 proxy postfix/qmgr[25886]: 264D5CE5A7: from=<我的私人信箱>, size=1537, nrcpt=1 (queue active)
Aug 7 21:07:51 proxy postfix/smtp[26047]: 264D5CE5A7: to=<垃圾郵件暫存信箱>, orig_to=<我在公司用的信箱>, relay=192.168.1.184[192.168.1.184]:25, delay=1.6, delays=1.4/0/0.01/0.12, dsn=2.6.0, status=sent (250 2.6.0 <CACCNw29cZBQSZ6z4Z2o+9oyvGZtsDkRK5XuTk=EwKcHqgq4jPQ@mail.gmail.com> Queued mail for delivery)
Aug 7 21:07:51 proxy postfix/qmgr[25886]: 264D5CE5A7: removed
上面的第4, 6, 7行就是讓我感到很奇怪的地方:
以前用Sendmail+SpamAssassin也是會收到一堆垃圾信,在改了POSTFIX之後再加上下面的參數設定,基本上已經可以阻擋了大部分的垃圾信了,請參考
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
比對字串, 請修正為下例試試:
/^From: .*Free Sample/
請注意 : 與 . 之間的空白