作者 主題: postfix, spamassassin 廣告信心得  (閱讀 70296 次)

0 會員 與 1 訪客 正在閱讀本文。

winson101

  • 懷疑的國中生
  • **
  • 文章數: 74
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #30 於: 2004-06-25 11:47 »
請教樓上 twu2 前輩:
sendmail 可否作到相同的功能

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #31 於: 2004-06-25 11:53 »
下列方法只適用於 postfix 2.1.x 的版本.

加上額外的 header, 以便於後續的 spam filter 來辨識信件怎麼送進來的.

修改 main.cf 如下:
代碼: [選擇]
smtpd_client_restrictions =
        check_client_access cidr:/etc/postfix/header-local
        permit_mynetworks
        check_client_access cidr:/etc/postfix/header-auth
        permit_sasl_authenticated
        check_client_access cidr:/etc/postfix/header-remote
        check_client_access pcre:/etc/postfix/client_checks
        reject_rbl_client relays.ordb.org
        reject_rbl_client list.dsbl.org
        reject_rbl_client b1.spamcop.net
        reject_rbl_client rbl.maps.vix.com
        reject_rbl_client dul.maps.vix.com
        reject_rbl_client relays.maps.vix.com
        reject_rhsbl_client dns.rfc-ignorant.org


使用 PREPEND 加上自訂的 header.

header-local:
代碼: [選擇]
0.0.0.0/0 PREPEND X-TeaTime-Auth-LOCAL: LOCAL

header-auth:
代碼: [選擇]
0.0.0.0/0 PREPEND X-TeaTime-Auth-SASL: SASL

header-remote:
代碼: [選擇]
0.0.0.0/0 PREPEND X-TeaTime-Auth-NONE: NONE

這樣子的話, 如果信件是在 mynetwork 的機器送來的, 會只有
X-TeaTime-Auth-LOCAL: LOCAL
這一個 header.

如果信件經由 SASL 之後才收下, 會有
X-TeaTime-Auth-LOCAL: LOCAL
X-TeaTime-Auth-SASL: SASL
兩個 header.

如果信件不是上述兩個情形, 則會有
X-TeaTime-Auth-LOCAL: LOCAL
X-TeaTime-Auth-SASL: SASL
X-TeaTime-Auth-NONE: NONE
三個 header.

我們就可以依據上述三個 header 的存在與否, 來給 spamassassin 分數:
代碼: [選擇]
# auth
header __T_AUTH_LOCAL X-TeaTime-Auth-LOCAL =~ /^LOCAL/
header __T_AUTH_SASL X-TeaTime-Auth-SASL =~ /^SASL/
header __T_AUTH_NONE X-TeaTime-Auth-NONE =~ /^NONE/

meta T_AUTH_NONE (__T_AUTH_NONE)
describe T_AUTH_NONE Received from remote site without authenticated
score T_AUTH_NONE 0.001

meta T_AUTH_SASL (!__T_AUTH_NONE && __T_AUTH_SASL)
describe T_AUTH_SASL Received with authenticated user
score T_AUTH_SASL -4

meta T_AUTH_LOCAL (!__T_AUTH_LOCAL || !__T_AUTH_SASL)
describe T_AUTH_LOCAL Received from local network
score T_AUTH_LOCAL -4


這樣子, 可以讓透過 sasl 或 local 寄入的信件, 不易被認為是 spam.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #32 於: 2004-06-25 11:56 »
引述: "winson101"
請教樓上 twu2 前輩:
sendmail 可否作到相同的功能


印象中好像看到有人討論過, 似乎可以做到. 不過我也不清楚.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #33 於: 2004-06-25 12:07 »
下列方法只適用於 postfix 2.1.x 的版本.

以往我們只能在 postfix 收下信件之後, 再利用 content_filter 把信件給 amavisd-new 之類的程式來檢查, 也就是信件實際上對發信方來說, 已經被收下來了.

在 postfix 2.1 的版本中, 我們可以利用另外的方法來做這個動作, 讓 postfix 在信件收下來之後, 直接轉給 amavisd-new 來檢查, 然後才決定是否接受該信件或 reject.

