2013-6-7 admin Amavisd Spamassass html
版權全部:《DSPAM中文站》 => 《amavisd配置文件詳解》
本文地址:http://blog.dspam.org.cn/post-42.html
除非註明,文章均爲 《DSPAM中文站》 原創,歡迎轉載!轉載請註明本文地址,謝謝。mysql
轉自:http://blog.dspam.org.cn/post-42.html
sql
amavisd.conf 配置文件詳解: 緩存
配置文件基於amavisd-new-2.8,若是使用其餘版本的amavisd-new,請參照其餘版本的amavisd.conf 配置文件。
# @bypass_virus_checks_maps = (1); sass
控制是否啓用病毒掃描;
# @bypass_spam_checks_maps = (1);
控制是否啓用SPAM掃描;
# $bypass_decode_parts = 1;
控制是否啓用對加密歸檔文件解碼;
$max_servers = 2;
amavisd進程數,根據你的主機配置設置大小;
$daemon_user = 'vscan';
運行amavisd的用戶;
$daemon_group = 'vscan';
運行amavisd的組;
$mydomain = 'example.com';
設置郵件域名;
# $MYHOME = '/var/amavis';
設置工做目錄;
$TEMPBASE = "$MYHOME/tmp";
設置臨時目錄;
$ENV{TMPDIR} = $TEMPBASE;
設置臨時目錄的環境變量;
$QUARANTINEDIR = '/var/virusmails';
設置隔離目錄;
# $quarantine_subdir_levels = 1;
隔離目錄是否使用hash,使用0或者1
# $release_format = 'resend';
隔離區郵件釋放格式
# $report_format = 'arf';
Email報告格式
# $daemon_chroot_dir = $MYHOME;
amavisd daemon的chroot目錄
# $db_home = "$MYHOME/db";
緩存和DB文件存儲目錄
# $helpers_home = "$MYHOME/var";
SpamAssassin工做目錄
# $lock_file = "$MYHOME/var/amavisd.lock";
lock文件路徑
# $pid_file = "$MYHOME/var/amavisd.pid";
pid文件路徑
$log_level = 0;
調試日誌基本
$log_recip_templ = undef;
收件人日誌級別
$do_syslog = 1;
日誌是否由syslogd控制
$syslog_facility = 'mail';
日誌寫入mail日誌
$enable_db = 1;
啓用BDB支持
# $enable_zmq = 1;
啓用ZeroMQ支持
$nanny_details_level = 2;
顯示更詳細的進程狀態
$enable_dkim_verification = 1;
啓用 DKIM 簽名驗證
$enable_dkim_signing = 1;
加載 DKIM 簽名的代碼 dom
@local_domains_maps = ( [".$mydomain"] );
將虛擬域加到 "@local_domains_maps"中,amavisd調用SpamAssassin檢查完郵件後會加入標記,每一個域都須要引號,域之間用逗號分隔;
@mynetworks = qw( 127.0.0.0/8 );
定義SMTP客戶端IP訪問列表
$unix_socketname = "$MYHOME/amavisd.sock";
定義socket路徑
$inet_socket_port = 10024;
定義amavisd偵聽端口,能夠指定多個,格式如「[10024,10026]」
$policy_bank{'MYNETS'} = { #定義來自@mynetworks的郵件策略,能夠對@mynetworks列表的IP不作處理。
originating => 1,
os_fingerprint_method => undef,
};
$interface_policy{'10026'} = 'ORIGINATING';
$policy_bank{'ORIGINATING'} = {
};
定義一個專用TCP端口,對一部分特定用戶不作處理
$sa_tag_level_deflt = 2.0;
高於這個分數,就會在郵件頭加上SPAM標識
$sa_tag2_level_deflt = 6.2;
高於這個分數,容許改寫郵件標題,加上SPAM標識
$sa_kill_level_deflt = 6.9;
高於這個分數,直接將郵件備份後刪除
$sa_dsn_cutoff_level = 10;
高於這個分數,將不會發送DSN(delivery status notification)信息
$sa_crediblefrom_dsn_cutoff_level = 18;
同上,對應一個可能有效的「From」,真正發件人產生的反彈郵件,多是誤報
# $sa_quarantine_cutoff_level = 25;
高於這個分數,郵件不會放入隔離區
$penpals_bonus_score = 8;
當發件人被通知之前收到過這個郵件系統的本地用戶的郵件的話,那這個郵件被做爲垃圾郵件的係數或者分數就會下降,設置「0」或者「undef」禁止
$penpals_threshold_high = $sa_kill_level_deflt;
同$sa_kill_level_deflt
$bounce_killer_score = 100;
高於這個分數,丟棄反彈郵件
$sa_mail_body_size_limit = 400*1024;
超過400*1024的郵件就不通過SpamAssassin掃描,包括附件大小,單位"bytes"。
$sa_local_tests_only = 0;
禁止SA訪問internet
# @lookup_sql_dsn =
# @storage_sql_dsn = @lookup_sql_dsn;
# $timestamp_fmt_mysql = 1;
使用MySQL存儲數據,通常用不到
$virus_admin = "virusalert\@$mydomain";
$mailfrom_notify_admin = "virusalert\@$mydomain";
$mailfrom_notify_recip = "virusalert\@$mydomain";
$mailfrom_notify_spamadmin = "spam.police\@$mydomain";
$mailfrom_to_quarantine = '';
檢測到病毒或者垃圾郵件時,發通知到哪一個郵件地址
@addr_extension_virus_maps = ('virus');
@addr_extension_banned_maps = ('banned');
@addr_extension_spam_maps = ('spam');
@addr_extension_bad_header_maps = ('badh');
# $recipient_delimiter = '+'; # undef disables address extensions altogether
地址擴展,配置樣例以下:
$recipient_delimiter = '+';
@addr_extension_spam_maps = ('spam');
$sa_tag2_level_deflt = 6.7 ; # score above which spam extension is added
$sa_kill_level_deflt = 15; # block higher score entirely
$final_spam_destiny=D_DISCARD; # junk all above kill level
或者選擇性地提供擴展字符串對某些用戶或子域:
@addr_extension_spam_maps = (
{ '.sub1.example.com' => 'spam', # an entire subdomain
'user1@example.com' => 'spam', # a particular user
'user2@example.com' => 'malware', # another user wants a different ext.
'.' => '' } # all the rest do not receive an extension
);
使用地址擴展,postfix的main.cf文件也要啓用「recipient_delimiter=+」
$path = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin';
設置path的環境變量
$MAXLEVELS = 14;
最多掃描壓縮包的多少層
$MAXFILES = 1500;
最多掃描壓縮包內多少個文件
$MIN_EXPANSION_QUOTA = 100*1024;
最小郵件限額,包括附件,單位bytes
$MAX_EXPANSION_QUOTA = 300*1024*1024;
最大郵件限額,包括附件,單位bytes
$MIN_EXPANSION_FACTOR = 1;
$MAX_EXPANSION_FACTOR = 500;
防護郵件×××,解碼郵件時的最小和最大倍數,達到這值之後,會結束解碼,公式以下:
quota = ($MIN_EXPANSION_QUOTA, $mail_size*$MIN_EXPANSION_FACTOR)
quota = ($MAX_EXPANSION_QUOTA, $mail_size*$MAX_EXPANSION_FACTOR)
$sa_spam_subject_tag = '***Spam*** ';
對郵件標題添加'***Spam*** '標記
$defang_virus = 1;
警告收件人,郵件感染了病毒
$defang_banned = 1;
警告收件人,郵件包含被禁止的名字
爲去除壞頭(標題),只能打開某些次要類別的內容;
$defang_by_ccat{CC_BADH.",3"} = 1;
標題中含有「MUL」或「CR」
$defang_by_ccat{CC_BADH.",5"} = 1;
標題大於998個字符
$defang_by_ccat{CC_BADH.",6"} = 1;
標題字段語法錯誤
# $myhostname = 'host.example.com';
設置郵件主機的域名
$notify_method = 'smtp:[127.0.0.1]:10025';
$forward_method = 'smtp:[127.0.0.1]:10025';
提交通知和轉發郵件偵聽的地址和端口
# $final_virus_destiny = D_DISCARD;
檢測到病毒郵件時的動做
# $final_banned_destiny = D_DISCARD;
檢測到受禁止內容郵件時的動做
# $final_spam_destiny = D_PASS;
檢測到垃圾郵件時的動做
# $final_bad_header_destiny = D_PASS;
檢測到含有壞郵件標題的郵件時的動做
##默認有如下幾種動做:
D_PASS: 不管郵件是否有問題,都會將信件發給收件人
D_DISCARD: 郵件將被丟棄,而且不會告知收件人及發件人
D_BOUNCE: 郵件不會發送給收件人,但會通知發件人郵件沒有被投遞
D_REJECT: 郵件不會被投遞給收件人,但會通知發件人郵件被拒絕
注意:除了 D_PASS,其它參數都會致使郵件最終不被投遞到用戶郵箱裏
# $bad_header_quarantine_method = undef;
隔離區的文件名存放格式
如:
$virus_quarantine_method = 'local:virus-%i-%n.gz';
$spam_quarantine_method = 'local:spam-%i-%n.gz';
$banned_files_quarantine_method = 'local:banned-%i-%n.gz';
$bad_header_quarantine_method = 'local:badh-%i-%n.gz';
# $os_fingerprint_method = 'p0f:*:2345'; # to query p0f-analyzer.pl
讓amavisd發送查詢到p0f,格式如:
$os_fingerprint_method = 'p0f:127.0.0.1:2345';
@keep_decoded_original_maps = (new_RE(
qr'^MAIL$', # retain full original message for virus checking
qr'^MAIL-UNDECIPHERABLE$', # recheck full mail if it contains undecipherables
qr'^(ASCII(?! cpio)|text|uuencoded|xxencoded|binhex)'i,
# qr'^Zip archive data', # don't trust Archive::Zip
));
保留完整原始郵件,進行病毒檢查
$banned_filename_re = new_RE(
[ qr'^\.(rpm|cpio|tar|zip|rar)$' => 0 ],
),
附件過濾設置
對於一些特定用戶指定評分
# read_hash("/var/amavis/sender_scores_sitewide"),
{
'nobody@cert.org' => -3.0,
'sender@example.net' => 3.0,
},
read_hash(\%whitelist_sender, '/var/amavis/.spamassassin/whitelist');
read_hash(\%blacklist_sender, '/var/amavis/.spamassassin/blacklist');
黑白名單設置,格式以下:
test@example.net
*@example.net
注意:以上兩個文件 whitelist 和 blacklist 要手動創建,而且所屬用戶需爲amavisd配置文件的用戶
@decoders = (
);
×××列表
病毒掃描部分:
@av_scanners = (
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
);
#備註:在 @av_scanners 部分中,能夠只保留 ClamAV 相關的內容,其它的都註釋掉。
# 在 @av_scanners_backup 備用的掃描軟件,能夠註釋,由於clamscan的開銷比clamdscan大
#@av_scanners_backup = (
# ### http://www.clamav.net/ - backs up clamd or Mail::ClamAV
# ['ClamAV-clamscan', 'clamscan',
# "--stdout --no-summary -r --tempdir=$TEMPBASE {}",
# [0], qr/:.*\sFOUND$/m, qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
#);socket