---
title: "Installation : Postfix + LDAP"
categories: ["Installation", "TD machine"]
tags: ["Postfix", "LDAP", "maildir"]
date: 2018-10-4
lastmod: 2018-10-18
---

Le but de ce TD machine est d'installer et de configurer postfix et de le
coupler ensuite avec notre annuaire LDAP pour lagestion des comptes.

## Installation de Postfix

L'installation sur debian est simple, il suffit d'installer le paquet adéquat et
de répondre aux deux questions posée par dpkg : 

```shell
# apt install postfix
```

### Configuration 

La configuration de postfix se fait dans le répertoire `/etc/postfix`. Le
premier fichier à modifier est `main.cf`, on y configurera entre autre les
domaines concernés par notre serveur SMTP.

### test de fonctionnement

Les premiers tests d'envoi se font en telnet via le port 25

```shell
# telnet localhost 25
Connected to localhost.
Escape character is '^]'.
220 postfixsrv.u-bordeaux.fr ESMTP Postfix (Debian/GNU)
mail from: jcelineau@u-bordeaux.fr
rcpt to:tech@localhost
data
To:ybarbanneau@u-bordeaux.fr
From: jcelineau@u-bordeaux.fr
Subject: Essai de notre serveur SMTP
Ceci est un test d'envoi de courriel via notre serveur SMTP fraîchement
installé

.
250 2.0.0 Ok: queued as 0F66332
```

Pour l'instant notre serveur postfix accepte seulement de recevoir des courriel
pour le serveur (ici localhost).

## Coupage avec LDAP

Postfix peut aller chercher n'importe quelle information utile (boites, boites
virtuelles, domaines etc.) dans l'annuaire. Il suffira seulement de lui indiquer
ou chercher via des fichiers de configurations officiant comme "requêtes"

### "requête" LDAP pour retrouver les utilisateurs

Je créé un fichier `ldap_users.cf` dans le répertoire `/etc/postfix`. ce fichier
permettra à LDAP d'aller chercher les utilisateurs dans l'annuaire LDAP. C'est
en quelque sorte la requête pour aller checrher les informations dans
l'annuaire.

```conf
server_host = ldap://ldapsrv.u-bordeaux.fr
search_base = dmdName=users,dc=u-bordeaux,dc=fr
bind = yes
bind_dn = cn=admin,dc=u-bordeaux,dc=fr
bind_pw = test
query_filter = (&(objectClass=organizationalPerson)(uid=%s))
result_attribute = uid
result_format = %s/
```

Le slash à la fin de notre chaine de retour permet de forcer postfix à utiliser
le format de stockage [maildir][l_maildir].

[l_maildir]:(https://fr.wikipedia.org/wiki/Maildir)

#### Tester le retour de postfix

La commande `postmap` nous postfix dialogue bien avec l'annuaire, pour vérifier
les utilisateurs on va utiliser le fichier créé ci-dessus avec la commande :

```shell
# postman -q yorick.barbanneau@u-bordeaux.fr ldap:/etc/postfix/ldap_users.cf
```
