使用 swaks 验证 MTA 行为是否正确

使用 swaks 验证 MTA 行为是否正确

我正在寻找一些建议,我应该检查我的全新邮件服务器是否行为正确。/说行为,因为它正在工作 - 只是但想确保它正常工作。/

我不想被列入黑名单,仅仅因为我忘记禁止纯文本身份验证。

想要用于swaks“从互联网端”验证功能。

我首先想到的是:

  1. 开放中继 - 不应被允许
  2. 正如我上面所说 - 不允许纯文本身份验证 - 仅允许通过 tls 进行身份验证。
  3. 尝试向不存在的本地用户发送 - 应该会失败
  4. 验证交付(存在)邮政局长虐待别名(建议使用其他别名吗?)

所以

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)的正确性,也许有人会建议进行更多测试。

相关内容