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 侦听器指定,因此我没有看到它在所有的噪音中工作的证据(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-域名 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_默认值:设置并创建隔离目录(由 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”,您应该会看到过滤的结果。

相关内容