27.10. Autentificación utilizando SMTP

Escrito por James Gorham.

La autentificación mediante SMTP puede proporcionarnos diversas ventajas. Añade una capa adicional de seguridad a a sendmail y además proporciona a los usuarios móviles (usuarios que cambian de máquina) la posibilidad de mantener el mismo servidor de correo sin necesidad de reconfigurar sus agentes de usuario de correo cada vez que se trasladan.

  1. Instalar security/cyrus-sasl desde los ports. Se puede encontrar dicho port en security/cyrus-sasl. security/cyrus-sasl posée varias opciones en tiempo de compilación pero para el método en particular que se va a explicar en esta sección basta con asegurarse de seleccionar la opción pwcheck.

  2. Después de instalar security/cyrus-sasl, edite /usr/local/lib/sasl/Sendmail.conf (o créelo si no existe) y añada la siguiente línea:

    pwcheck_method: passwd

    Este método activa la autentificación de sendmail contra nuestra base de datos de FreeBSD, passwd. Esto nos evita el problema de tener que crear un nuevo conjunto de usuarios y contraseñas para cada usuario que necesite validarse mediante SMTP y además nos permite mantener el mismo login y contraseña que los usuarios utilizan para acceder a sus cuentas para el acceso al correo electrónico.

  3. Editar/etc/make.conf y añadir las siguientes líneas:

    SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
    SENDMAIL_LDFLAGS=-L/usr/local/lib
    SENDMAIL_LDADD=-lsasl

    Estas líneas proporcionan a sendmail las opciones de configuración necesarias para enlazar con cyrus-sasl en tiempo de compilación. Debemos asegurarnos de que cyrus-sasl ha sido instalado correctamente recompilar sendmail.

  4. Recompile sendmail utilizando el siguiente comando:

    # cd /usr/src/usr.sbin/sendmail
    # make cleandir
    # make obj
    # make
    # make install

    La compilación de sendmail no debería dar problemas siempre y cuando /usr/src no haya cambiado sustancialmente y siempre y cuando las bibliotecas compartidas necesarias se encuentren disponibles.

  5. Una vez que sendmail se ha compilado y reinstalado con correctamente debemos editar el fichero /etc/mail/freebsd.mc (o el fichero que se utilice como .mc de referencia. Hay administradores que escogen utilizar la salida de hostname(1) como el nombre del fichero .mc que se utiliza para la configuración de sendmail por motivos de uniformidad ). Añada las siguientes líneas a dicho fichero:

    dnl set SASL options
    TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl

    Estas opciones configuran los distintos métodos de que dispone sendmail para validar a los usuarios de correo. Si se desea utilizar otro método distinto a pwcheck por favor consulte la documentación.

  6. Para terminar ejecutamos make(1) mientras nos encontramos dentro de /etc/mail. Este comando trata el fichero .mc y crea el fichero .cf correspondiente (con el mismo nombre que el anterior pero terminado en .cf). A continuación se utiliza el comando make install restart, el cual copia el fichero .cf recién generado al fichero sendmail.cf y a continuación reinicia sendmail. Para más información sobre este proceso puede consultarse el contenido de /etc/mail/Makefile.

Si todo lo anteriormente comentado ha funcionado correctamente deberíamos ser capaces de introducir la información de nuestro login en nuestro cliente de correo y enviar un mensaje de prueba. Para investigar más a fondo estos temas se puede habilitar la opción LogLevel de sendmail al valor 13 y observar detenidamente el archivo /var/log/maillog en busca de posibles mensajes de error.

Puede ser necesario añadir las siguientes líneas al fichero /etc/rc.conf de modo que el servicio explicado en esta sección se encuentre disponible automáticamente desde el arranque:

sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"

Esto permite que la inicialización de SMTP_AUTH se produzca durante el arranque del sistema.

Para más información por favor visite la página autentificación SMTP de sendmail·

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.

Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.