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

我试图configurationsendmail,以防止它通过RCPT TO命令允许用户名枚举。

我一直在无休止地Googlesearch,从我所能看到的,实现这个目标的最好方法是把所有的电子邮件帐户添加到虚拟引擎。

所以我生成了一个新的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 

我在哪里错了? 还是有更好的方法来实现这一目标?

谢谢你的帮助

如果你想实现一个通用地址, 就这样做 :

 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

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

“全部捕捉”地址并不总是一个好的解决scheme。 想想你是否希望input错误地址的发件人知道他们的错误。