防止 Ubuntu 上的 sendmail 中的 RCPT TO:用户名枚举

防止 Ubuntu 上的 sendmail 中的 RCPT TO:用户名枚举

我正在尝试配置 sendmail 以防止它允许通过 RCPT TO: 命令进行用户名枚举。

我一直在谷歌上搜索,从我所看到的,实现这一点的最佳方式是向 virtusertable 添加一个 catch all email 帐户。

因此我生成了一个新的 sendmail.cf 文件,其中包含以下指令:

FEATURE(`virtusertable', `hash /etc/mail/virtusertable')dnl     

然后,我在 virtusertable.db 文件中添加:

@ubuntu test

并重新启动sendmail,但是不起作用:

mail from:root@ubuntu
250 2.1.0 root@ubuntu... Sender ok
rcpt to:root 
250 2.1.5 root... Recipient ok
rcpt to:fake
550 5.1.1 fake... User unknown

我哪里做错了吗?或者有更好的方法来实现这一点?

谢谢你的帮助

答案1

如果你想实现一个万能地址,像这样做

LOCAL_CONFIG
Kuser user -m -a.FOUND

LOCAL_RULE_0
R$- < $=w . > $*        $: $(user $1 $) < $2 . > $3
R$- . FOUND < $=w . > $*          $@ catch-all < $2 . > $3

请记住,规则的左侧与右侧用制表符分隔。使用上述代码更新 sendmail.mc 后,运行sendmailconfig

但请记住,发送到 RCPT TO: 命令的任何内容都会通过 check_rcpt 规则集进行检查。为了防止用户名枚举,您可能需要采用以下技术灰名单(我在用格雷米尔特)并设置适当的值问候暂停ClientConn 和 ClientRate。

“全部接收”地址并不总是一个好的解决方案。请考虑是否希望输入错误地址的发件人被告知他们的错误。

相关内容