amavisd-new 不對本地域名過濾方法

 第一個問題解決,轉:

amavisd-new 不對本地域名過濾方法

本人也曾因爲amavisd-new過濾本地域外發的郵件而抓耳撓腮,通過一個多星期的查找資料,才找到了兩個合適的方法.
在說方法之前,我先要說明下amavisd.conf中的local_domains*不能做到跳過檢測,如果網友質疑,可以拿出方法來囧我.
方法一:
通過submission跳過檢測.
這個方法唯一的缺點就是,使用OE或Foxmail等代理軟件的用戶必須修改smtp默認的端口號(默認是25).
編輯postfix/master.cf
啓用submission這個進程,加入認證方式和過濾策略,保存後退出
submission        inet n      -       n       -       -       smtpd
    -o smtpd_etrn_restrictions=reject
    -o smtpd_sasl_auth_enable=yes        
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    -o content_filter=smtp-amavis:[127.0.0.1]:10026
這裏過濾策略用得是smtp-amavis:[127.0.0.1]:10026
修改amavisd.conf
打開amavisd的監聽端口,以後amavisd將監聽10024,10025,10026這三個端口
$inet_socket_port = [10024, 10026];
大部分人的配置只是打開了10024,如$inet_socket_port = 10024.
接着添加對10026端口的策略,如果你的配置中已存在對10026端口的策略,請註釋掉.
$interface_policy{'10026'} = 'CHECKBYPASS';

$policy_bank{'CHECKBYPASS'} = {  # mail from submission and smtps ports
   bypass_spam_checks_maps   => [1],  # don't spam-check this mail
   bypass_banned_checks_maps => [1],  # don't banned-check this mail
   bypass_header_checks_maps => [1],  # don't header-check this mail  
};
保存後退出
重啓postfix和amavisd
netstat -tnlp 看看端口狀態
tcp        0      0 0.0.0.0:587                 0.0.0.0:*                   LISTEN      18525/master  
587既是submission的監聽端口.
現在設置outlook或foxmail
修改發件設置中smtp端口號爲587即可,別忘了在防火牆中放開587.
用本域用戶試發一封郵件看看.
amavis[30236]: (30236-16) Passed CLEAN, CHECKBYPASS [222.45.26.224] [222.45.26.224] <[email protected]> -> <[email protected]>, Message-ID: <[email protected]>, mail_id: ALw5YMALJbGF, Hits: -, size: 1605, queued_as: 1FFA8474002, 182 ms
如果出現紅色的部分,說明設置成功了,這樣,不管是否垃圾郵件都將跳過檢測.由於跳過檢測,發信的速度會很快,而且對系統的開銷小.這是個不錯的辦法.

第二個方法:
修改@mynetworks.
編輯amavisd.conf
默認爲:
@mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10
                  10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 );
加入你要跳過過濾的IP網段
例如:
@mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10
                  10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 222.45.26.0/24 );
同時修改MYNETS策略成如下

$policy_bank{'MYNETS'} = {   # mail originating from @mynetworks
  originating => 1,  # is true in MYNETS by default, but let's make it explicit
  os_fingerprint_method => undef,  # don't query p0f for internal clients
  bypass_spam_checks_maps => [1], # don't spam-check internal mail
  bypass_banned_checks_maps => [1], # don't banned-check internal mail
  bypass_header_checks_maps => [1], # don't header-check internal mail
};
保存後重啓amaivsd
以後來自222.45.26.0/24的郵件都跳過檢測.
同樣會看到如下記錄
amavis[15750]: (15750-11) Passed CLEAN, MYNETS LOCAL [222.45.26.132] [222.45.26.132] <[email protected]> -> <[email protected]>, Message-ID: <E9E8D264BCF84E23AD210DC0E9A3C1CF@bendan13e0dfc8ed>, mail_id: VbR2kBqI-F1W, Hits: -, size: 11378, queued_as: E741F1D94001, 450 ms
這種方法也不是萬金油,他也只能跳過來自@mynetworks中地址的郵件

兩種方法任意選擇

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