Chinaunix首页 | 论坛 | 博客
  • 博客访问: 310602
  • 博文数量: 94
  • 博客积分: 2220
  • 博客等级: 大尉
  • 技术积分: 975
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-17 21:17
文章分类

全部博文(94)

文章存档

2011年(5)

2010年(11)

2009年(1)

2008年(2)

2006年(1)

2005年(65)

2004年(9)

我的朋友

分类: LINUX

2004-12-28 09:01:41

Mail Server 安裝 SpamAssassin (直譯為垃圾信殺手)的 Open Source 開放源始碼程式

Mail Server 安裝 SpamAssassin (直譯為垃圾信殺手)的 Open Source 開放源始碼程式
( ),是辨識垃圾郵件用的,用一套蠻複雜的全文分析評分法,
對 E-mail 作垃圾郵件評分。舉其中一些評分標準如下:

HTML_70_90 0.947 (HTML 佔整個郵件的 70%-90%)
FORGED_HOTMAIL_RCVD 1.479 (寄件者是 Hotmail ,卻不是由 Hotmail 寄出)
LOSE_POUNDS 0.514 (含 Lose pounds 之類的減肥字眼)
THIS_AINT_SPAM 0.431 (自稱不是垃圾信)
......

目前廣告信暫時採隔離以後測試正常後直接刪除


在服务器上过滤垃圾邮件

邮件服务所遭受的攻击在各类攻击中占据很大的比例。对于邮件服务器而言,
防范垃圾邮件的攻击具有重要的意义。因为邮件服务器是大量邮件的转发中枢,
只有加以有效的控制,才能大大减少垃圾邮件对整个网络系统所造成的破坏。

一般来说,过滤服务器上的垃圾邮件主要采取如下两种方法:
一是根据设置的规则直接拒收垃圾邮件;
二是将邮件接收下来后再实施过滤。
相比来看,前一种方法具有更高的效率,对邮件直接拒收,既节省网络带宽,
又可减小服务器的性能开销。但是,这样做常常容易“殃及无辜”,使邮件用户丢失信件。
后一种方法尽管效率不高,却可能减少出错的频率。如果服务器首先对接收下来的邮件
进行有效分析,然后再交由用户进行选择,那么用户就不会为E-mail的无故丢失而烦恼。

SpamAssassin的安装与配置

SpamAssassin软件的最新版本可以从获得,本文中使用的是2.50版
的tar.gz版本。它的安装过程比较简单,只需按照一般软件的安装方法即可,具体代码如下:

$ tar -xvzf Mail-SpamAssasin-2.50.tar.gz
$ cd Mail-SpamAssassin-2.50
$ perl Makefile.PL
$ make
$ make install

SpamAssassin预设了许多默认规则,可以在/usr/share/spamassassin下找到
一般情况下不需要改动修改这些预设的规则。

如果用户想添加自己的规则,可以配置通过/etc/mail/spamassassin/local.cf文件实现。
建议首先在其中添加白名单(即确定不会发送垃圾邮件的发件人列表)。具体设置代码如下:

whitelist_from_rcvd friends@abc.com
whitelist_from_rcvd @friends.com

以上两条规则分别将friends@abc.com邮箱和@friends.com整个域加入了白名单。
接下来,需要把SpamAssassin与Sendmail整合在一起。较简单的方法是使用procmail
来添加SpamAssassin过滤器。添加以下内容到/etc/procmailrc文件:

考虑到性能要求,SpamAssassin还提供了一个专门的spamd后台守护程序,可以设置为
系统启动时自动启动它。在Mail-SpamAssassin-2.50/spamd/下有一个redhat-rc-script.sh脚本,
将此脚本放入Red Hat的启动目录/etc/rc.d/init.d/下即可。同时,还需要对/etc/procmailrc文件
做如下修改:

:0fw
| /usr/bin/spamc -s 200000

这样就可以通过控制spamd进程来调整过滤器的运行状态。配置完成后,可以发邮件进行测试。
如果看到在邮件头出现与spam检查相关的几项内容,表示SpamAssassin已经开始发挥作用。

SpamAssassin則是一個開放原始碼的試探式程式,以外掛程式的方式加入大多數電子郵件軟體中,
它的咦鞣绞筋愃品蓝拒涹w,利用通用定義(例如「你選擇接收的資訊」)來辨識垃圾郵件。

