尽管我发现二 答案对此,我不知道如何真正实现它们,至少其中一个并没有真正回答这个问题。所以如果有人有任何经验可以分享,我将非常感激。
我有一台运行 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_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”,您应该会看到过滤的结果。