修改 main.cf, 把 content_filter = smtp-amavis:[127.0.0.1]:10024 移除.
修改 master.cf, 將原本的 smtp-amavis 的設定移除. 將 smtp 的設定改成:
代碼: [選擇]
smtp      inet  n       -       n       -       32       smtpd
        -o smtpd_proxy_filter=127.0.0.1:10024
        -o smtpd_client_connection_count_limit=16


smtpd_proxy_filter 指定在 DATA 指令結束後, 把信件交給 filter 檢查.
smtpd_client_connect_count_limit 限制同時連線的數量.

這樣的設定, 會造成對方寄信後, 必須等檢查結束才會回應信件發送成功或失敗, 因此, 如果你的系統一天會收很多信件, 可能會造成這部分的 loading 過重, 請自行決定是否使用這種設定.

這樣設定的好處, 在於對於 virus or spam 的信件, 我們不會收下 (amavisd-new 一樣會有備存的檔案留下), 對方會認為這個信件沒有送成功.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #34 於: 2004-06-28 17:34 »
前面提到加上 X-Auth 的 header, 建議放在 smtpd_data_restrictions 中, 不要放 smtpd_client_restrictions 中, 以免有多個收寄人時, 會有一堆 X-Auth 的 header 出現.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #35 於: 2004-07-04 10:56 »
使用 smtpd_proxy_filter 搭配 amavisd-new 時, 要記得修改 $child_timeout 的設定值, 這個設定值是 amavisd-new 在接收信件時的時間, 因為原本的作法都只是由 local 的 postfix 傳到 amavisd-new, 所以時間應該都不會太久, 但是改用 smtpd_proxy_filter 的作法之後, 就等於是對方寄信進來的時間, 有可能會使用比較長的時間來傳輸.

還有, 如果你的 amavisd-new 在檢查一封信的時間過長的話, 可能會造成用戶端的發信程式在傳送信件後, 等不到回應就逾時. 一般多數程式可能在一分鐘左右. 看看是要調整用戶端的逾時設定, 或是把要給 spamassassin 檢查的檔案大小設定改小, 避免檢查過大的檔案試看看.

ktcs

  • 可愛的小學生
  • *
  • 文章數: 8
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #36 於: 2004-07-06 20:33 »
請問各位學長 :
當我從某個電子郵件位址寄出一次的廣告測試信後 , 往後只要從這個電子郵位址寄出的信都被判定為廣告信 , 請問我要如何才能將它恢復成正常的信件呢?
雖然我可以將 $home/.spamassassin 整個目錄刪除,再重新啟動Amavisd-new,但如此一來之前所作的判定正確的廣告信條件就消失不見了?

我是使用 Postfix, Amavisd-new, SpamAssassin, Razor, DCC

謝謝各位  :P

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #37 於: 2004-07-06 21:24 »
引述: "ktcs"
當我從某個電子郵件位址寄出一次的廣告測試信後 , 往後只要從這個電子郵位址寄出的信都被判定為廣告信 , 請問我要如何才能將它恢復成正常的信件呢?


這要問你自己吧.
被認為是 spam 的信件, 不是都會寄一封信給系統管理員, 自己看看裡頭符合的條件吧.

除非你設成 blacklist, 否則不至於因為單一的寄信者 email 就被認為是 spam.

jiminyang

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #38 於: 2004-07-07 10:32 »
我也是用  postfix+amavisd-new+spamassassin
請問一下....
要如何可以看到 sa report ?
或是說要如何設定?
我是想應該是在 amavisd.conf  中設定
但是一直找不到....


我也有在 local.cf 裏面調整了好多次 (把 0 改成 1、把 1 改成 0.....隨意組合....)
都沒成功....  :cry:
代碼: [選擇]
# This is the right place to customize your installation of SpamAssassin.
#
# See 'perldoc Mail::SpamAssassin::Conf' for details of what can be
# tweaked.
#
###########################################################################
#
allow_user_rules        1
ok_locales              zh en
ok_languages            zh en
## customized settings
auto_learn              1
always_add_headers      0
#always_add_report      1
report_safe             1
report_header           1
rewrite_subject         0
#use_terse_report        1
spam_level_stars        1

麻煩指點一下囉...

ps: 我的 os 是 FreeBSD....

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #39 於: 2004-07-07 11:29 »
amavisd.conf 中有這些設定嗎:
代碼: [選擇]

$forward_method = 'smtp:127.0.0.1:10025';  # where to forward checked mail
$notify_method = $forward_method; # where to submit notifications
$spam_admin = "amavis\@$mydomain";
$mailfrom_notify_admin     = "amavis\@$mydomain";
$mailfrom_notify_recip     = "amavis\@$mydomain";
$mailfrom_notify_spamadmin = "amavis\@$mydomain";


如果有 spam 的信, 應該會有個通知寄到 amavis 這個使用者.
類似
代碼: [選擇]
Unsolicited bulk email from:
   npaspumu@ms5.url.com.tw
Subject: =?BIG5?B?oXmqTKu6p2eherdrrbqny6u6oUGvdaN4q9ypyqfvrfIg?=

According to the 'Received:' trace, the message originated at:
   unknown  (HELO vlm6444) (120.143.166.6)

The message WILL NOT BE delivered to:
<xxx@xxx.com.tw>:
   550 5.7.1 Message content rejected, UBE, id=21813-02

The message has been quarantined as:
   /var/lib/amavis/virusmails/spam-a92d39d8150522aa7ee1e93d249fcd8c-20040707-111951-21813-02.gz

SpamAssassin report:
Spam detection software, running on the system "fw2", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isn't spam) or block
similar future email.  If you have any questions, see
the administrator of that system for details.

Content preview:  
  ·s¼Wºô­¶1 ¤å¤j¤p©g¤l¦³½Ð¤F [...]

