Tu has configurat l’autenticació en el correu sortint (SMTP-AUTH) en el teu servidor de correu (Postfix en el nostre cas) i funciona perfectament. Però de sobte quan el poses en producció els usuaris es queixen que no poden enviar correus.
Qué fas? Doncs intentes seguir pas a pas per comprovar el funcionament. És a dir, fas un telnet al port 25 i segueixes pas a pas l’autenticació. La conversa va més o menys així (les línies que comencen per “->” són les que escric jo, sense la part de “->”):
[email protected]:~$ telnet smtp.example.com 25
Trying 1.2.3.4...
Connected to smtp.example.com.
Escape character is '^]'.
220 smtp.example.com ESMTP server ready
-> EHLO example.com
250-smtp.example.com
250 AUTH CRAM-MD5 DIGEST-MD5
-> AUTH FOOBAR
504 Unrecognized authentication type.
-> AUTH CRAM-MD5
334 PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=
-> ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ==
235 Authentication successful.
Doncs tot funciona… Aleshores li dius al client que faci el mateix, però et diu que no veu la línia “220 smtp.example.com ESMTP server ready”, que només veu una tira d’asteriscs. Ho proves tu mateix, i efectivament és així. I a més a més, no reconeix la comanda AUTH!!
[email protected]:~$ telnet smtp.example.com 25
Trying 1.2.3.4...
Connected to smtp.example.com.
Escape character is '^]'.
220*******************************************************0*2******0***********************
2002*******2***0*00
-> EHLO example.com
250-smtp.example.com
250 AUTH CRAM-MD5 DIGEST-MD5
-> AUTH FOOBAR
500 5.5.2 Error: bad syntax
-> AUTH CRAM-MD5
500 5.5.2 Error: bad syntax
Què passa? Per què aquesta diferència? Doncs sembla que la resposta és senzilla…
Cisco Systems posa a tots els seus routers PIX un protocol per evitar atacs i afegir seguretat. Aquests protocols intercepten totes les comandes que s’envien cap el servidor i les tradueixen, fent de proxy. Aquest protocol es diu MailGuard, i només accepta les comandes bàsiques de SMTP, no pas les exteses ESMTP , fent-lo incompatible amb SMTP-AUTH. Així que la unica manera d’aconseguir fer servir SMTP-AUTH es deshabilitar-ho.
Fer-ho és facil, perquè la comanda és així de senzilla, connectats per telnet al PIX:
no fixup protocol smtp 25
write mem
El més complicat es adonar-se que algú pel mig esta modificant les comunicacions amb el servidor… Pero un cop descobert, problema solucionat!