systemadmin.es > Correo > Comprobar mediante telnet la autenticación SMTP

Comprobar mediante telnet la autenticación SMTP

Para realizar una prueba manual de la autenticación SMTP debemos “hablar” con el servidor en base64. Vamos a ver como hacerlo.

Hacemos un telnet al servidor en el puerto 25:

$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.dominio.com ESMTP

Seguimos diciendo al servidor “auth login“:

auth login
334 VXNlcm5hbWU6

La respuesta que nos da es “VXNlcm5hbWU6“, que si lo decodificamos vemos que nos pide el usuario:

$ php -r 'echo base64_decode($argv[1])."\n";' VXNlcm5hbWU6
Username:

Por lo que debemos codificar en base 64 el usuario y mandarlo al servidor:

$ php -r 'echo base64_encode($argv[1])."\n";' usuario@dominio.com
dXN1YXJpb0Bkb21pbmlvLmNvbQ==

Con el usuario codificado en base64 se lo pasamos al servidor:

dXN1YXJpb0Bkb21pbmlvLmNvbQ==
334 UGFzc3dvcmQ6

A continuación nos pide la contraseña. Si descodificamos “UGFzc3dvcmQ6” lo podemos ver:

$ php -r 'echo base64_decode($argv[1])."\n";' UGFzc3dvcmQ6
Password:

Por lo que de nuevo debemos mandarle la contraseña en base 64. La codificamos:

$ php -r 'echo base64_encode($argv[1])."\n";' secreto
c2VjcmV0bw==

Y se la mandamos al servidor:

c2VjcmV0bw==
235 ok, go ahead (#2.0.0)

Con su respuesta “235 ok, go ahead” indica que nos hemos autenticado correctamente. Si la contraseña fuese incorrecta recibiriamos “535 authorization failed (#5.7.0)

La sessión completa sería:

# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 mail.dominio.com ESMTP
auth login
334 VXNlcm5hbWU6
dXN1YXJpb0Bkb21pbmlvLmNvbQ==
334 UGFzc3dvcmQ6
c2VjcmV0bw==
235 ok, go ahead (#2.0.0)

6 comments to “Comprobar mediante telnet la autenticación SMTP”

  1. tienes un pequeño problema con la distinción entre la b y la v, es “comprobar” llevas ya varias así, pero ésta en el título duele especialmente.

  2. De esta no me la ha dado el chivatazo el corrector. Corregido!

    Muchas gracias

  3. ¿y si te sale esto?
    auth login
    502 unimplemented (#5.5.1)

  4. Hola,
    El servidor de correo no dispone de autenticación. En el caso de qmail se trata de un parche: smtp-auth.

    saludos!

  5. Hola, muy bueno el apunte

  6. Hola, me ha parecido magnifico el artículo.

    Tengo un servidor VPS y me da erro con la autentificación, el error que me sale es:

    535 5.7.8 Error: authentification failed: generic failure

    Además cuando me conecto desde el Thunderbird 8, me da error de contraseña o usuario.
    Pero si accedo por un cliente http como el rouncube o el squirremail, si puedo acceder… No se si es un problema de la configuración del VPS (que es alquilado) o alguna otra cosa.

    Si me puedes echar una mano te lo agradecería mucho. Muchas gracias.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>