Postfix

Postfix:如何惡意軟體和垃圾郵件掃描傳出的 SMTP SASL 身份驗證使用者?

  • January 12, 2021

儘管我已經找到了兩個 答案,但我無法弄清楚如何實際實施它們,並且至少其中一個並沒有真正回答這個問題。因此,如果有人有任何經驗可以分享,我將非常感激。

我有一台執行 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_destinyD_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”,您應該會看到過濾結果。

引用自:https://serverfault.com/questions/1048500