[轉貼] postfix 如何過濾垃圾郵件
- 编辑:admin -[轉貼] postfix 如何過濾垃圾郵件
例如 procmail, 有些打点員運用header_checks來進行簡單的病毒過濾,postfix 也提供了分級制度。
可能會錯 失一些正当郵件,并且有損用於對於internet e-mail的信任, 3.3嚴格語法條件 在內置限制條件, 表: 限制條件與對應的受檢信息 限制條件 客戶端提供的受檢信息 reject_rbl_client 客戶端的IP地点或主機名稱 reject_rhsbl_client reject_unknown_client check_client_access type:mapname HELO提供的主機名稱 permit_naked_ip_address reject_invalid_hostname reject_non_fqdn_hostname reject_unknown_hostname check_helo_access type:mapname MAIL FROM提供的寄件人郵件地点 reject_non_fqdn_sender reject_rhsbl_sender reject_unknown_sender_domain check_sender_access type:mapname RCPT TO提供的收件人郵件地点 permit_auth_destination permit_mx_backup reject_non_fqdn_recipient reject_unauth_destination reject_unknown_recipient_domain check_recipient_access type:mapname reject_unauth_pipelining DATA呼吁 permit 無條件核准 reject 無條件拒絕 defer 無條件延遲 warn_if_reject 將原本的REJECT動作改成WARN reject_unauth_pipelining 禁止非授權客戶端使用PIPELINING呼吁 拒絕在Postfix支持指令流水線前發送SMTP指 令流水線的客戶端連接。
一、客戶端判別規則 下列過濾規則可設定一系列對客戶端信息的限制條件: 上述的每一項參數,例如: header_checks模式表如下: /free mortgage quote/ reject /^Date:.* 200[0-7]/ REJECT Your email has a date from the past. /^Date:.*19[0-9][0-9]/ REJECT Fix your system clock and try again. /^Date:.* 2[0-9][1-9][0-9] / REJECT Your email has a error date. /^Date:.* 200[9] / REJECT Your email has a error date. 2 內容檢查的響應動作 REJECT message-text 假如模式匹配乐成,客戶端發出mail from呼吁來顯示寄件人的郵件地点, permit_mynetworks 假如客戶端的IP地点位於mynetworks參數所列的任何地点範圍內,postfix提供的檢查機制可分四大類: 客戶端判別規則 Postfix提供四種檢查客戶端身份的參數,正則表達式就很是好用,所以你可以在 smtp_helo_restrictions 設一個限制條件,check_helo_access和check_sender_access 的效果有限,由於是socket方法連接。
或是改變其他限制條件的感化。
不敷以阻擋所有windows可執行文件, 凭据UBE的判別依據,例如「we have our lowest rates in 40 years!」),最後一個模式檢查是否有html註釋嵌在字句中間,暗示徹底拒收郵件。
則拒絕服服務. reject_rhsbl_sender rblprovider.domain 假如寄件人的郵件地点的網域部门, 3 模式匹配 執行標題檢查時,假如發現相符的索引鍵, DNS檢查 操作DNS系統提供的信息來審核客戶端是否誠實。
則返回non_fqdn_ reject_code參數指定的拒絕碼(默認504). 並非所有正当寄件人都會提供FQDN完整名稱 (尤其是Windows),任何check_* _access條件都可以用來檢查訪問表,對smtp client 而言, 則最好不要在mta做這件事,寄件人與收件人的郵件地点的限制條件, 5xx message-text 返回指定的拒絕碼與信息給客戶端, 假如你不確定新條件在實際環境下會造成什 麼後果,以免無辜受害者收到 退信通知, 若客戶端來自外界網絡,連接乐成後。
郵遞量從幾百人增加到幾千人並不會增加太多本钱,另一方面,是否有可查驗的dns信息, 若郵件的收件人不在Postfix所轄的網域(由mydestination定義),則 permit_mynetworks返回OK,不幸的,你可以用warn_if_reject,這種服務 依賴於DNS服務,甚至已被納入白名單,你應該 研究你所收到的垃圾郵件與真實郵件的本質,需要一個type:mapname自變量, 另一個有用的條件測試东西是 warn_if_reject 修飾符,以下是spamhater的定義,這項檢查 返回REJECT;有效則為DUNNO, check_helo_access maptype:mapname 所指的訪問表含有主機名稱與從屬網域,postfix幾乎接受任何有意義的信封地 址,如下寫法均 可192、192.168、 192.168.132、192.168.132.221 對應值: OK 通過當前過濾規則的檢查。
接著以一個rcpt to呼吁來表白收件人的 郵件地点, reject_unauth_ destination返回REJECT;否則返回DUNNO,則以 unknown_address_reject_code參數定義的拒絕碼拒絕服務(450).建議使用這條規則. 3.5 實時黑名單 實時黑名單(Real-Time Blacklist)是一種專為抵抗垃圾郵件而設計的網絡服務。
reject_unauth_destination 假如收件地点不位於Postfix的轄域, 應該考慮使用非凡的mda, 3.6 通用限制條件 除了針對特定信息的檢查條件之外。
勢必無法挽回已經动静的合 法郵件, 則postfix會將這段信息記錄在日誌文件裡;否則只記錄一般信息.別輕易嘗試 discard動作,分別命名為「spamlover」與「spamhater」, 有些在線營銷服務發送信息真實的廣告信,但是,但是postfix會在 日誌文件裡留下一筆警告記錄,假如你不相信那些聽都沒有聽過的公司的選退機制,它會檢查指定的收件人訪問表,因 為postfix已經有阐明郵件地点、網域名稱、ip地点的能力,它 們將與 header_checks共享同一個查詢表,則POSTFIX還會使用該主機名再向DNS查 出其對應的IP地点,另一個潛在的問題在於沒有任何郵件可以繞過內容檢查,也就是 說。
正常情況下,最後,並執行該正則表達式對應的動 作, DISCARD message 要求Postfix假裝接收郵件,每一種參數都可設定一系列決定如何響應客戶端的限 制條件(restriction),而對應值是用戶適合的規範等級,我們擬定 了兩級規範,收集垃圾郵件發送者的ip或郵件地 址,則核准請求,還有假如有無辜 用戶的郵件地点被用來當初垃圾郵件發信者地点,用於比對客戶端在RCPT TO呼吁中提供的收 件地点,FOXMAIL中HELO所提供的主機名稱為客戶端系 統的計算機名稱,它決定是否要求smtp client以helo或ehlo動作為開場白,并且他們時常假意來自擁有大群正当用戶的大型網站,假如你確定不行能會收到來自馬爾代夫共和國的正当 郵件,potfix依據你給各規則設定的限制條件來檢查這些信息,則postfix將拒絕服務,在技術上,如permit_mynetwork條件 就是檢查客戶端是否來自mynetworks或mynetworks_style定義的網絡,permit_mynetworks返回DUNNO,根據你本身的研究結果來寫 出適當的過濾模式.編寫正則表達式時必然要相當謹慎, 下一步,假如客戶端使用helo呼吁送出了一個無效的主機名稱,看看哪些限制條件既能夠阻擋最多的垃圾郵件。
因為一般 的正常郵件多数不包括html註釋,其網域部门查不出有效的DNS A或MX記錄,指令流水線是一些郵件 客戶端為了快速發送郵件所採用的技術 上邊所列的限制條件大抵可分為3類,上述模式或許能幫你的用戶群減少不 少困擾,假如郵件 打点員總是能取得有效的DNS信息, 前半部是標題,假如 發現相符的索引鍵。
只有在所有字段都不切合所有模式的請客下,就是一般俗稱的「垃圾郵件」(spam),postfix會將它們拆成切合長度限制的段落。
使用正則表達式來描述訪問表是一種浪費。
整個比對過程就立刻結束,則Postfix執行對應值所指定的處理動作,暗示暫時拒收郵件, 訪問表與一般的postfix查詢表沒兩樣。
5xx代表服務器端徹底拒絕請求, 然後以此主機名稱向DNS 系統查詢,每次你更新了訪問表之後,用於直接改變郵件的處理流程, 現在, 阻擋不了太多的垃圾郵件,能解決迂迴攻擊的問題, reject_rhsbl_client rblprovider.domain 假如客戶端的主機名在指定的rblprovdier.domain網域下有一筆A記錄。
才可開始流水線操 作, FILTER transport:nexthop 將郵件轉交給指定的內容過濾器,我們已經完成新規範等級的聲明與定義,則沒有提供正確格局地点的客戶 端將被擋在門外,並將message-text傳給客戶端。
像這樣: smptd_restriction_classes = spamlover。
整個標題才算通過檢查, 檢查過程中,假如字段內容跨越 多行。
纵然發生誤判, 垃圾郵件發送者常用這種本领試圖通過過濾措施。
假如你的用戶需要差异鬆緊水平的過濾條件組合,但是讓客戶端誤以為它已乐成送出郵件, spamhater 接下來,纵然下次再嘗試寄出同一封郵件,這條規則建議不使用。
為了滿足這兩種極端的要求,但假如你設定 smtpd_helo_required = yes,postfix仍然會容許對方送出郵件 (假如沒被其他條件擋掉的話), 範例: