我正在寻找一些建议,我应该检查我的全新邮件服务器是否行为正确。/说行为,因为它正在工作 - 只是但想确保它正常工作。/
我不想被列入黑名单,仅仅因为我忘记禁止纯文本身份验证。
想要用于swaks
“从互联网端”验证功能。
我首先想到的是:
- 开放中继 - 不应被允许
- 正如我上面所说 - 不允许纯文本身份验证 - 仅允许通过 tls 进行身份验证。
- 尝试向不存在的本地用户发送 - 应该会失败
- 验证交付(存在)邮政局长和虐待别名(建议使用其他别名吗?)
所以
swaks --to .. --from .. --auth-user name --auth-password pass --protocol SMTP
^^^^^^^^^^^^^
如果失败,则显示以下*** Host did not advertise authentication
消息足够的2. 可以吗?
还有什么其他想法我必须/应该验证吗?这swaks
是一个很棒的工具 - 如果您知道如何使用它 :) 使用“exim”作为 MTA。您最喜欢的 swaks 提示是什么?
答案1
您的示例不足以表明非 TLS 连接不允许使用纯文本身份验证。 --protocol SMTP
明确告知 swaks 不要使用 ESMTP,而 ESMTP 是身份验证所必需的。换句话说,您正在测试 SMTP 不提供身份验证,而不是纯文本连接不提供纯文本身份验证。(谁是第一个!)。
以下内容更接近您所寻找的内容:
# These should fail, because you don't want to offer plaintext auth protocols
# over non-tls connections
swaks ... --auth PLAIN --auth-user .. --auth-password ..
swaks ... --auth LOGIN --auth-user .. --auth-password ..
# Should succeed because hashed PW protocols are ok over plaintext (assuming you
# support them at all of course):
swaks ... --auth CRAM-MD5 --auth-user .. --auth-password ..
swaks ... --auth DIGEST-MD5 --auth-user .. --auth-password ..
swaks ... --auth NTLM --auth-user .. --auth-password ..
# The converse of the above, make sure your plaintext password work over tls
# sessions (assuming you want them to, of course)
swaks ... --auth PLAIN --auth-user .. --auth-password .. --tls
swaks ... --auth LOGIN --auth-user .. --auth-password .. --tls
swaks ... --auth CRAM-MD5 --auth-user .. --auth-password .. --tls
swaks ... --auth DIGEST-MD5 --auth-user .. --auth-password .. --tls
swaks ... --auth NTLM --auth-user .. --auth-password .. --tls
希望有所帮助,祝你好运!
答案2
开放中继测试:
$ swaks -f [email protected] -t [email protected] --server host.yourserver.com
测试不存在的用户交付
$ swaks -f [email protected] -t [email protected] --server host.yourserver.com
您应该验证所有电子邮件端口(25,465,587)的正确性,也许有人会建议进行更多测试。