Friday, April 20, 2012

Configurar sendmail para que use a Gmail como smarthost con Debian Wheezy

Recientemente monté un "servidor multimedia" en la casa, básicamente una laptop vieja con debian Wheezy para utilizarla como servidor NAS y DLNA. Fue entonces cuando me surgió la idea de utilizar el SMTP de gmail como smarthost y de esa manera, todos los correos que se generen en el "servidor multimedia" saldrían por gmail ya que la mayoría de los ISP's colocan deliberadamente las IP's de los clientes en las listas negras de spam.

El procedimiento que explico lo realicé utilizando todo "out of the box", así que debería ser de muy fácil mantenimiento (debian way).

Elementos de software que utilicé
Distribución: Debian Wheezy
Sendmail: 8.14.4-2
sasl2-bin: 2.1.25.dfsg1-4
libsasl2-2: 2.1.25.dfsg1-4
libsasl2-modules: 2.1.25.dfsg1-4

Nota: Si falta algún otro paquete, por favor decirlo. No recuerdo si sendmail ya instala las librerías sasl.


Configuración

  1. Hacer un respaldo del /etc/mail/sendmail.mc

  2. Editar el /etc/mail/sendmail.conf y colocar MSP_MODE="None"

  3. Editar el /etc/sendmail.mc y colocar toda la sección de "Default Mailer setup" al final del archivo.

  4. Añadir la siguiente sección antes de "Masquerading options"


    dnl ###################################
    dnl # Comienzo pruebas de gmail
    dnl #
    dnl #
    dnl # Soporte para TLS (para pruebas de gmail)
    dnl #
    include(`/etc/mail/tls/starttls.m4')dnl
    dnl #
    dnl #
    dnl #
    define(`SMART_HOST',`smtp.gmail.com')dnl
    define(`RELAY_MAILER_ARGS',`TCP $h 587')dnl
    define(`ESMTP_MAILER_ARGS',`TCP $h 587')dnl
    FEATURE(`authinfo', `hash /etc/mail/client-info-gmail.db')dnl
    define(`confAUTH_MECHANISMS',`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    dnl #
    dnl #
    dnl # Fin de pruebas de gmail
    dnl ##################################


    Nota: Cuidado al copiar esto ya que aveces las comillas se malinterpretan. Yo recomiendo copiar secciones del .mc y luego editarlas para evitar problemas. Dicho queda.



  5. Editar el archivo (nuevo) /etc/mail/client-info-gmail y colocar la siguiente información:

    AuthInfo:smtp.gmail.com "U:root" "I:usuario@gmail.com" "P:password" "M:LOGIN PLAIN"
    AuthInfo:smtp.gmail.com:587 "U:root" "I:usuario@gmail.com" "P:password" “M:LOGIN PLAIN"

    Nota: Cuidado al copiar las comillas dobles, mejor hacerlo a mano, sendmail puede no entenderlas bien y el servidor de gmail nos mostrará un error diciendo "530-5.5.1 Authentication Required".

    Nota 2: Cada "AuthInfo" es una sola línea

  6. Hacer el mapa con el siguiente comando:
    makemap -r hash client-info-gmail.db < client-info-gmail

  7. Asegurarse de que saslauthd está arrancado (si no, arrancarlo) y verificar que arranque en el inicio (update-rc.d saslauthd defaults).

  8. Ejecutar sendmailconfig y verificar que no salga ningún error.

  9. Ejecutar update-rc.d sendmail defaults para que arranque en el inicio.


Eso debería ser todo, solo queda probar.