尽管我已经找到了两个 答案,但我无法弄清楚如何实际实施它们,并且至少其中一个并没有真正回答这个问题。因此,如果有人有任何经验可以分享,我将非常感激。
我有一台运行 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 相同的组中:
对
/etc/amavis/conf.d
文件的更改:05-domain_id
15-content_filter_mode:启用垃圾邮件和防病毒检查
20-debian_defaults:设置和创建隔离目录(由 amavis 用户+组拥有)并设置
final_spam_destiny
为D_DISCARD
40-policy_banks:
在后缀 main.cf 中:
/etc/postfix/internal_clients_filter:
在 master.cf
重新加载 amavis 和 postfix 以获取新配置。在您的日志中查找“amavis-reentry”,您应该会看到过滤结果。