Postfix:如何惡意軟體和垃圾郵件掃描傳出的 SMTP SASL 身份驗證使用者?
儘管我已經找到了兩個 答案,但我無法弄清楚如何實際實施它們,並且至少其中一個並沒有真正回答這個問題。因此,如果有人有任何經驗可以分享,我將非常感激。
我有一台執行 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 發件人(根據定義不在我的網路上)通過垃圾郵件和惡意軟體掃描?
有點尷尬的是,SASL-auth 使用者被過濾掉了。但是,我沒有
syslog_name
在 master.cf 中為 smtpd 偵聽器指定 a,所以我沒有看到在所有噪音中都有效的證據(SASL-auth 發送者可能是日誌中所有流量的 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-content_filter_mode:啟用垃圾郵件和防病毒檢查
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 };
在後綴 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”,您應該會看到過濾結果。