27.10. Authentification SMTP

Ecrit par James Gorham.

Disposer de l'authentification SMTP sur votre serveur de courrier présente un certain nombre d'avantages. L'authentification SMTP peut ajouter une autre couche de sécurité à sendmail, et a l'avantage de donner aux utilisateurs mobiles la possibilité d'utiliser le même serveur de courrier sans avoir besoin de reconfigurer les paramètres de leur client courrier à chaque déplacement.

  1. Installez security/cyrus-sasl à partir du catalogue des logiciels portés. Vous pouvez trouver ce logiciel porté dans security/cyrus-sasl. security/cyrus-sasl dispose de nombreuses options de compilation possibles, pour la méthode que nous allons utiliser ici, assurez-vous de sélectionner l'option pwcheck.

  2. Après avoir installé security/cyrus-sasl, éditez /usr/local/lib/sasl/Sendmail.conf (ou créez-le s'il n'existe pas) et ajoutez la ligne suivante:

    pwcheck_method: passwd
    

    Cette méthode activera au niveau de sendmail l'authentification par l'intermédiaire de votre base de données FreeBSD passwd. Cela nous épargne le problème de la création d'un nouvel ensemble de nom d'utilisateur et de mot de passe pour chaque utilisateur ayant besoin de recourir à l'authentification SMTP, et conserve le même nom d'utilisateur et mot de passe pour le courrier.

  3. Maintenant éditez /etc/make.conf et ajoutez les lignes suivantes:

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

    Ces lignes passeront à sendmail les bonnes options de configuration au moment de la compilation pour lier cyrus-sasl. Assurez-vous que cyrus-sasl a été installé avant de recompiler sendmail.

  4. Recompilez sendmail en lançant les commandes suivantes:

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

    La compilation de sendmail ne devrait pas présenter de problèmes si le répertoire /usr/src n'a pas subi d'énormes changements et si les bibliothèques partagés nécessaires sont disponibles.

  5. Une fois que sendmail a été compilé et réinstallé, éditez votre fichier /etc/mail/freebsd.mc (ou tout autre fichier que vous utilisez comme fichier .mc. De nombreux administrateurs utilisent la sortie de hostname(1) comme nom de fichier .mc par unicité). Ajoutez-y les lignes qui suivents:

    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
    

    Ces options configurent les différentes méthodes disponibles pour sendmail pour l'authentification des utilisateurs. Si vous désirez utiliser une méthode autre que pwcheck, veuillez consulter la documentation fournie.

  6. Enfin, exécutez make(1) quand vous êtes dans /etc/mail. Cela prendra votre nouveau fichier .mc et créera un fichier .cf appelé freebsd.cf (ou selon tout autre nom que vous avez utilisé pour votre fichier .mc). Ensuite utilisez la commande make install restart, qui copiera le fichier en sendmail.cf, et redémarrera proprement sendmail. Pour plus d'informations sur ce processus, vous devriez vous réferrer au fichier /etc/mail/Makefile.

Si tout s'est bien passé, vous devriez être en mesure d'entrer votre identifiant dans votre programme de courrier et d'envoyer un message de test. Pour plus d'investigation, fixez le LogLevel de sendmail à 13 et scrutez /var/log/maillog à la recherche d'une erreur.

Vous pourrez rajouter les lignes suivantes au fichier /etc/rc.conf afin de rendre ce service disponible après chaque démarrage du système:

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

Cela assurera l'initialisation de SMTP_AUTH, l'authentification SMTP, au démarrage du système.

Pour plus d'informations, veuillez consulter la page de la documentation de sendmail concernant l'authentification SMTP.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.