如何延迟对 Exim 中失败的 SMTP 身份验证的答复?

如何延迟对 Exim 中失败的 SMTP 身份验证的答复?

我运行一个流量较小的 Exim 邮件服务器。偶尔我会收到非法登录尝试admin@DOMAIN等,这些尝试都会以 来回答535 Incorrect authentication data

我想延迟 SMTP 会话中该身份验证的答复,以便对手被困等待一段时间,直到最终拒绝尝试。

Exim 有非常有用的delay = TIME选项,但它似乎只适用于访问控制列表。据我所知,在运行 ACL 时,身份验证已经协商好了(有一个accept authenticated = *条件,即身份验证必须已经发生)。

我特别想延迟对失败的 SMTP PLAIN 身份验证尝试的答复。在 Exim 中可以做到这一点吗?

答案1

exim为 SMTP 会话的每个阶段提供单独的 ACL:

acl_smtp_auth       ACL for AUTH
acl_smtp_connect    ACL for start of SMTP connection
acl_smtp_data       ACL after DATA is complete
acl_smtp_data_prdr  ACL for each recipient, after DATA is complete
acl_smtp_dkim       ACL for each DKIM signer
acl_smtp_etrn       ACL for ETRN
acl_smtp_expn       ACL for EXPN
acl_smtp_helo       ACL for HELO or EHLO
acl_smtp_mail       ACL for MAIL
acl_smtp_mailauth   ACL for the AUTH parameter of MAIL
acl_smtp_mime       ACL for content-scanning MIME parts
acl_smtp_notquit    ACL for non-QUIT terminations
acl_smtp_predata    ACL at start of DATA command
acl_smtp_quit       ACL for QUIT
acl_smtp_rcpt       ACL for RCPT
acl_smtp_starttls   ACL for STARTTLS
acl_smtp_vrfy       ACL for VRFY

在每个阶段,都可以检查复杂条件并做出接受/拒绝/延迟/路由/等消息的决定。可以立即执行操作,也可以推迟到以后处理$acl_m*$acl_c*变量进行处理。

參閱Exim 规范第 43 章以供进一步阅读。

相关内容