Postfix 架設與PROCMAIL防毒

一、先下載 postfix-2.1.5.tar.gz  2004/9/14

(1)縣教網中心FTP 

ftp://ftp.tnc.edu.tw/Sysop/MAIL/postfix/official/postfix-2.1.5.tar.gz

(2)ncftp ftp.tnc.edu.tw

cd sysop

cd MAIL

cd postfix

cd official

get postfix-2.1.5.tar.gz

二、先移除 sendmail 相關套件

rpm -e mutt

rpm -e fetchmail 

rpm -e sendmail  (先停止,再移除)

三、安裝

tar zxvf postfix-2.1.5.tar.gz

cd postfix-2.1.5

make

adduser postfix    (建立一個 postfix 帳號)

groupadd postdrop    (建立一個 postdrop 群組)

make install

接著會出現一些須要我們回答的問題,都只要直接按 Enter 即可。

四、設定 postfix

(1)

cd /var/spool

chmod 1777 mail

(2)

cd /etc/postfix

cp aliases /etc/

newaliases

(3)編輯 main.cf

vi main.cf

修改內容如下:

68      myhostname=貴校主機名稱(例如南安國小,rh9.naes.tnc.edu.tw)

76      mydomain=貴校網域(例如南安國小,naes.tnc.edu.tw)

124    mydestination=$myhostname(, mail.$mydomain, $mydomain)-->第二部MAIL主機可省略,以免造成MAIL SERVER判斷上的問題

171 mynetworks = 163.26.161.128/25, 127.0.0.1, 172.16.1.254/16

298    aliases_maps=hash:/etc/postfix/aliases    (將前面的#/postfix/去掉)

309    aliases_database=hash:/etc/aliases    (將前面#去掉)

358    為了配合procmail mailbox_command=/some/where/procmail  --->

                  改成 mailbox_command=/usr/bin/procmail

存檔退出

五、到教網中心 FTP 站下載 procmail 這支過濾信件程式,放在 /etc

  1. 下載: 自動更新程式(shell script),位址如下:

    ftp://ftp.tnc.edu.tw/Sysop/MAIL/procmail/up-procmailrc.sh

    請將該檔放入 root 目錄中(當然位置可自訂)

     
  2. 給執行權:

    chmod +x up-procmailrc.sh

     
  3. 放入自動執行工作排程:

    crontab -u root -e

    0 6 * * * /root/up-procmailrc.sh

    每日 6 update 一次,時段可自訂。它會將 procmailrc 放入您主機的 /etc 目錄中。

如此一來,您便可自動抓取中心的 procmailrc 檔,並時時更新。

先決條件:

  1. 您的 MTA 必須能支援 procmail,比如:Postfixsendmail
  2. 您的 MTA 必須設定正確。請參考:http://linux.tnc.edu.tw/techdoc/postfix-howto.htm
  3. 您的主機有安裝 wget

 

六、啟動與測試

postfix start    (啟動)

postfix stop    (關閉)

postfix reload    (重新啟動)

telnet localhost 25

quit 可以退出

七、讓 postfix 服務隨開機啟動

vi /etc/rc.d/rc.local

在最後面加上: /usr/sbin/postfix start

參考OLS3講義:http://linux.tnc.edu.tw/techdoc/use-procmail.html

 

八、過濾垃圾信

OLS3主任程式下載位址:

ftp://ftp.tnc.edu.tw/pub/MAIL/spam-filter

抓下 dot.procmailrc 之後把它改名為 .procmailrc

並放入您的自家目錄中即可。(自家目錄 是 HOME DIR 的直譯,即個人目錄的意思,大部份在 /home/帳號,不過,這不是絕對的,應以 /etc/passwd 中的 home dir 設定路徑為準。)

(*** 注意!!! 請用下載的方法,請***不要用瀏覽器觀看後用選取內容拷貝複製的方式****! 因為會破壞一些不可見字元的格式)

使用前請看一下該檔前面的註解說明。

* 注意:這一版,並未濾得百分之百乾淨,只要您的 email 被 SPAM 商人收集去了,收信人真的是您的 email 的話,這一版先放過去,下一版再說囉。

至於那些收信人如: 莎莎@你的主機位址 等不存在的收信人位址都會被濾除。)


 

Q&A:

Q:如果在seeitlater中發現到有被誤濾之信件該如何將其放到原本應該寄到的收件者手上呢?

A:方法有很多....比如:

若您架 openwebmail, 可以把 seeitlater 改成mail/mail-trash
這樣就可以由垃圾桶中去挑回您要的.

或者把 seeitlater 您要的部份 cut 下來, 設存為 tmpmail, 下 cat tmpmail >> /var/spool/mail/你的帳號

目前它仍不適合全體 /etc/procmailrc 來用, 必須先解決各人郵件列表整合,密件副本分析等問題. 下一版的目標就是要整合放入 procmailrc 中.

若要救回 seeitlater 中各人的信件, 可寫一支簡單的 script(perl 或 bash)將各人不是垃圾信的信件分類出來, 再重餵回去.

Q: 如果來信是以密件傳送的,而且收信者為空白者會被誤濾,請問能否修正?

A:以下二種方式可以解決:

# 2. 若您有訂閱郵件列表(mailing lists),請將該位址寫在 my-mailing-list 中
# my-mailing-list 的位置在個人自家目錄下
#
# 3. 若您有信任的 email 位址,可放入白名單中,請將該 email 寫入 white-list 中
#

小三幫你濾掉垃圾郵件