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.