分类: LINUX
2008-09-09 15:04:24
@. Queue 管理
#mailq # 使用 mailq 檢查曾經發經發送的電郵
-Queue ID-------Size------Arrival Time------Sender/Recipient-------
D7982233D37 2936 Fri May 6 00:18:16 2daniel@12.hinet.net
#postcat /var/spool/postfix/deferred/1/17461233D42 # 把在 mail queue 內的電郵內容顯示出來
#postsuper -d A1F23E009A # 刪除 mail queue 內還未發送的信件
#postsuper -d ALL # 刪除所有 mailq
@. Mail 郵件內容過濾管理
Postfix 的郵件的分析與過濾管理:採用 header_checks 及 body_checks 的方式,其為正規表示法 ( Regular Expression, RE ) 來進行設定,其方式是真對郵件的 Header 及 Body 去過濾,何謂 Header?即郵件上面的資訊 ( 包括 寄件者 From:、收件者 To:、地址、與信件標題 Subject: 等 )。何謂 Body?即是對方寄信給你的時所書寫的內容。
#vi /usr/local/etc/postfix/main.cf
header_checks = regexp:/usr/local/etc/postfix/header_checks
body_checks = regexp:/usr/local/etc/postfix/body_checks
寫法說明:
『.』:代表任意字元
『\』:代表跳脫字元,可以讓後面接的一個字元變成一般字元;
『*』:代表重複零個或多個前一個 RE 的字元,例如『.*』則代表任意零個或多個字元的意思;
『^』:代表『這一行的第一個字元需要符合規則』的意思;
『$』:代表這一行的最後一個字元必須要符合這個字元的意思,
單一規則的設定標準:
/規則/ 動作 顯示在登錄檔裡面的訊息
/^Subject:.*A funny game/ DISCARD drop header deny
#vi /usr/local/etc/postfix/header_checks
# 範例:header_checks
/filename\=\".*src\.exe/ REJECT Virus filename is unavailable header
/filename\=\".*\.cpl\"/ REJECT Virus filename is unavailable header
/name\=\".*\.bat\"/ REJECT Virus filename is unavailable header
/name\=\".*\.scr/ REJECT Virus filename is unavailable header
/^Subject:.*Hello\,.*\,how\ are\ you.*/ DISCARD Virus drop the unavailable header
/^Subject:.*W32.*removal\ tools$/ DISCARD Virus drop the unavailable header
/^From:.*rayman\.com\.cn/ DISCARD Commercial unavailable header
/^From:.*\@263\.net/ DISCARD Commercial unavailable header
/^To:.*\.TXT@/ DISCARD Commercial unavailable header
/^To:.*apatite.*\ DISCARD Commercial unavailable header
#vi /usr/local/etc/postfix/body_checks
範例:body_checks
/http\:\/\/168\-news\.com/ DISCARD Commercial drop the unavailable body
/http\:\/\/.*edms\.tv/ DISCARD Commercial drop the unavailable body
/mailto\:.*\@126\.com/ DISCARD Commercial drop the unavailable body
/mailto\:.*\@powererp\.org/ DISCARD Commercial drop the unavailable body
/0982\-281\-125/ DISCARD Commercial unavailable body
/www\.email104\.com/ DISCARD Commercial unavailable body
/\/nomail\.gif\"/ DISCARD Commercial nomail unavailable body
/\/nomail\.htm\"/ DISCARD Commercial nomail unavailable body
#postmap -q - regexp:/usr/local/etc/postfix/header_checks < /usr/local/etc/postfix/header_checks # 不需要重新啟動 postfix,設定立刻生效
@. Mail 連線 IP 管理
擋掉惡意 Spam 攻擊的 IP 網段 postfix 2.x 之後的版本應該都支援這個用法,它可直接編輯允許連線及不可連線的 IP 網段,挺不錯用的 ^^ 可是有問題 .. 在我的機器上掛上就收不到信還是需要再 try 看看 ...
#vi /usr/local/etc/postfix/main.cf
smtpd_client_restrictions = cidr:/usr/local/etc/postfix/client.cidr
#vi /usr/local/etc/postfix/client.cidr
# Sapm IP Groups
220.163.0.0/16 DISCARD spam
218.62.0.0/16 DISCARD spam
218.63.0.0/16 DISCARD spam
61.159.0.0/16 DISCARD spam
#postmap -q - cidr:/usr/local/etc/postfix/client.cidr < /usr/local/etc/postfix/client.cidr
#postfix reload