星期二, 1月 05, 2010

[網管]避免假冒同單位的帳號寄信

參考:傑克的研究生活
幫 Postfix 加上 Sender Policy Framework(SPF) 來過濾假冒的垃圾郵件。
步驟:
  1. 修改單位的DNS伺服器
  2. Postfix 加入 SPF功能
  3. 把未通過 SPF 檢查的信件 reject
實作:
修改 /etc/namedb/master/db.slps (freebsd)
aaa.tpc.edu.tw.        IN      TXT     "v=spf1 a ip4:163.20.xxx.yyy -all"
bbb.aaa.tpc.edu.tw.   IN      TXT     "v=spf1 a ip4:163.20.xxx.yyy -all"
ccc.aaa.tpc.edu.tw.    IN      TXT     "v=spf1 a ip4:163.20.xxx.zzz -all"

安裝 postfix-policyd-spf-perl
修改 /usr/local/etc/postfix/master.cf
policy  unix  -       n       n       -       0       spawn
            user=nobody argv=/usr/local/sbin/postfix-policyd-spf-perl

修改 /usr/local/etc/postfix/main.cf
smtpd_recipient_restrictions =
            ...
            reject_unauth_destination
            check_policy_service unix:private/policy
            ...

        policy_time_limit = 3600


ps: 第一次執行 rndc reload 時, spf 功能並沒有啟動,看了 /var/log/messages 後發現 dns 中設定 spf 並沒有正常執行,出現「named: the working directory is not writable」,才發現
namedb 的目錄也要設定群組也可以寫入的權限。
$ sudo chmod g+w named