Content analysis details:   (12.1 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
 0.5 X_PRIORITY_HIGH        Sent with 'X-Priority' set to high
 1.7 HTML_IMAGE_ONLY_06     BODY: HTML: images with 400-600 bytes of words
 0.6 HTML_WEB_BUGS          BODY: Image tag intended to identify you
 0.0 HTML_MESSAGE           BODY: HTML included in message
 0.1 HTML_FONT_BIG          BODY: HTML has a big font
 0.1 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
 0.2 HTML_50_60             BODY: Message is 50% to 60% HTML
 1.6 FRONTPAGE              BODY: Frontpage used to create the message
 1.1 MIME_BASE64_TEXT       RAW: Message text disguised using base64 encoding
 0.0 T_NO_SMTP_AUTH         Received from remote site without authenticated
 4.3 FORGED_MUA_AOL_FROM    Forged mail pretending to be from AOL (by From)
 1.8 FORGED_AOL_HTML        AOL can't send HTML message only

------------------------- BEGIN HEADERS -----------------------------
Return-Path: <npaspumu@ms5.url.com.tw>
X-TeaTime-Auth: no
Received: from 218.17.230.198 (unknown [219.134.31.69])
by xxx.com.tw (Postfix) with SMTP
for <xxx@xxx.com.tw>; Wed,  7 Jul 2004 11:19:34 +0800 (CST)
Received: from unknown (HELO vlm6444) (120.143.166.6)
by 219.134.31.69 with SMTP; 7 Jul 2004 03:19:50 -0000
X-Originating-IP: [120.143.166.6]
Date: Wed, 7 Jul 2004 11:19:49 +0800
From: "gnqayw" <npaspumu@ms5.url.com.tw>
To: "xxx" <xxx@xxx.com.tw>
Subject: =?BIG5?B?oXmqTKu6p2eherdrrbqny6u6oUGvdaN4q9ypyqfvrfIg?=
X-Mailer: AOL 6.0 for Windows US sub 185
Mime-Version: 1.0
X-Priority: 1
Content-Type: text/html;
charset="BIG5"
Content-Transfer-Encoding: base64
-------------------------- END HEADERS ------------------------------


就可以看到這封信的分析報告.

jiminyang

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #40 於: 2004-07-07 12:21 »
引述: "twu2"
amavisd.conf 中有這些設定嗎:
代碼: [選擇]

$forward_method = 'smtp:127.0.0.1:10025';  # where to forward checked mail
$notify_method = $forward_method; # where to submit notifications
$spam_admin = "amavis\@$mydomain";
$mailfrom_notify_admin     = "amavis\@$mydomain";
$mailfrom_notify_recip     = "amavis\@$mydomain";
$mailfrom_notify_spamadmin = "amavis\@$mydomain";

如果有 spam 的信, 應該會有個通知寄到 amavis 這個使用者.
就可以看到這封信的分析報告.

有了......  :D  :D  :D  :D  :D
非常感謝.......
原來是這個地方.....之前搞錯方向了.........  :wink:

順便提一下
這個 report 出現與否
與 $sa_kill_level_deflt 這個設定的點數有關
要超過這個點數才會寄出 report

jiminyang

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #41 於: 2004-07-07 14:40 »
引述: "twu2"
用 spamassassin 有個好處是, 除了上述的設定可以自已加之外, 還可以設定兩個信箱, 如 spam, notspam, 只要收到是 spam 沒擋到, 就往 spam 轉送, 如果收到的信被誤認為 spam, 就轉送給 notspam. (當然如果設定為 spam 就不送的話, 就不會有 notspam 這個問題)

系統可以自已由這兩個信箱的內容, 學習新的規則出來.

再請教個問題
上面這些文字......不大了解其中的意思
「只要收到是 spam 沒擋到, 就往 spam 轉送, 如果收到的信被誤認為 spam, 就轉送給 notspam」
其中「轉送」是誰在轉送的?系統管理員?還是 user?或者是 spamassassin?
(我想應該不是 spamassassin.....  :P  )

另外,要 spamassassin 自己學習
那是要設定什麼呢?local.cf?
是下面這個嗎?
代碼: [選擇]
auto_learn              1

我先前已經在 local.cf 中設定 auto_learn   1
我怎麼知道他有在自動學習?.....

啊....問了好多....  :P
麻煩再指點一下了.....

ktcs

  • 可愛的小學生
  • *
  • 文章數: 8
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #42 於: 2004-07-07 15:22 »
原來是我一開始使用 spamassassin中所附的 sample-spam.txt 作測試
, 而它高達 1006.0 points, 因為 spamassassin 本身的AWL (score averaging system) 作用, 導致往後所寄的信皆被判為廣告信
解決辦法是在 /etc/mail/spamassassin/local.cf 或是在 ~/.spamassassin/user_prefs 中加入 whitelist_from  參數
 (詳細資料請到:http://wiki.apache.org/spamassassin/AutoWhitelist)

 :D  :D  :D
感謝大家的幫忙

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #43 於: 2004-07-07 15:42 »
引述: "jiminyang"

「只要收到是 spam 沒擋到, 就往 spam 轉送, 如果收到的信被誤認為 spam, 就轉送給 notspam」
其中「轉送」是誰在轉送的?系統管理員?還是 user?或者是 spamassassin?


user 轉送.
這個只有在於你對於 spam 的處理是 D_PASS 時才有作用.

$final_spam_destiny       = D_PASS;

這時對於被認為是 spam 的信件還是會送到使用者的手上, 只是在標題會有 ***SPAM*** 的字串.

如果使用者認為這一封被判定是 spam 的信件, 實際上並不是 spam, 就把這封信轉寄給 notspam 這個使用者.

反之, 如果使用者收到一封沒有被判定為 spam 的信件, 但是實際上就是一封 spam 的時候, 就把信轉寄給 spam 這個使用者.


引述: "jiminyang"

另外,要 spamassassin 自己學習
那是要設定什麼呢?local.cf?
是下面這個嗎?
代碼: [選擇]
auto_learn              1

我先前已經在 local.cf 中設定 auto_learn   1
我怎麼知道他有在自動學習?.....


上面的作法, 並不是自動的學習, 只是把信轉給 spam, notspam 之後, 我們要去執行 sa-learn 指令, 由這兩個信箱的內容來學習新的規則. 主要就是 bayes 分析.
你必須 use_bayes 1 才會讓 spamassassin 使用 bayes 分析.

如:
代碼: [選擇]
#!/bin/sh

if [ -e /var/mail/to.spam ]; then
  /usr/bin/sa-learn --spam \
                -p /var/lib/amavis/.spamassassin/user_prefs \
                --mbox /var/mail/to.spam
  rm /var/mail/to.spam > /dev/null
fi

if [ -e /var/mail/to.notspam ]; then
  /usr/bin/sa-learn --ham \
                -p /var/lib/amavis/.spamassassin/user_prefs \
                --mbox /var/mail/to.notspam
  rm /var/mail/to.notspam > /dev/null
fi

/usr/bin/sa-learn --rebuild -p /var/lib/amavis/.spamassassin/user_prefs


至於什麼是 bayes 分析... 我也不清楚.

請參考下面的文章, 應該對於 amavisd 的運作有詳細的說明.
http://www.flakshack.com/anti-spam/

jiminyang

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #44 於: 2004-07-07 17:21 »
引述: "twu2"
如果使用者認為這一封被判定是 spam 的信件, 實際上並不是 spam, 就把這封信轉寄給 notspam 這個使用者.

反之, 如果使用者收到一封沒有被判定為 spam 的信件, 但是實際上就是一封 spam 的時候, 就把信轉寄給 spam 這個使用者.


嗯....大概了解你的做法了
你是先用 spamassassin 來擋
一旦收到 user 信箱的 Email .....就由 user 自己判斷是不是 spam
然後轉寄到 spam 或 notspam 的信箱

然後系統利用你的那隻 shell script 排程執行 sa-learn 的動作.....
並清除 sa-learn 過的 email

最後再 rebuild database .......
這真是不錯的作法..... 讚....  :D


不過這樣子會不會造成寄信的 user 被誤認為是廣告信的寄件者啊?

例如:
某位 user 常常把他認為是廣告信的轉寄給 spam 信箱
那 spamassassin 在分析時....會不會把這個 寄件者...認為是廣告商
因為郵件的表頭在他轉寄後, From 就通通變成這位 user 了.......
會有這種副作用嗎?..... :P
當然如果 spamassassin 只分析郵件內文....
那應該就沒有上面的狀況了....

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #45 於: 2004-07-07 17:32 »
引述: "jiminyang"
你是先用 spamassassin 來擋

不過這樣子會不會造成寄信的 user 被誤認為是廣告信的寄件者啊?


1. 如果用這樣子做, 就不能讓 spamassassin 把信擋下來, 只是用來判斷是否加上 ***SPAM***, 然後讓使用者自行決定要不要看這些信. (因為看了才能再轉寄, 如果把 spam 擋下來, 那就只有學習 spam 的功能, 而沒有學習非 spam 的功能)

2. 前面的文章應該有提到, 原本 antispam 那個網址所說的是要使用 redirect to 的功能把信件轉寄, 這時 sa-learn 收到的信件就會是原本的信件, 不會認為是使用者寄過來的. 但是 redirect to 的功能不是每個 MUA 都有支援, 所以用多數 MUA 都有的 forward as attachment 的方式轉寄, 然後寫個小程式取出裡頭的 attachment, 也就是原本的信件了.

jiminyang

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #46 於: 2004-07-07 18:14 »
引述: "twu2"
1. 如果用這樣子做, 就不能讓 spamassassin 把信擋下來, 只是用來判斷是否加上 ***SPAM***, 然後讓使用者自行決定要不要看這些信. (因為看了才能再轉寄, 如果把 spam 擋下來, 那就只有學習 spam 的功能, 而沒有學習非 spam 的功能)


啊?可以啊....
我是設定成這樣
$sa_tag_level_deflt  = 0.1;
$sa_tag2_level_deflt = 11.0;
$sa_kill_level_deflt = 22.0;

也就是
11.0~22.0 的會被標示上 ***SPAM***
但是大於 22.0 的就會被擋下來了(隔離在 mail server 中) ,後來會產生 sa report 寄給指定的 spamadmin....

這算是 spamassassin 的兩階段擋法吧.... :P

所以自定的 rule 都要儘量把廣告信的點數提高到 22.0
就會擋下來了.... :P
(當然這個還是有可能會誤擋,怕的話就定成 30....多半就不會擋到正常信件了)

模糊地帶的 11.0~22.0 就要由 user 自己判斷了.....
然後使用你的 spam、 notspam 來學習..... :P

引述: "twu2"
2. 前面的文章應該有提到, 原本 antispam 那個網址所說的是要使用 redirect to 的功能把信件轉寄, 這時 sa-learn 收到的信件就會是原本的信件, 不會認為是使用者寄過來的. 但是 redirect to 的功能不是每個 MUA 都有支援, 所以用多數 MUA 都有的 forward as attachment 的方式轉寄, 然後寫個小程式取出裡頭的 attachment, 也就是原本的信件了.


感謝你的說明.....可能是我沒有專心看這一篇文章吧....
所以沒注意到前面有提過這個主題... :P

嗯....這個我曉得....openwebmail 就有 redirect to 的功能
但一般的 MUA 就沒有了......

如果要寫程式把 attachment 給取出來......
shell script 行嗎?.....嗯.....找機會來試試好了..... :P
還好我是用 postfix 的 maildir.....
好像比 mailbox 來取出附件容易多了.....
總之我再試試囉....thx....

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #47 於: 2004-07-07 20:39 »
引述: "jiminyang"
如果要寫程式把 attachment 給取出來......
shell script 行嗎?.....嗯.....找機會來試試好了..... :P
還好我是用 postfix 的 maildir.....
好像比 mailbox 來取出附件容易多了.....
總之我再試試囉....thx....


參考這一篇吧.
http://phorum.study-area.org/viewtopic.php?t=16063

jiminyang

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #48 於: 2004-07-08 12:10 »
引述: "twu2"
引述: "jiminyang"
如果要寫程式把 attachment 給取出來......
shell script 行嗎?.....嗯.....找機會來試試好了..... :P
還好我是用 postfix 的 maildir.....
好像比 mailbox 來取出附件容易多了.....
總之我再試試囉....thx....


參考這一篇吧.
http://phorum.study-area.org/viewtopic.php?t=16063

嗯....試成功了....
非常感謝.... :D

不過提醒一下....
這三個目錄記得要建立
/var/spool/spamfwd/errors
/var/spool/spamfwd/incoming
/var/spool/spamfwd/log

還有目錄及檔案權限
最好都設定為 777 …
cd /var/spool
chmod -R 777 spamfwd

因為我 mail log 中出現了
status=bounced (Command died with status 1: "/var/spool/spamfwd/spam_recv.php to.notspam")
的錯誤

後來找出來是 spam_recv.php 執行權限的問題  :(
因為執行的 user 好像是 nobody....

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #49 於: 2004-11-23 11:42 »
有些信件會使用類似 "中文@mydomain" 之類的 email, 之前採用的方式都是用來判斷 @ 前面是否有中文, 後來發現偶而會有沒抓到的, 所以決定改用只允許符合條件的正向表列方式處理.

代碼: [選擇]
# test for local user account
header __T_FROM_EMAIL From:addr =~ /\@teatime\.com\.tw$/i
header __T_FROM_EMAIL_OK From:addr =~ /^[a-z0-9_\-]{3,40}\@teatime\.com\.tw$/i
meta T_FROM_EMAIL_ERR (__T_FROM_EMAIL && !__T_FROM_EMAIL_OK)
header __T_TO_EMAIL To:addr =~ /\@teatime\.com\.tw$/i
header __T_TO_EMAIL_OK To:addr =~ /^[a-z0-9_\-]{3,40}\@teatime\.com\.tw$/i
meta T_TO_EMAIL_ERR (__T_TO_EMAIL && !__T_TO_EMAIL_OK)
header __T_CC_EMAIL Cc:addr =~ /\@teatime\.com\.tw$/i
header __T_CC_EMAIL_OK Cc:addr =~ /^[a-z0-9_\-]{3,40}\@teatime\.com\.tw$/i
meta T_CC_EMAIL_ERR (__T_CC_EMAIL && !__T_CC_EMAIL_OK)
meta T_EMAIL_ERR (T_FROM_EMAIL_ERR || T_TO_EMAIL_ERR || T_CC_EMAIL_ERR)
describe From/To/Cc with wrong local email
score T_EMAIL_ERR 30

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
postfix, spamassassin 廣告信心得
« 回覆 #50 於: 2004-12-02 08:04 »
引述: "twu2"


如果使用者認為這一封被判定是 spam 的信件, 實際上並不是 spam, 就把這封信轉寄給 notspam 這個使用者.

反之, 如果使用者收到一封沒有被判定為 spam 的信件, 但是實際上就是一封 spam 的時候, 就把信轉寄給 spam 這個使用者.

上面的作法, 並不是自動的學習, 只是把信轉給 spam, notspam 之後, 我們要去執行 sa-learn 指令, 由這兩個信箱的內容來學習新的規則. 主要就是 bayes 分析.
你必須 use_bayes 1 才會讓 spamassassin 使用 bayes 分析.

如:
代碼: [選擇]
#!/bin/sh

if [ -e /var/mail/to.spam ]; then
  /usr/bin/sa-learn --spam \
                -p /var/lib/amavis/.spamassassin/user_prefs \
                --mbox /var/mail/to.spam
  rm /var/mail/to.spam > /dev/null
fi

if [ -e /var/mail/to.notspam ]; then
  /usr/bin/sa-learn --ham \
                -p /var/lib/amavis/.spamassassin/user_prefs \
                --mbox /var/mail/to.notspam
  rm /var/mail/to.notspam > /dev/null
fi

/usr/bin/sa-learn --rebuild -p /var/lib/amavis/.spamassassin/user_prefs



對不起,因為我的環境 FC2 + MailScanner + SpamAssassin + clamav
所以上面的指令,好像不能用,尤其是找不到  /var/lib/amavis/.spamassassin/user_prefs 這個檔案,

請問在我的環境下,-p 要找的 user_prefs 應該存在那個目錄中

3Q
=========================
http://www.kuolung.net
==========================

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
postfix, spamassassin 廣告信心得
« 回覆 #51 於: 2004-12-02 09:23 »
引述: "kuolung"

對不起,因為我的環境 FC2 + MailScanner + SpamAssassin + clamav
所以上面的指令,好像不能用,尤其是找不到  /var/lib/amavis/.spamassassin/user_prefs 這個檔案,

請問在我的環境下,-p 要找的 user_prefs 應該存在那個目錄中

3Q


我不用 mailscanner, 不清楚他會把 spamassassin 的東西放那兒.
不然, 可以自己 touch 一個空的檔案來用.

clmao

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #52 於: 2005-12-27 16:39 »
請問
spamassassin
會將信件送至SPAM信箱中
亦會將正常信件送至Do這一信箱中
不知要如何修改?
謝謝

juarewei

  • 懷疑的國中生
  • **
  • 文章數: 36
    • 檢視個人資料
postfix, spamassassin 廣告信心得
« 回覆 #53 於: 2006-06-16 15:55 »
引述: "twu2"
有些廣告信的發信軟體, 會在 smtp 的 helo/ehlo 使用你本身的 domain name. 這個在 spamassassin 中可以使用類似下面的設定:

# local domain from but ip not match
header __FROM_TEATIME Received =~ /from teatime.com.tw/i
header __FROM_TEATIME_IP Received =~ /\[211\.23\.144\.122\]/
meta FROM_TEATIME_BUT_IP_ERROR (__FROM_TEATIME && !__FROM_TEATIME_IP)
describe FROM_TEATIME_BUT_IP_ERROR From teatime.com.tw but ip not match
score FROM_TEATIME_BUT_IP_ERROR 8

如上面的設定, 如果有收到 from teatime.com.tw 的信件, 但是 ip 又沒有出現 teatime.com.tw 正確的 ip, 就認為是廣告信, 給它一個高分.

請問一下小弟照著前輩說得這樣設定,也把上面的ip和domain
改成我自己的,可是還是會收到偽裝成自己domain寄來的信件
請問怎麼會這樣呢?
小弟我是設定再/etc/MailScanner/spam.assassin.prefs.conf和/etc/mail/spamassassin/localcf裡面

mydarren

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
如何利用 spamassassin 設定規則判斷無IP否解加重分數呢?