2013年2月21日 星期四

amavisd-new 設定簡介

amavisd-new是一個介於MTA與"郵件內容檢查程式"之間的中介程式,透過amavisd-new的中介,可以使MTA有效的利用病毒掃描程式(如ClamAV)和垃圾郵件檢查程式(如SpamAssassin)來處理郵件的過濾篩選,並保有良好的工作效率!
一般amavisd-new會搭配ClamAV、SpamAssassin一起使用,在Ubuntu下安裝方法如下:
sudo apt-get update
sudo apt-get install amavisd-new spamassassin clamav clamav-daemon
amavisd-new的設定檔位於/etc/amavis/conf.d目錄下,以ubuntu系統為例,需要調整的檔案大概有兩個,分別是15-content_filter_mode、21-ubuntu_defaults;其中15-content_filter_mode內可以設定對於病毒及垃圾郵件的處理是否要啟動,檔案內可以發現以下兩行設定:

@bypass_virus_checks_maps = (
   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
預設對於病毒及垃圾郵件的處理動作都是關閉的,要啟動只需把以上兩行設定的開頭"#"移除後存檔,再重新啟動amavisd-new即可生效!
21-ubuntu_defaults檔案內可以設定amavisd-new對於發現的病毒及垃圾郵件的處理動作,可選用的處理模式有:丟棄(D_DISCARD,不會回應訊息給寄件者)、拒收(D_REJECT,會回應訊息給寄件者)、退信(D_BOUNCE)、放行(D_PASS);設定如下
#若判定為病毒信件,丟棄
$final_virus_destiny      = D_DISCARD;
#若判定為拒絕的信件,則丟棄
$final_banned_destiny     = D_DISCARD
#若判定為垃圾郵件,放行
$final_spam_destiny       = D_PASS
#信進標頭不符合標準,放行,避免誤檔信件
$final_bad_header_destiny = D_PASS
#在判斷為垃圾郵件的主旨欄位加上***SPAM***
$sa_spam_subject_tag = '***SPAM***'
存檔後再重新啟動amavisd-new即可生效!
另外在/etc/amavis/conf.d下有一個50-user檔案,這裡你可以加入一些你自訂的需求,若這裡的設定與之前的設定檔有重複的選項,會以這個檔案的設定為優先!另外,若設定項目是以$sa開頭,表示設定的選項是spamassassin內的功能,並且amavisd-new下的設定會被視為優先,在/etc/spamassassin/local.cf下的設定將會失去效用!常見的設定如下:

$sa_tag_level_deflt  = -10;  # 超過這個分數才視為垃圾郵件,並開始打分數
$sa_tag2_level_deflt = 5; # 超過這個分數,才允許在郵件主旨欄位添加設定的垃圾郵件訊息$sa_kill_level_deflt = 20;  # 超過這個分數,直接將郵件備份後刪除
$sa_dsn_cutoff_level = 10;   # 超過這個分數,將不部會送出 DSN 訊息
$sa_mail_body_size_limit = 100*1024; # 超過這個大小的郵件(不含附件)就不經過SpamAssassin掃描,此設定為100K
$sa_debug = 1;            # 啟動Dubug功能,defaults to false,正式上線使用時建議關閉!

$sa_auto_whitelist = 1;  # 啟動白名單自動學習White List
#指定白名單,指定的檔案需存在,否則amavisd-new將無法啟動

read_hash(\%whitelist_sender,'/var/amavis/whitelist');
#指定黑名單,指定的檔案需存在,否則amavisd-new將無法啟動

read_hash(\%blacklist_sender,'/var/amavis/blacklist');