我正在尝试配置 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)
我是不是哪里出错了?或者有没有更好的方法来实现这一目标?
谢谢你的帮助
如果你想实现一个包罗万象的地址,请这样做:
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设置正确的值。
“包罗万象”的地址并不总是一个好的解决方案。考虑一下您是否希望输入错误地址的发件人被告知他们的错误。
归档时间: |
|
查看次数: |
2334 次 |
最近记录: |