SMTP-Auth mit telnet testen (Archiv)

(Original veröffentlicht am 27. September 2006)

Für jeden, der vor dem Problem steht, einen MTA einzurichten, ist telnet eine unverzichtbare Debugging-Hilfe.

Hier eine kurze Anleitung, wie die Authentifizierungsmechanismen „Plain“ und „Login“ über telnet getestet werden können.

Zuerst muss logischerweise die Telnet-Verbindung zum Mailserver hergestellt werden:
$ telnet mailserver.meine.domain smtp

Mein Mailserver meldet sich nun mit:

Trying 123.123.123.123...
Connected to mailserver.meine.domain.
Escape character is '^]'.
220 mailserver.meine.domain ESMTP Postfix

Mit
ehlo meine.domain
stelle ich mich nun vor und erhalte eine Antwort in der Art:

250-mailserver.meine.domain
250-PIPELINING
250-SIZE 51200000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH GSSAPI NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=GSSAPI NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME

An den Zeilen, die mit „AUTH“ beginnen, kann nun schon einmal erkannt werden, dass die zu testenden Login-Mechanismen „LOGIN“ und „PLAIN“ auch unterstützt werden, das Testen kann also weitergehen:

Methode 1 – Auth-Login
Mit
auth login
initiiere ich den Anmeldevorgang und bekomme eine kryptische Rückmeldung, wie:

334 VXNlcm5hbWU6

Der Server verlangt nun meine Mime-kodierten Benutzerangaben. Diese lassen sich auf einem weiteren Terminal einfach ermitteln mit:

$ printf 'benutzername' |mimencode
YmVudXR6ZXJuYW1l

sowie:
$ printf 'passwort' |mimencode
cGFzc3dvcnQ=

Diese Daten können nun in die Telnet-Session eingefügt werden:
YmVudXR6ZXJuYW1l
334 UGFzc3dvcmQ6
cGFzc3dvcnQ=
235 Authentication successful

Der Login ist geglückt :)

Methode 2 – Auth-Plain
Die Plain-Anmeldung erfolgt eigentlich analog zur Login-Methode, es werden aber Benutzername und Passwort in einem String übergeben. Dieser kann über Mimencode wie folgt zusammengebastelt werden:
$ printf 'benutzername\0kontoname\0passwort' |mimencode
YmVudXR6ZXJuYW1lAGtvbnRvbmFtZQBwYXNzd29ydA==

Und nun wird statt „auth login“ in der Telnet-Session einfach
auth plain
eingetragen.
Auf die Antwort

334

kann dann die oben erzeugte Zeile eingegeben werden:

YmVudXR6ZXJuYW1lAGtvbnRvbmFtZQBwYXNzd29ydA==
235 Authentication successful

Super, auch dies hat geklappt :)

Nach der erfolgreichen Anmeldung kann dann endlich nach Schema F getestet werden, ob auch erfolgreich eine eMail versendet werden kann:
mail from: benutzername
250 Ok
rcpt to: empfaenger@externe.domain
250 Ok
data
354 End data with .
mein mailtext zeile 1
mein mailtext zeile 2
.
250 Ok: queued as AE600400140C
quit

Fertig.

Unverzichtbare Debugging-Hilfen sind natürlich auch wieder die Logeinträge des MTA.