---------------------------------------------------------------------------------------
網路組是使用免費軟體──spamassassin,根據一些規則,以計算分數比重來加以過濾,
目前將標準訂立在6分,根據資料內容特性給分,如有標題或內容類似廣告的字眼,就會增加1分,
以此類推,當總分高於6分時,就會被列入黑名單,而這套軟體也會常更新名單,以阻隔更多垃圾信。

---------------------------------------------------------------------------------------



---------------------------------------------------------------------------------------
這個軟體所以這麼有效,是用了上百條的「規則」來分析郵件,不光分析郵件的主題,
也分析郵件的內容,然後決定是否為垃圾。「規則」可由任何程式設計人提供,只要「垃圾殺手」
的行政主核可,就可加入在新版本生效。

新的過濾規則就因此不斷的加入,所以一個正規的郵件發行人,永遠不知道他的郵件是否會通過
「垃圾殺手」的過濾。

「垃圾殺手」實際上並不阻擋垃圾郵件,負責人之一 Matt Sergeant 強調,它僅是給 ISP 與
伺服機行政人員找出垃圾郵件的工具,以後怎麼做,全靠 ISP 的主事者。以 The Well 為例,
把涉嫌垃圾的郵件存放到收件人的垃圾郵件區;別的 ISP 就可能把涉嫌垃圾的郵件刪除、
或「回彈」給發信人。

----------------------------------------------------------------------------------------

SpamAssassin 是一套用來協助過濾 spam 的程式,用 perl 寫成,會針對信件中特定的 pattern
給予不同的分數,當分數超過指定的值後,就會被當作 spam,根據設定不同,會在信件 header 或
subject 的地方增加些東西。

設定 Postfix 的部分
於 /etc/postfix/master.cf 內修改 smtp 的設定:
並於同一個檔案的最後面加上:
postfixfilter unix - n n - - pipe flags=Rq user=nobody
argv=/usr/local/sbin/filter.sh -f ${sender} -- ${recipient}
然後新增 /usr/local/sbin/filter.sh 這個檔案:
#!/bin/sh
exec /usr/bin/spamc -d 127.0.0.1 -f -p 783 -t 30 -e /usr/sbin/sendmail -i "$@"
接著請讓 /usr/local/sbin/filter.sh 變成可以執行:
chmod 755 /usr/local/sbin/filter.sh

設定 Postfix 過濾掉 Spam
在 /etc/postfix/main.cf 內設定:
header_checks = pcre:/usr/local/etc/postfix/header-checks
然後新增 /usr/local/etc/postfix/header-checks 這個檔案:(如果已經有了,把這行加到最後面)
/^X-Spam-Status: Yes/ DISCARD Byebye Spam, we don't like you.

設定 SpamAssassin
將 /usr/local/etc/rc.d/spamd.sh-dist 複製一份到 /usr/local/etc/rc.d/spamd.sh:
再修改這個檔案裡面 spamd 的參數:
${PREFIX}/bin/spamd -a -d -L -m 32 -u nobody -V /usr/local/etc/spamassassin -x
超過 5.0 分會被當 spam,並在信件 subject 加上 *****SPAM***** 字樣)

重新啟動
/usr/local/etc/rc.d/spamd.sh start
postfix reload

------------------------------------------------------------------------------------

偵測技術的廣度-- 大多數應用程式的偵測技術包括了:經驗準則、反制規定、適性學習的引擎
(例如Bayesian分析)、定義碼(類似防毒的方式,以現行垃圾郵件的模式為基礎)、內容過濾、
許可清單和黑名單。部份廠商也採用了多層級過濾法(訊息依序通過不同層級的過濾)、
雞尾酒法(混合多種過濾技術的單層過濾)等方式,對垃圾郵件的可能性進行排序,而不只是依照
既定的定義碼進行過濾。比較強的廠商也可以提供郵件伺服器的入侵防治功能,預防阻絕服務攻擊。

-------------------------------------------------------------------------------------
Postfix+Courier-IMAP+Cyrus-SASL+PAM_MySQL+MySQL这种安装方式简单易行,
在Debian下的安装更加方便:

--------------------------------------------------------------------------------------
升級
$ tar -xvzf Mail-SpamAssasin-2.63.tar.gz
$ cd Mail-SpamAssassin-2.63
$ perl Makefile.PL
$ make
$ make install
$ /etc/rc.d/init.d/spamassassin restart
$ /etc/rc.d/init.d/postfix reload
---------------------------------------------------------------------------------------





阅读(893) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~