Как выполнить SMTP-аутентификацию из командной строки AUTH DIGEST-MD5 CRAM-MD5
Эта конфигурация будет описывать процедуру входа на SMTP-сервер с использованием метода шифрования AUTH DIGEST-MD5 CRAM-MD5 через telnet. Для начала нам нужно установить все предпосылки:
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
между сервером и клиентом не происходит обмен простыми паролями. Вместо этого сервер генерирует клиенту одноразовый «вызов» в кодировке BASE64. Давайте сначала сформулируем проблемный вопрос:
AUTH CRAM-MD5
334 PDU3NjQ0Mzc2Mi4zMjkwNzRAbWFpbC5saW51eGNvbnN1bHRpbmcuY29tLmF1Pg==
Теперь с помощью отдельного терминала мы будем использовать команду gen-auth
для генерации ответа с использованием метода аутентификации, логина и пароля в качестве аргументов:
gen-auth CRAM-MD5 lubos@localhost.localdomain mypassword
challenge: PDU3NjQ0Mzc2Mi4zMjkwNzRAbWFpbC5saW51eGNvbnN1bHRpbmcuY29tLmF1Pg==
bHVib3NAbGludXhjb25zdWx0aW5nLmNvbS5hdSBiZWY2Mjk3OGY0OWUyN2E1NmJhMjMyNTJkMmZlNTc4MA==
Далее мы просто отвечаем закодированной строкой в кодировке BASE64, сгенерированной командой gen-auth
:
AUTH CRAM-MD5
334 PDU3NjQ0Mzc2Mi4zMjkwNzRAbWFpbC5saW51eGNvbnN1bHRpbmcuY29tLmF1Pg==
bHVib3NAbGludXhjb25zdWx0aW5nLmNvbS5hdSBiZWY2Mjk3OGY0OWUyN2E1NmJhMjMyNTJkMmZlNTc4MA==
235 2.7.0 Authentication successful