Le support de LDAPest intégré à sendmaildepuis la version 8.9, et s'est bonifié au fil du temps. Le principal intérêt de l'utilisation de LDAPavec sendmailest d'accéder à une base de données centralisée de toutes les informations utiles :
Le programme sendmailréalise l'accès à un serveur LDAPde manière très similaire à l'utilitaire ldapsearch fourni avec OpenLDAP. On peut spécifier les paramètres d'accès au serveur (adresse, port, DN2.2 de base pour les recherches), et plus généralement le filtre utilisé pour obtenir l'information.
Si cette manière de faire autorise n'importe quel schéma pour la base LDAP, sendmailprivilégie toutefois un schéma particulier pour l'accès aux informations, spécifié dans le fichier sendmail.schema accompagnant les versions actuelles de sendmail :
Type Attributs requis Attributs optionnels sendmailMTA objectClass sendmailMTACluster sendmailMTAHost Description sendmailMTAMap objectClass sendmailMTACluster sendmailMTAMapName sendmailMTAHost Description sendmailMTAObject objectClass sendmailMTACluster sendmailMTAMapName sendmailMTAHost sendmailMTAKey Description sendmailMTAMapValue sendmailMTAAlias objectClass sendmailMTAAliasGrouping sendmailMTACluster sendmailMTAHost Description sendmailMTAAliasObject objectClass sendmailMTAAliasGrouping sendmailMTAKey sendmailMTACluster sendmailMTAAliasValue sendmailMTAHost Description sendmailMTAClass objectClass sendmailMTACluster sendmailMTAClassName sendmailMTAHost sendmailMTAClassValue Description
Par défaut, sendmaillimite sa recherche aux seules entrées dont
l'attribut sendmailMTAHost correspond au nom de la machine,
tel que défini avec la macro $j
, ou l'attribut sendmailMTACluster correspond au nom défini par la macro
${sendmailMTACluster}
. Cette dernière possibilité permet à
plusieurs machines de partager un ensemble d'aliases, par exemple,
sans avoir à les répéter pour chaque machine.
Les types d'objets cités dans le tableau ci-dessus correspondent aux différentes utilisations dans le fichier de configuration.
dn: sendmailMTAKey=maliste, dc=domaine, dc=fr objectClass: sendmailMTA objectClass: sendmailMTAAlias objectClass: sendmailMTAAliasObject sendmailMTAAliasGrouping: aliases sendmailMTAHost: serveur.domaine.fr sendmailMTAKey: maliste sendmailMTAAliasValue: machin@labas.fr sendmailMTAAliasValue: truc@ailleurs.org sendmailMTAAliasValue: bidule dn: sendmailMTAKey=Jean.Breille, dc=domaine, dc=fr objectClass: sendmailMTA objectClass: sendmailMTAAlias objectClass: sendmailMTAAliasObject sendmailMTAAliasGrouping: aliases sendmailMTAHost: serveur.domaine.fr sendmailMTAKey: Jean.Breille sendmailMTAAliasValue: jb
Ce type d'objet peut également servir à spécifier les correspondances inverses (revaliases). Par exemple :
dn: sendmailMTAKey=Jean.Breille, dc=domaine, dc=fr objectClass: sendmailMTA objectClass: sendmailMTAAlias objectClass: sendmailMTAAliasObject sendmailMTAAliasGrouping: revaliases sendmailMTAHost: serveur.domaine.fr sendmailMTAKey: Jean.Breille sendmailMTAAliasValue: jb
dn: sendmailMTAKey=frmug.fr.net, dc=domaine, dc=fr objectClass: sendmailMTA objectClass: sendmailMTAMap objectClass: sendmailMTAMapObject sendmailMTAHost: serveur.domaine.fr sendmailMTAMapName: routages sendmailMTAKey: frmug.fr.net sendmailMTAMapValue: uucp.frmug dn: sendmailMTAKey=machine-speciale.prism.uvsq.fr, dc=domaine, dc=fr objectClass: sendmailMTA objectClass: sendmailMTAMap objectClass: sendmailMTAMapObject sendmailMTAHost: serveur.domaine.fr sendmailMTAMapName: routages sendmailMTAKey: machine-speciale.prism.uvsq.fr sendmailMTAMapValue: smtp.[machine-speciale.prism.uvsq.fr]
Dans cet exemple, l'attribut sendmailMTAMapName correspond au nom de la map utilisée dans le fichier de configuration sendmail.cf.
Comme précisé ci-dessus, toutefois, ce schéma n'est qu'indicatif. Dans la mesure où tous les filtres sont paramétrables, il est tout à fait possible d'utiliser n'importe quel autre schéma. Seule la définition du fichier des aliases est plus simple si on choisit d'utiliser le schéma par défaut.