我运行一个流量较小的 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 章以供进一步阅读。