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

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 寄件者(根據定義不在我的網路上)進行垃圾郵件和惡意軟體掃描?

答案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_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
};

在 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”,您應該會看到過濾結果。

相關內容