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

Jin*_*ngo 5 ubuntu sendmail

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

我一直在无休止地使用谷歌搜索,据我所知,实现这一目标的最佳方法是向 virtusertable 添加一个捕获所有电子邮件帐户。

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

FEATURE(`virtusertable', `hash /etc/mail/virtusertable')dnl     
Run Code Online (Sandbox Code Playgroud)

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

@ubuntu test
Run Code Online (Sandbox Code Playgroud)

并重新启动 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
Run Code Online (Sandbox Code Playgroud)

我是不是哪里出错了?或者有没有更好的方法来实现这一目标?

谢谢你的帮助

ada*_*amo 2

如果你想实现一个包罗万象的地址,请这样做

LOCAL_CONFIG
Kuser user -m -a.FOUND

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

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

但请记住,发送到 RCPT TO: 命令的任何内容都会通过 check_rcpt 规则集进行检查。为了防止用户名枚举,您可能需要采用灰名单等技术(我正在使用graymilter)并为greet_pause ClientConn和ClientRate设置正确的值。

“包罗万象”的地址并不总是一个好的解决方案。考虑一下您是否希望输入错误地址的发件人被告知他们的错误。