amavisd.conf 配置文件詳解

amavisd配置文件詳解

2013-6-7  admin    Amavisd Spamassass

版權所有:DSPAM中文站》 => 《amavisd配置文件詳解
本文地址http://blog.dspam.org.cn/post-42.html
除非註明,文章均爲 《DSPAM中文站》 原創,歡迎轉載!轉載請註明本文地址,謝謝。

轉自:http://blog.dspam.org.cn/post-42.html


amavisd.conf 配置文件詳解:

    配置文件基於amavisd-new-2.8,如果使用其他版本的amavisd-new,請參照其他版本的amavisd.conf 配置文件。

# @bypass_virus_checks_maps = (1);

控制是否啓用病毒掃描;

# @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 簽名的代碼


@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
    '[email protected]' => 'spam',     # a particular user
    '[email protected]' => '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"),
   {
     '[email protected]'                        => -3.0,
     '[email protected]'                     =>  3.0,
   },

read_hash(\%whitelist_sender, '/var/amavis/.spamassassin/whitelist');
read_hash(\%blacklist_sender, '/var/amavis/.spamassassin/blacklist');
黑白名單設置,格式如下:
[email protected]
*@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 ],
#);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章