Postfix ne prend actuellement en charge que deux méthodes d'authentification SASL. L'un d'eux est Dovecot, dont vous ne voulez pas. L'autre est Cyrus, qui est à peu près aussi proche de ce que vous voulez qu'il est possible d'obtenir sans réécrire Postfix. Cela implique d'exécuter un démon d'authentification distinct ( saslauthd
), mais le fichier d'authentification est facile à modifier et à mettre à jour.
Les bases de l'utilisation de Cyrus SASL sont disponibles sur le site de documentation de postfix , mais voici une brève description. Veuillez regarder le lien si quelque chose est déroutant de quelque façon que ce soit!
Commencez par installer Cyrus SASL avec le plugin sasldb
. (Comment faire cela est laissé comme un exercice pour le lecteur; il y a probablement un paquet dans n'importe quel système de paquetage que votre marque d'Unix utilise.) Puisque la communication entre Postfix et SASL se fera via une socket de domaine Unix, vous voudrez peut-être ajoutez le suffixe au groupe SASL et assurez-vous que ce groupe dispose des autorisations de lecture et d'exécution sur le répertoire /var/run/saslauthd
.
Configurer SASL
Configurez SASL pour utiliser sasldb en modifiant /etc/sasl2/smtpd.conf:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
Le plugin sasldb signifie que sasl utilisera un fichier Berkeley DB pour les noms d'utilisateur et les mots de passe. Vous ajoutez des utilisateurs avec la commande saslpasswd2
:
$ saslpasswd2 -c -u example.com username
Password:
Again (for verification):
Notez que vous spécifiez un domaine avec le nom d'utilisateur et que l'utilisateur devra utiliser "username@example.com" plutôt que simplement "username" lors de l'authentification.
Vous pouvez vérifier quels utilisateurs ont été entrés en exécutant sasldblistusers2
.
Démarrez saslauthd et vérifiez que l'authentification fonctionne en faisant
testsaslauthd -u username@example.com -p password
Configurer Postfix
Une fois cela fait, dites à Postfix d'utiliser SASL et de dire à Cyrus que c'est SMTP qu'il s'authentifie, en éditant /etc/postfix/main.cf pour contenir
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
Ensuite, rechargez postfix, et vous devriez être réglé.