此配置将描述通过telnet使用AUTH DIGEST-MD5 CRAM-MD5加密身份验证方法登录SMTP服务器的过程。首先,我们需要安装所有先决条件:
# apt-get install telnet sasl2-bin
使用telnet命令,我们将连接到SMTP服务器。的sasl2-bin
包装内含gen-auth
命令,我们将使用该命令来生成对服务器身份验证质询的BASE64编码响应。让我们开始使用telnet
连接到我们的服务器的命令:
$ telnet 10.1.1.11 25
Trying 10.1.1.11...
Connected to 10.1.1.11.
Escape character is '^]'.
220 mail.localhost.localdomain ESMTP Postfix (Ubuntu)
现在我们已连接。下一步是检查服务器支持哪些身份验证方法:
EHLO testing
250-mail.localhost.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-c
250-AUTH=DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
从上面的输出中,我们可以看到服务器能够AUTH DIGEST-MD5 CRAM-MD5
登录身份验证。使用时AUTH DIGEST-MD5 CRAM-MD5
身份验证方法在服务器和客户端之间不交换普通密码。而是,服务器为客户端生成一个one-time BASE64编码的”challenge”。让我们首先生成一个挑战问题:
AUTH CRAM-MD5
334 PDU3NjQ0Mzc2Mi4zMjkwNzRAbWFpbC5saW51eGNvbnN1bHRpbmcuY29tLmF1Pg==
现在使用一个单独的终端,我们将使用gen-auth
使用身份验证方法,用户名和密码作为参数生成响应的命令:
# gen-auth CRAM-MD5 This email address is being protected from spambots. You need JavaScript enabled to view it.n mypassword
challenge: PDU3NjQ0Mzc2Mi4zMjkwNzRAbWFpbC5saW51eGNvbnN1bHRpbmcuY29tLmF1Pg==
bHVib3NAbGludXhjb25zdWx0aW5nLmNvbS5hdSBiZWY2Mjk3OGY0OWUyN2E1NmJhMjMyNTJkMmZlNTc4MA==
接下来,我们简单地回答由生成的BASE64编码的字符串gen-auth
命令:
AUTH CRAM-MD5
334 PDU3NjQ0Mzc2Mi4zMjkwNzRAbWFpbC5saW51eGNvbnN1bHRpbmcuY29tLmF1Pg==
bHVib3NAbGludXhjb25zdWx0aW5nLmNvbS5hdSBiZWY2Mjk3OGY0OWUyN2E1NmJhMjMyNTJkMmZlNTc4MA==
235 2.7.0 Authentication successful