雖然我已經找到了二 答案對此,我無法弄清楚如何實際實施它們,並且至少其中一個並沒有真正回答問題。因此,如果有人有任何經驗可以分享,我將非常感激。
我有一台運行 Postfix 的伺服器(Ubuntu 18.04)。我已經使用 postfwd 限制 SASL 寄件者的速率,並使用 Amavis 和其他工具掃描來自本地電腦/網路(例如,來自 Web 伺服器)的傳出郵件。一切正常,在 main.cf 中看起來像這樣:
smtpd_sender_restrictions =
check_client_access cidr:/etc/postfix/internal_clients_filter,
permit_mynetworks,
reject_unknown_sender_domain
並在 master.cf 中
senderCheck unix - n n - 15 spawn
user=nobody argv=/opt/policyd/src/policyd.pl max_idle=30 max_use=50 daemon_timeout=50
127.0.0.1:10025 inet n - n - - smtpd
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_data_restrictions=
-o smtpd_end_of_data_restrictions=
-o local_header_rewrite_clients=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o local_recipient_maps=
-o relay_recipient_maps=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
如何像對本地寄件者所做的那樣,對 SASL 寄件者(根據定義不在我的網路上)進行垃圾郵件和惡意軟體掃描?
答案1
有點尷尬的是,答案是 SASL-auth 用戶是被過濾。但是,我沒有syslog_name
在 master.cf 中為 smtpd 偵聽器指定 a ,因此我沒有看到在所有噪音中工作的證據(SASL 驗證寄件者可能佔日誌中所有流量的 1%)。
因此,作為懺悔,以下是我現在稍作修改的配置的完整描述,它既傳遞傳出郵件(例如本地網路上的Web 應用程式),又傳遞經過SASL 驗證的帳戶,透過我們的郵件伺服器從任意外部網路發送郵件。
除非另有說明,否則將 Ubuntu 18.04 與庫存包一起使用:
首先,我需要將 clamav 使用者新增至與 amavis 相同的群組:
$ id clamav
uid=115(clamav) gid=115(clamav) groups=115(clamav),126(amavis)
對文件的更改/etc/amavis/conf.d
:
05-domain_id
@local_domains_acl = ( ".$mydomain" );
# I've got multiple IP addresses on my machine and only want one to be used for mail:
@inet_acl = qw(127.0.0.1 [::1] 185.73.x.x [2001:ba8:0:x::x]);
15-內容過濾模式:啟用垃圾郵件和防毒檢查
20-debian_defaults:設定並建立隔離目錄(由amavis使用者+群組擁有)並設定final_spam_destiny
為D_DISCARD
40-policy_banks:
$interface_policy{'10024'} = 'INTERNAL';
$policy_bank{'INTERNAL'} = { # mail originating from clients in cidr:/etc/postfix/internal_clients_filter
bypass_spam_checks_maps => [0], # spam-check outgoing mail
bypass_banned_checks_maps => [0], # banned-check outgoing mail
bypass_header_checks_maps => [0], # header-check outgoing mail
forward_method => 'smtp:[127.0.0.1]:10025', # relay to Postfix listener on port 10025
};
在 Postfix main.cf 中:
smtpd_sender_restrictions =
check_client_access cidr:/etc/postfix/internal_clients_filter,
permit_mynetworks,
reject_unknown_sender_domain
/etc/postfix/internal_clients_filter:
0.0.0.0/0 FILTER smtp:127.0.0.1:10024
::/0 FILTER smtp:[::1]:10024
在master.cf中
127.0.0.1:10025 inet n - n - - smtpd
-o syslog_name=amavis-reentry
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_data_restrictions=
-o smtpd_end_of_data_restrictions=
-o local_header_rewrite_clients=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o local_recipient_maps=
-o relay_recipient_maps=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
重新載入 amavis 和 postfix 以取得新配置。在日誌中尋找“amavis-reentry”,您應該會看到過濾結果。